Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何使用sklearn中没有的估计器进行模型管道_Python 2.7_Scikit Learn_Time Series_Pipeline_Grid Search - Fatal编程技术网

Python 2.7 如何使用sklearn中没有的估计器进行模型管道

Python 2.7 如何使用sklearn中没有的估计器进行模型管道,python-2.7,scikit-learn,time-series,pipeline,grid-search,Python 2.7,Scikit Learn,Time Series,Pipeline,Grid Search,我尝试在gridSearchCV函数中使用arima模型,但它返回 “TypeError:无法克隆对象“”(类型):它似乎不是scikit学习估计器,因为它未实现“get_params”方法。 " 你可以为它找到一个sklearn包装器 您可以编写自己的继承自BaseEstimator并满足sklearn estimator的所有要求,例如,init的签名中必须明确提及所有参数 您可以滚动自己的gridsearch,只需循环遍历参数即可 西蒙的答案实际上是正确的。我认为做第三点比较容易。我发现了

我尝试在gridSearchCV函数中使用arima模型,但它返回

“TypeError:无法克隆对象“”(类型):它似乎不是scikit学习估计器,因为它未实现“get_params”方法。 "

  • 你可以为它找到一个sklearn包装器
  • 您可以编写自己的继承自BaseEstimator并满足sklearn estimator的所有要求,例如,init的签名中必须明确提及所有参数
  • 您可以滚动自己的gridsearch,只需循环遍历参数即可

  • 西蒙的答案实际上是正确的。我认为做第三点比较容易。我发现了一个与之相关的链接。
    import numpy as np
    import pandas as pd
    from sklearn.grid_search import GridSearchCV
    from statsmodels.tsa.arima_model import ARIMA
    df_original = pd.DataFrame({"date_col": ['2016-08-01', '2016-08-02', '2016-08-03', '2016-08-04', '2016-08-05',
                                                 '2016-08-06', '2016-08-07', '2016-08-08', '2016-08-09', '2016-08-10',
                                                 '2016-08-11'],
                                    'sum_base_revenue_cip': [1, 2, 7, 5, 1, 2, 5, 10, 9, 0, 1]})
        df_original["sum_base_revenue_cip"] = np.log(df_original["sum_base_revenue_cip"] + 1e-6)
        df_original_ts = df_original.copy(deep=True)
        df_original_ts['date_col'] = pd.to_datetime(df_original['date_col'])
        df_original_ts = df_original_ts.set_index('date_col')
        print df_original_ts
    
        estimator = ARIMA(df_original_ts,order=(1,1,0))
        params = {
            'order': ((2, 1, 0), (0, 2, 1), (1, 0, 0))
        }
        grid_search = GridSearchCV(estimator,
                                   params,
                                   n_jobs=-1,
                                   verbose=True)
        grid_search.fit(df_original_ts)