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

我从GridSearchCV得到的R^2分数与我从cross_val_分数得到的分数非常不同,为什么?(sklearn,python),python,statistics,scikit-learn,regression,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(estimator, X, y,

我正在使用GridSearchCV选择回归器。一旦安装好,我就用

predictor = GridSearchCV(Pipeline(...), params={...},
                         cv=10, scoring='r2')
predictor.fit(X, y)
estimator = predictor.get_params()['estimator']
然后我用

cross_val_score(estimator, X, y,
                cv=10, scoring='r2')

但我得到的R^2始终比
预测值低5个百分点。为什么?

使用
predictor.best\u estimator\u
作为
cross\u val\u score
中的估计器。这是一个具有最佳参数的。你选择它的方式,你可能是获得初始估计与默认参数。您可以将后者放入
cross_val_score
中并比较结果进行检查。

全面说明您使用的估计器会很有用。更好的方法是使用随机数据的完全复制+粘贴脚本。如果我的回答没有帮助,这可能是特定于估计器的。