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