我正在尝试为SVR模型获取最佳参数集.我想使用GridSearchCV
超过不同的值C
.但是,从之前的测试中我发现,分成训练/测试集高可影响整体表现(在这种情况下为r2).为了解决这个问题,我想实现重复的5倍交叉验证(10 x 5CV).是否有内置的方式来执行它GridSearchCV
?
快速解决方案:
遵循sci-kit 官方文档中提出的想法,快速解决方案代表:
NUM_TRIALS = 10
scores = []
for i in range(NUM_TRIALS):
cv = KFold(n_splits=5, shuffle=True, random_state=i)
clf = GridSearchCV(estimator=svr, param_grid=p_grid, cv=cv)
scores.append(clf.best_score_)
print "Average Score: {0} STD: {1}".format(numpy.mean(scores), numpy.std(scores))
Run Code Online (Sandbox Code Playgroud) 如果我GridSearchCV
在 scikit-learn 库中使用找到最佳模型,它返回的最终模型是什么?也就是说,对于每组超参数,我们训练 CV(例如 3 个)模型的数量。这样,函数是否会返回这 3 个模型中最好的模型以进行最佳参数设置?