GridSearchCV在同一数据集上没有给出最好的分数



我正在尝试使用以下代码的GridSearchCV获得最佳分数。

params = {'C':[15,20,25],'epsilon':[.003,.005,.008],'gamma':[.0001,.0003,.0006]}
svr = SVR()
grid=GridSearchCV(svr,param_grid=params)
grid.fit(X,train_labels)
gridCV = make_pipeline(RobustScaler(),grid)
gridCV.fit(X,train_labels)
grid.best_score_
grid.best_params_
#Output - 
0.9014615123000982
{'C': 25, 'epsilon': 0.005, 'gamma': 0.0003}

现在,如果我用超参数的特定子集尝试相同的代码,我会得到更好的分数,如下所示。为什么GridSearchCV没有给出最好的分数?

svr = SVR()
grid=GridSearchCV(svr,param_grid={'C':[20],'epsilon':[.008],'gamma':[.0003]})
grid.fit(X,train_labels)
gridCV = make_pipeline(RobustScaler(),grid)
gridCV.fit(X,train_labels)
grid.best_score_
#Output - .9010315734981053

SVR的默认评分函数为R²(参见文档(

这意味着越高越好。

0.9014615123000982高于0.9010315734981053

GridSearchCV为您提供最佳的解决方案

最新更新