SVR超参数调优:如何选择输入GridSearchCV的候选参数集
SVR超参数网格搜索候选集科学选择方法
针对SVR的C、gamma、epsilon三个超参数的候选集选择,不需要盲目手动试错,可按照「先基于参数物理意义定粗搜范围,再基于粗搜结果做精细搜索」的逻辑高效筛选:
第一步:确定初始粗搜候选集
粗搜阶段优先用对数尺度设置离散候选值,覆盖不同量级的合理范围,避免遗漏最优区间:
- C(正则化惩罚系数):取值越大对拟合误差的惩罚越高,模型越容易过拟合,取值越小模型越容易欠拟合。默认值为1,粗搜候选参考:
[0.001, 0.01, 0.1, 1, 10, 100, 1000],数据集噪声大时可适当降低上限,噪声小时可提升上限。 - gamma(核函数带宽系数):控制RBF等核函数的样本影响范围,取值越大模型拟合边界越复杂,越容易过拟合。默认值为1/输入特征数,粗搜候选参考:
[0.0001, 0.001, 0.01, 0.1, 1, 10, 100],特征数少的时候可提升上限,特征数多的时候可降低下限。 - epsilon(不敏感损失阈值):控制模型对小于该值的预测误差的容忍度,默认值为0.1,粗搜候选参考:
[0.01, 0.05, 0.1, 0.2, 0.5],如果回归目标的数值范围较大(如预测万级以上的销售额),可等比例放大该参数的取值范围。
第二步:基于粗搜结果做精细搜索
跑完第一轮粗搜得到最优参数组合后,在该组合的相邻量级/间隔范围内缩小步长,设置第二轮的候选集做精搜,比如粗搜得到最优参数为C=10、gamma=0.1、epsilon=0.1,精搜候选集可设置为:
- C:
[2,5,10,20,50] - gamma:
[0.02,0.05,0.1,0.2,0.5] - epsilon:
[0.02,0.05,0.1,0.15,0.2]
这种方式既可以大幅减少无效搜索的计算量,也不会错过最优取值区间。
更高效率的替代方案
如果觉得两轮网格搜索的计算量还是过高,可以把GridSearchCV替换为RandomizedSearchCV,你只需要设置三个参数的取值分布而非离散候选集,它会通过随机采样的方式评估参数组合,效率比全网格搜索高3-10倍,在超参数维度较多的场景下,和全网格搜索得到的最优结果差异极小。
内容的提问来源于stack exchange,提问作者Aim
相关产品推荐
相关产品推荐

