我从 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) 中获得所有估计器吗?

拟合 sklearn GridSearchCV 模型

GridSearchCV 的结果作为表格

如何使用带有 SVC 估计器的 OneVsRestClassifier 的 GridSearchCV?

Sklearn GridSearchCV 的参数无效

如何使用GridSearchCV获取所有模型(每组参数一个)?