GridSearchCV.best_score 与 cross_val_score(GridSearchCV.best_estimator_) 不同

GridSearchCV.best_score not same as cross_val_score(GridSearchCV.best_estimator_)

考虑以下网格搜索:
grid = GridSearchCV(clf, parameters, n_jobs =-1, iid=True, cv =5)
grid_fit = grid.fit(X_train1, y_train1)

根据 Sklearn 的资源,grid_fit.best_score_ returns best_estimator 的平均交叉验证分数。

对我来说,这意味着:

的平均值

cross_val_score(grid_fit.best_estimator_, X_train1, y_train1, cv=5)

应与

完全相同

grid_fit.best_score_.

然而,我发现这两个数字之间存在 10% 的差异。我错过了什么?

我在专有数据上使用网格搜索,所以我希望有人 运行 过去有类似的东西,并且可以在没有完全可复制示例的情况下指导我。如果不够清楚,我会尝试用 Iris 数据集重现它...

当整数传递给GridSearchCV(..., cv=int_number)参数时,StratifiedKFold将用于交叉验证拆分。所以数据集会被随机拆分StratifiedKFold。这可能会影响准确性,从而影响最佳分数。