GridSearchCV忽略训练/测试大小

时间:2020-05-12 22:59:34

标签: python scikit-learn gridsearchcv

我无法让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个数据点(我的示例的一半)之外,没有其他方法适合它。

请告知。

1 个答案:

答案 0 :(得分:2)

报告的21 candidates不是个数据点;由于param_grid中要求的所有可能的参数组合,它们是21个候选模型 ,每个参数组合都对应一个候选模型:

  • 7个候选C
  • 1名候选人epsilon
  • 3名候选人gamma

这使7*1*3 = 21成为模型的候选人。