管道和 GridSearchCV 的问题
Posted
技术标签:
【中文标题】管道和 GridSearchCV 的问题【英文标题】:Issues with Pipeline and GridSearchCV 【发布时间】:2020-09-20 08:02:30 【问题描述】:我在使用 Pipeline Tool 和 GridSearchCV 时遇到了一些问题。 我收到以下错误消息:“TypeError:Pipeline 的最后一步应该实现 fit 或者是字符串 'passthrough'。'1' (type) 没有”。
你知道我的错误在哪里吗?
这是我的代码:
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
X = wage['age'][:, np.newaxis]
y = wage['wage'][:, np.newaxis]
degree = 2
model = Pipeline(steps=[('poly', PolynomialFeatures(degree)), ('linear', LinearRegression(fit_intercept=False))])
param_grid = 'poly': [1, 2, 3, 4, 5]
cv_model = GridSearchCV(model, param_grid, scoring='r2', cv=5, n_jobs=1)
cv_model.fit(X, y)
【问题讨论】:
请提供完整的错误输出,以及minimal reproducible example。 【参考方案1】:问题可能来自我没有在 param_grid 中的“poly”之后使用“__”表示法。
使用这种表示法,它似乎可以工作:
param_grid = 'poly__degree': [1, 2, 3, 4, 5]
【讨论】:
以上是关于管道和 GridSearchCV 的问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 `GridSearchCV` 测试完全从管道中删除步骤的效果? [复制]
使用最佳参数构建模型时 GridsearchCV 最佳分数下降
带有管道和 GridSearchCV 的 StandardScaler