You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决make_pipeline封装MLPRegressor接入GridSearchCV的参数报错?

问题原因

scikit-learn的make_pipeline()函数会自动将步骤对应的类名转为全小写作为步骤名,你构建的管道里MLPRegressor对应的步骤名是mlpregressor(全小写),而你param_grid里用的是大写开头的MLPRegressor作为前缀,和实际步骤名不匹配,所以触发参数不识别的错误。

修正方案

方案1:直接修改param_grid的参数前缀(改动最小)

把参数前缀改为全小写的mlpregressor__即可:

param_grid = {
    'mlpregressor__hidden_layer_sizes': [(16,16,), (64,64,), (128,128,)], 
    'mlpregressor__activation': ['identity', 'logistic', 'tanh', 'relu'],
    'mlpregressor__solver': ['adam','sgd']
}

方案2:手动指定管道步骤名(适配更复杂的场景)

如果不想记自动命名规则,也可以不用make_pipeline,改用显式指定步骤名的Pipeline类,自定义步骤名方便后续引用:

from sklearn.pipeline import Pipeline

# 自定义步骤名,可随意命名,后续参数前缀和自定义名称保持一致即可
pipe = Pipeline(steps=[
    ('scaler', StandardScaler()),
    ('mlp', MLPRegressor())
])

# 对应的param_grid写法示例
param_grid = {
    'mlp__hidden_layer_sizes': [(16,16,), (64,64,), (128,128,)], 
    'mlp__activation': ['identity', 'logistic', 'tanh', 'relu'],
    'mlp__solver': ['adam','sgd']
}

你可以随时运行print(pipe.get_params().keys())查看管道所有可配置的参数名,确认步骤的前缀是否正确。

内容的提问来源于stack exchange,提问作者jgg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:06:04