sklearn的管道功能,用于自建功能

时间:2017-01-30 17:19:29

标签: python scikit-learn

功能如下:

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:不可用类型

1 个答案:

答案 0 :(得分:0)

来自管道文档:

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

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