GridSearchCV 忽略 train/test 大小

GridSearchCV ignores train/test size

我无法让 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

所以它尊重折叠的数量,但完全忽略了我用于 train/test 的数据量参数。我似乎与在线代码示例一致,但除了 21 个数据点(我的样本的一半)之外,没有任何东西适合它。

请指教

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

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

这使得 7*1*3 = 21 个候选模型。