【问题标题】:pipeline function of sklearn for self built functionssklearn 用于自建功能的管道功能
【发布时间】:2017-01-30 17:19:28
【问题描述】:

功能如下:

def lin_fit():

    data=pd.read_csv('Advertising.csv')

    x=data[:,1]
    y=data[:,3]
    output_array= np.zeros(12)
    for j in range(2,14):

        model_fit_new=sp.polyfit(x,y,j, full=True)
        print(model_fit_new[1])
        output_array[j-2]= model_fit_new[1]

    return output_array

管道函数:内置函数 Imputer 和我自己的函数 lin_fit

estimator = Pipeline([("imputer", Imputer(missing_values=0,
                                      strategy="mean",
                                      axis=0)), ("linear_fit", lin_fit())])

我收到以下错误:

TypeError:不可散列的类型

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    来自管道文档:

    “依次应用一个变换列表和一个最终估计器。管道的中间步骤必须是“变换”,即它们必须实现拟合和变换方法。最终估计器只需要实现拟合。”

    所以你必须实现这些方法。您可能还必须遵守其他 sklearn 约定,例如从 BaseEstimator 继承,并确保在类的 init 中明确列出所有参数。

    【讨论】:

      猜你喜欢
      • 2018-02-16
      • 2016-07-06
      • 2021-06-12
      • 2019-06-13
      • 2017-09-03
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多