来自 SCIKIT 学习用户指南的 GridSearch 示例尝试给出错误
Posted
技术标签:
【中文标题】来自 SCIKIT 学习用户指南的 GridSearch 示例尝试给出错误【英文标题】:GridSearch example from SCIKIT learn user guide tried giving error 【发布时间】:2021-01-28 11:42:44 【问题描述】:试图运行与网格搜索的 SCIKIT 用户指南相同的代码,但出现错误。非常惊讶。
from sklearn.model_selection import GridSearchCV
from sklearn.calibration import CalibratedClassifierCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_moons
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
X,y=make_moons()
calibrated_forest=CalibratedClassifierCV(base_estimator=RandomForestClassifier(n_estimators=10))
paramgrid='base_estimator_max_depth':[2,4,6,8]
search=GridSearchCV(calibrated_forest,paramgrid,cv=5)
search.fit(X,y)
错误信息如下:
ValueError: Invalid parameter base_estimator_max_depth for estimator CalibratedClassifierCV(base_estimator=RandomForestClassifier(n_estimators=10)). Check the list of available parameters with `estimator.get_params().keys()`.
我尝试使用 Iris 数据集,它也给出了与上述相同的错误。
然后我使用 make_moon 数据集 X,y 并运行 Random 分类器,如下所示。
clf = RandomForestClassifier(n_estimators=10, max_depth=2)
cross_val_score(clf, X, y, cv=5)
得到如下输出。
array([0.8 , 0.8 , 0.9 , 0.95, 0.95])
看起来很奇怪,不确定发生了什么以及哪里错了。请寻求帮助。
【问题讨论】:
【参考方案1】:注意base_estimator
和参数之间的双重分数__
:
from sklearn.model_selection import GridSearchCV
from sklearn.calibration import CalibratedClassifierCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_moons
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
X,y=make_moons()
calibrated_forest=CalibratedClassifierCV(base_estimator=RandomForestClassifier(n_estimators=10))
paramgrid='base_estimator__max_depth':[2,4,6,8]
search=GridSearchCV(calibrated_forest,paramgrid,cv=5)
search.fit(X,y)
GridSearchCV(cv=5,
estimator=CalibratedClassifierCV(base_estimator=RandomForestClassifier(n_estimators=10)),
param_grid='base_estimator__max_depth': [2, 4, 6, 8])
【讨论】:
@sergey-bushmanov- 非常感谢。我需要对命令非常小心。以上是关于来自 SCIKIT 学习用户指南的 GridSearch 示例尝试给出错误的主要内容,如果未能解决你的问题,请参考以下文章
玩转Scikit-learn机器学习工程师的浅入深出保姆级学习成长指南+变强规划+入门教程~