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
。这可能会影响准确性,从而影响最佳分数。
考虑以下网格搜索:
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
。这可能会影响准确性,从而影响最佳分数。