我从GridSearchCV获得的R ^ 2得分与我从cross_val_score得到的得分非常不同,为什么? (sklearn,python)

时间:2014-08-26 22:32:08

标签: python statistics scikit-learn regression

我正在使用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 个答案:

答案 0 :(得分:3)

使用predictor.best_estimator_作为cross_val_score中的估算工具。这是具有最佳参数的那个。您选择它的方式,您可能正在获取具有默认参数的初始估算器。您可以通过将后者放入cross_val_score进行检查并比较结果。