Python 错误:;所有中间步骤均应为变形金刚,并实现拟合和变换,或为字符串';直通';

Python 错误:;所有中间步骤均应为变形金刚,并实现拟合和变换,或为字符串';直通';,python,scikit-learn,Python,Scikit Learn,当我使用sklearn的管道时,它有时工作得很好,但大多数时候都显示出错误 我不知道为什么。请帮帮我。谢谢 sklearn版本是0.21.2 错误消息: 回溯(最近一次呼叫最后一次): 文件“D:/workspace/pycharm/machine-learning-1/多项式回归“Pipline.py”,第18行,在 (“lin_reg”,LinearRegression()) 文件“D:\develope\Anaconda3\lib\site packages\sklearn\pipelin

当我使用sklearn的管道时,它有时工作得很好,但大多数时候都显示出错误

我不知道为什么。请帮帮我。谢谢 sklearn版本是0.21.2

错误消息:

回溯(最近一次呼叫最后一次): 文件“D:/workspace/pycharm/machine-learning-1/多项式回归“Pipline.py”,第18行,在 (“lin_reg”,LinearRegression()) 文件“D:\develope\Anaconda3\lib\site packages\sklearn\pipeline.py”,第135行,在init 自我验证步骤() 文件“D:\develope\Anaconda3\lib\site packages\sklearn\pipeline.py”,第185行,步骤为“验证” “%s”(类型%s)不“%(t,类型(t))) TypeError:所有中间步骤都应该是transformers并实现fit和transform,或者是字符串'passthrough''LinearRegression(copy_X=True,fit_intercept=True,n_jobs=None,normalize=False)'(type)不是

和我的代码:

将numpy导入为np
将matplotlib.pyplot作为plt导入
从sklearn.preprocessing导入多项式特征
从sklearn.linear\u模型导入线性回归
从sklearn.pipeline导入管道
从sklearn.preprocessing导入StandardScaler
x=np.随机.均匀(-3,3,尺寸=100)
X=X。重塑(-1,1)
y=0.5*x*x+3*x+np.随机.正常(0,1100)
#皮勒线写法
pip=管道({
(“多边形特征”,多项式特征(阶数=2)),
(“std_scaler”,StandardScaler()),
(“lin_reg”,LinearRegression())
})
点拟合(X,y)
y_predict2=pip.predict(X)
plt.plot(np.sort(x),y_predict2[np.argsort(x)],color=“绿色”)
plt.散射(x,y)
plt.show()

您的管道错误,您应该这样写:

pip = Pipeline([
    ("ployFeature", PolynomialFeatures(degree=2)),
    ("std_scaler", StandardScaler()),
    ("lin_reg", LinearRegression())
])

错误应该格式化为代码,而不是截断注意:管道条目应该用[]括起来,而不是用{}括起来