我正在使用 RBF 内核 matlab 函数。在几个数据集上,随着我继续增加 sigma 值,支持向量的数量增加并且准确性增加。而在一个数据集的情况下,当我增加 sigma 值时,支持向量会减少并且准确度会增加。在 RBF 内核的情况下,我无法分析支持向量与准确性之间的关系。
问问题
1989 次
1 回答
4
支持向量的数量与准确性没有直接关系;它取决于数据的形状(以及您的 C/nu 参数)。
较高的 sigma 意味着内核是“更平坦”的高斯,因此决策边界“更平滑”;较低的 sigma 使其成为“更锐利”的峰值,因此决策边界更加灵活,并且如果它们是正确的答案,则能够重现奇怪的形状。如果 sigma 非常高,您的数据点将有非常广泛的影响;如果非常低,它们的影响将非常小。
因此,通常,增加 sigma 值会导致更多的支持向量:对于或多或少相同的决策边界,更多的点将落在边缘内,因为点变得“更模糊”。然而,增加的 sigma 也意味着,松弛变量“移动”点超过边距的代价更高,因此分类器最终可能会得到更小的边距和更少的 SV。当然,它也可能只是给你一个完全不同数量的 SV 的完全不同的决策边界。
在最大限度地提高准确性方面,您应该对许多不同的 C 和 sigma 值进行网格搜索,并选择在训练集上进行 3 折交叉验证时能够提供最佳性能的那个。一种合理的方法是从例如2.^(-9:3:18)
C 和median_eval * 2.^(-4:2:10)
;中进行选择。这些数字相当随意,但它们是我过去成功使用的数字。
于 2012-04-30T21:30:14.230 回答