我有一个数据集,之前已将其分为 3 组:训练、验证和测试。必须按给定的方式使用这些集合,以便比较不同算法的性能。
我现在想使用验证集优化 SVM 的参数。但是,我找不到如何将验证集显式输入 sklearn.grid_search.GridSearchCV()
。下面是我以前用于对训练集进行 K 折交叉验证的一些代码。但是,对于这个问题,我需要使用给定的验证集。我怎样才能做到这一点?
from sklearn import svm, cross_validation
from sklearn.grid_search import GridSearchCV
# (some code left out to simplify things)
skf = cross_validation.StratifiedKFold(y_train, n_folds=5, shuffle = True)
clf = GridSearchCV(svm.SVC(tol=0.005, cache_size=6000,
class_weight=penalty_weights),
param_grid=tuned_parameters,
n_jobs=2,
pre_dispatch="n_jobs",
cv=skf,
scoring=scorer)
clf.fit(X_train, y_train)
原文由 pir 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
PredefinedSplit
然后设置
cv=ps
在GridSearchCV
另请参阅 此处