您好,我正在使用 SMO 执行 SVM 分类,其中我的内核是 RBF,现在我想使用网格搜索和交叉验证来选择 c 和 sigma 值,我是内核函数的新手,请帮助,一步一步的过程
最佳答案
- 选择一些您认为有趣的 C 和 sigma 值。例如,C = {1, 10, 100, 1000} 和 sigma = {.01, .1, 1}(我只是编造的)。
- 将训练集分为 k(例如 10)个部分,最好是 stratified方式。
- 循环所有 C 值和 sigma 值对。
- 循环训练集的所有k部分。将第k部分拿出来。在所有其他组合部分上训练分类器,然后在保留的部分上进行测试。
- 跟踪一些分数(准确度、F1 或您想要优化的任何分数)。
- 根据您刚刚计算的分数返回 C、sigma 的最佳性能值对。
关于kernel - 选择 c 和 gamma 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9757495/