使用tune.svm时如何避免“WARNING: reaching max number of iterations”警告
SVM回归调优:迭代次数警告与超参数调优问题
背景
- 数据集规模:6216条观测值,17个预测变量,用于构建SVM回归模型
- 目标需求:分别调优linear、径向基(RBF)、polynomial、sigmoid四种核函数的超参数,选出最优模型;为降低计算复杂度,将
tune.svm默认的10折交叉验证改为5折
线性核调优的代码与警告信息
用于线性核调优的代码:
svm.tuning <- tune.svm(x = x_scaled[,names(x_scaled)!="sal_perc"],y = x_scaled[,"sal_perc"], cost = 10^(-4:2), tunecontrol=tune.control(cross = 5), kernel="linear")
运行耗时约10-15分钟(10折交叉验证需约1小时),过程中持续输出如下警告:
WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations WARNING: reaching max number of iterations
已完成的排查工作
- 数据已做归一化处理,且分布均衡
- 曾找到同类问题的解决方案,但依赖的第三方包已不再可用
- 即使仅为
cost参数设置2个取值,仍然会触发相同警告
核心疑问
- 是否可以手动增加SVM训练的最大迭代次数?目前发现
e1071包中的tune.svm似乎锁定了该参数 - 担忧调优其他需要额外调整
gamma参数的核函数时,计算耗时会大幅增加,是否有可行的优化方向?
内容的提问来源于stack exchange,提问作者ARaphs
相关产品推荐
相关产品推荐

