我从 GridSearchCV 获得的 R^2 分数与我从 cross_val_score 获得的分数非常不同,为啥? (sklearn,python)
Posted
技术标签:
【中文标题】我从 GridSearchCV 获得的 R^2 分数与我从 cross_val_score 获得的分数非常不同,为啥? (sklearn,python)【英文标题】:The R^2 score I get from GridSearchCV is very different from the one I get from cross_val_score, why? (sklearn, python)我从 GridSearchCV 获得的 R^2 分数与我从 cross_val_score 获得的分数非常不同,为什么? (sklearn,python) 【发布时间】:2014-10-20 09:24:34 【问题描述】:我正在使用 GridSearchCV 来选择回归量。安装好后,我用
拉出选择的回归器predictor = GridSearchCV(Pipeline(...), params=...,
cv=10, scoring='r2')
predictor.fit(X, y)
estimator = predictor.get_params()['estimator']
然后我运行cross_val_score
cross_val_score(estimator, X, y,
cv=10, scoring='r2')
但我得到的 R^2 始终比predictor.best_score_
低约 5 个百分点。为什么?
【问题讨论】:
全面了解您正在使用的估算器会很有用。更好的是带有随机数据的完全复制+可粘贴脚本。如果我的回答没有帮助,这可能是特定于估算器的。 【参考方案1】:使用predictor.best_estimator_
作为cross_val_score
中的估计量。这是具有最佳参数的那个。您选择它的方式,您可能会获得具有默认参数的初始估计量。您也可以通过将后者放入 cross_val_score
并比较结果来进行检查。
【讨论】:
以上是关于我从 GridSearchCV 获得的 R^2 分数与我从 cross_val_score 获得的分数非常不同,为啥? (sklearn,python)的主要内容,如果未能解决你的问题,请参考以下文章
你能从 sklearn 网格搜索 (GridSearchCV) 中获得所有估计器吗?