SVM:支持向量的数量

机器算法验证 机器学习 支持向量机
2022-04-09 14:15:57

想象一下,我正在使用 SVM 以一对多的配置为给定的数据集训练分类器。对于每个类,我都在为参数选择执行交叉验证(网格搜索为 SVM 和内核选择参数)。我也在使用 RBF 内核。

在许多情况下,我观​​察到的是正类的支持向量的数量与正样本的总数完全匹配(或非常接近)。负类的支持向量各不相同,但仍然很高。

因此,我的问题是:

1)对于线性情况,是否可以合理地预期来自正集的支持向量的数量会显着减少(假设数据显然不是线性可分的)。

2)从高容量分类器可以分离具有复杂决策边界的高度重叠类的意义上说,选择的支持向量的数量是否反映了分类“容量”?假设更多数量的支持向量表示高容量是否合理?

1个回答

支持向量的比例是留一法交叉验证误差的上限(因为如果省略非支持向量,决策边界不受影响),因此可以指示分类器的泛化性能. 但是,边界不一定非常紧(甚至有用地紧),因此您可以拥有一个具有大量支持向量的模型,但留一法误差较低(此处似乎就是这种情况)。有更紧密(近似)的界限,例如 Span 界限,它们更有用。

如果您调整超参数以优化 CV 误差,通常会发生这种情况,您会得到一个平淡的内核和一个较小的 C 值(因此边缘违规不会受到太多惩罚),在这种情况下,边缘变得非常宽并且有大量的支持向量。本质,核参数和正则化参数都控制容量,并且您可以获得作为超参数函数的 CV 误差的对角槽,因为它们的影响是相关的,并且核参数和正则化的不同组合提供了类似的良好模型。

值得注意的是,一旦您调整超参数,例如通过 CV,SVM 就不再实施结构风险最小化方法,因为我们只是直接在数据上调整超参数,而对超参数没有容量控制。参数。本质上,性能估计或界限因直接优化而有偏差或无效。

我的建议是不要担心它,只需以 CV 错误为指导(但请记住,如果您使用 CV 来调整模型,则需要使用嵌套 CV 来评估其性能)。SVM 的稀疏性是一个额外的好处,但我发现它并没有产生足够的稀疏性来真正值得(L1 正则化提供更大的稀疏性)。对于小问题(例如 400 个模式),我使用 LS-SVM,它是完全密集的,并且通常表现类似。