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
个候选模型。
我无法让 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
个候选模型。