首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >估计管道的无效参数n_estimators

估计管道的无效参数n_estimators
EN

Stack Overflow用户
提问于 2022-03-26 12:53:10
回答 1查看 516关注 0票数 2

我试图创建一个直线并微调超参数,但是我尝试使用fit,我得到了错误

代码语言:javascript
运行
复制
ValueError: Invalid parameter n_esitmators for estimator Pipeline(steps=[('rfc', RandomForestClassifier())]). Check the list of available parameters with `estimator.get_params().keys()`.

我想找人帮忙处理这个。

这是我使用的代码:

代码语言:javascript
运行
复制
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.model_selection import RandomizedSearchCV

#Classifier Pipeline
pipeline = Pipeline([
    ('rfc', RandomForestClassifier())
])
# Params for classifier
params = {'n_estimators': [5,20,50,100,150],
          "max_depth": [1, 3,5,10,20,30,50],
          "max_features": [1, 3,5,10,20,30,45],
          "min_samples_split": [1, 3,5,10],
          "min_samples_leaf": [1, 3,5,10]}

# Grid Search Execute
rf_rnd = RandomizedSearchCV(estimator=pipeline, param_distributions = params, cv=5, verbose=2, random_state=0, n_jobs=-1)


rf_rnd.fit(training_data, target)

作了一些修改:

代码语言:javascript
运行
复制
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.model_selection import RandomizedSearchCV

#Classifier Pipeline
pipeline = Pipeline([
    ('rfc', RandomForestClassifier())
])
# Params for classifier
params = {'estimator__rfc__n_estimators': [5,20,50,100,150],
          "estimator__rfc__max_depth": [1, 3,5,10,20,30,50],
          "estimator__rfc__max_features": [1, 3,5,10,20,30,45],
          "estimator__rfc__min_samples_split": [1, 3,5,10],
          "estimator__rfc__min_samples_leaf": [1, 3,5,10]}

# Grid Search Execute
rf_rnd = RandomizedSearchCV(estimator=pipeline, param_distributions = params, cv=5, random_state=0, n_jobs=-1, return_train_score=True)

现在的错误是:

ValueError:用于估计器管道(steps=(‘rfc’,RandomForestClassifier())的无效参数估计器。使用estimator.get_params().keys()检查可用参数的列表。

这就是estimator.get_params().keys()输出的内容:

dict_keys('cv',‘误差_得分’,‘估算者__记忆’,‘估计者__步骤’,‘估计者_详细’,‘估计者__rfc__深度’,‘估计者_rfc_引导’,‘估计者_rfc_ccp_α’,‘估计者__rfc_类_权重’,‘估计者__rfc_判据’,‘估计器__rfc__max_深度’,‘估计器__rfc__max_特点’,‘估值器__rfc__min_叶_节点’,‘估计器__rfc_max_样本’,‘估计器__rfc_min__杂质_减少’,‘估计器__rfc_min_杂质_拆分’,‘估计器__rfc_min_样_叶’,‘估计器__rfc__min__min__min_重量__叶’,‘估计器__rfc_n_n_估计器’,‘估计器_rfc_n_工作’,‘估计器_rfc__min_重量_叶’,‘估计器__rfc_n_n_估计器’,“估计器__rfc__oob_score”、“估计器__rfc__随机_状态”、“估计器_rfc_详细”、‘估计器_rfc__温_start’、‘估计器’、'iid‘、'n_iter’、'n_jobs‘、’param_分布‘、’预分派‘、’随机_状态‘、'refit’、‘pre_train_score’、‘评分’、‘详细’)

)

EN

回答 1

Stack Overflow用户

发布于 2022-03-27 03:18:55

当您使用具有任意搜索(随机或网格)的管道时,param_grid键必须遵循以下语法(步骤名)__(Param)。因此,您应该对其他参数使用rfc__n_estimators等。

总结一下,只需删除您在上次修改中添加的estimator__部件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71628211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档