我正在使用 SVM 模型对空气污染物进行短期预测。为了训练一个新模型,我需要为 SVM 模型找到合适的元参数(我的意思是 C、gamma 等)。
Libsvm 文档(以及我读过的许多其他书籍)建议使用网格搜索来查找这些参数 - 所以我基本上为特定集合中这些参数的每个组合训练模型并选择最佳模型。
有没有更好的方法来找到最优(或接近最优)的元参数?对我来说,这主要是计算时间的问题——这个问题的一次网格搜索大约需要两个小时(在我做了一些优化之后)。
网格搜索的优点:
- 它可以很容易地并行化——如果你有 20 个 CPU,它的运行速度会快 20 倍,并行化其他方法更难
- 你检查元参数空间的大部分,所以如果有一个好的解决方案,你会找到它。