我无法让GridSearchCV尊重我的交叉验证参数。我正在执行以下操作:
folds = ShuffleSplit(n_splits = 5, train_size = 37, test_size=5, random_state=42)
grid = GridSearchCV(
SVR(kernel='rbf'),
cv=folds.split(X_scaled),
param_grid={
'C': (.1, 1, 10, 100, 1000, 10000,1000000000),
'epsilon': .0001,
'gamma': (.00005, 0.0001, 0.0002)
}
)
grid.fit(X_scaled, y_scaled)
grid.fit的输出让我知道它正在执行:
Fitting 5 folds for each of 21 candidates, totalling 84 fits
因此,它尊重折数,但完全忽略了我用于训练/测试的数据量的参数。我似乎与在线代码示例保持一致,但是除了21个数据点(我的示例的一半)之外,没有其他方法适合它。
请告知。
答案 0 :(得分:2)
报告的21 candidates
是不是个数据点;由于param_grid
中要求的所有可能的参数组合,它们是21个候选模型 ,每个参数组合都对应一个候选模型:
C
值epsilon
gamma
这使7*1*3 = 21
成为模型的候选人。