我正在使用libsvm对具有大量特征/属性(每个项目大约 5,800 个)的数据集进行多类分类。我想为 C 和 Gamma 选择比我目前使用的默认值更好的参数。
我已经尝试过运行easy.py,但是对于我正在使用的数据集,估计时间几乎是永远的(在20、50、100和200个数据样本上运行easy.py,并得到一个预测的超线性回归我必要的运行时间需要数年)。
有没有办法比默认值更快地获得更好的 C 和 Gamma 值?我正在使用 Java 库,如果这有什么不同的话。
我正在使用libsvm对具有大量特征/属性(每个项目大约 5,800 个)的数据集进行多类分类。我想为 C 和 Gamma 选择比我目前使用的默认值更好的参数。
我已经尝试过运行easy.py,但是对于我正在使用的数据集,估计时间几乎是永远的(在20、50、100和200个数据样本上运行easy.py,并得到一个预测的超线性回归我必要的运行时间需要数年)。
有没有办法比默认值更快地获得更好的 C 和 Gamma 值?我正在使用 Java 库,如果这有什么不同的话。
正如我所相信的easy.py
那样,无需网格搜索即可完成此操作。
查看 Trevor Hastie 等人的这篇论文:支持向量机的整个正则化路径(PDF)。一次“SVM 运行”将一次性计算所有“C”值的损失,因此您可以看到它如何影响您的 SVM 性能。
他们有这个算法的实现,你可以通过svmpath包在R中使用它。
我相信算法的核心是用 fortran 编写的,但用 R 包装。