支持向量个数与特征个数的关系

机器算法验证 机器学习 分类 支持向量机 内核技巧
2022-03-22 04:20:52

我对给定的数据集运行了一个 SVM,并进行了以下观察:如果我更改构建分类器的特征数量,则生成的支持向量的数量也会改变。

我想知道如何解释这种情况。

1个回答

如果你看一下 SVM 解决的优化问题:

minw,ξ,b{12w2+Ci=1nξi}

st 对于所有yi(wxib)1ξi,    ξi0,i=1,n

支持向量是那些其中对应的换句话说,它们是错误分类或接近边界的数据点。xiξi>0

现在让我们比较一下当你有完整的特性集时这个问题的解决方案,以及你丢弃一些特性的情况。丢弃一个特征在功能上等同于保留这个特征,但是为我们想要丢弃 的特征wj=0j

当您比较这两个优化问题并进行数学运算时,会发现特征数量和支持向量数量之间没有硬性关系。它可以去任何一种方式。

考虑一个简单的案例很有用。想象一个 2-dim 的情况,你的负面和正面特征分别聚集在 (-1,-1) 和 (1,1) 周围,并且可以通过具有 3 个支持向量的对角线分离超平面分离。现在想象一下删除 y 轴特征,因此您的数据现在投影在 x 轴上。如果数据仍然是可分离的,比如在 x=0 时,您可能只剩下 2 个支持向量,每边一个,因此添加 y 特征会增加支持向量的数量。但是,如果数据不再可分离,对于 x=0 错误一侧的每个点,您将获得至少一个支持向量,在这种情况下,添加 y 特征会减少支持向量的数量。

因此,如果这种直觉是正确的,如果您在非常高维的特征空间中工作,或者使用映射到高维特征空间的内核,那么您的数据更有可能是可分离的,因此添加特征将倾向于只需添加另一个支持向量。而如果您的数据当前不可分离,并且您添加了一个显着提高可分离性的功能,那么您更有可能看到支持向量的数量减少。