SVM - 维度数大于样本数会产生好还是坏的性能?

机器算法验证 支持向量机 scikit-学习
2022-04-07 03:38:39

我正在阅读sklearn SVM的文档并看到这两个语句

  • 在维度数大于样本数的情况下仍然有效
  • 如果特征的数量远大于样本的数量,则该方法很可能表现不佳。

现在我对 SVM 的理解相当有限(我阅读这篇文章的原因),但上述 2 个陈述似乎相互矛盾。但我相信我错过了一些东西。由于上述两个并不矛盾,我的理解中缺少什么?

2个回答

与许多其他线性模型一样,支持向量机基于经验风险最小化,这导致我们进行了这种优化:

minw(xi,yi,w)+λr(w)

在哪里是一个损失函数(SVM 中的铰链损失)和r是正则化函数。

SVM 是一个平方2-正则化线性模型,即r(w)=w22. 正如人们在回归术语中所说的那样,这可以防止巨大的系数,因为系数大小本身在优化中会受到惩罚。

除此之外,正则化允许在 情况下的唯一解,因此第一个陈述是正确的。p>n

时的问题是,正则化引入的偏差对训练数据可能非常大,模型的表现严重不佳。这并不意味着 SVM 不能在那种情况下使用(它们通常用于基因表达数据,例如,其中可能比大数千倍)。pnpn

所以我认为陈述中没有矛盾。第二条语句更有可能是对过度拟合的警告。

  • 在维度数大于样本数的情况下仍然有效
  • 如果特征的数量远大于样本的数量,则该方法很可能表现不佳。

这两点非常矛盾,因为一个特征通常是一维的(有些特征可能是多维的,但不太常见)。

第一点是正确的,有关更多详细信息,请参阅SVM、过拟合、维度诅咒特征数与观察数。