Python GridSearchCV不';t在同一数据集上给出最佳分数

Python GridSearchCV不';t在同一数据集上给出最佳分数,python,gridsearchcv,Python,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,tra

我正在尝试使用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
为您提供了最佳解决方案

嘿,我认为您误读了分数。显然,第一次网格搜索产生的“最佳分数”(0.9014)比特定超参数产生的分数(0.9010)要好。我的意思是,我甚至不认为这些分数有什么不同。但是如果你想用一个特定的精度来比较,第一次网格搜索还是更好的。。。。