支持向量机的功能选择


9

我的问题是三方面的

在“内核化”支持向量机的上下文中

  1. 是否需要进行可变/特征选择-特别是因为我们将参数C正则化以防止过度拟合,并且将内核引入SVM的主要动机是增加问题的维度,在这种情况下,通过参数缩减来减小维度似乎违反直觉
  2. 如果第一个问题的答案为“否”,那么在什么条件下应记住的答案会发生变化?
  3. 在python的scikit-learn库中是否尝试过一些好的方法来减少SVM的功能-我尝试了SelectFpr方法,正在寻找有不同方法经验的人。

1
除非您的初始功能刚开始具有超高品质,否则功能选择始终会有所帮助。Sklearn提供了许多不同的功能选择库(scikit-learn.org/stable/modules/feature_selection.html)我本人也喜欢RFE。
大卫

1
您没有提到您的上下文-请注意,如果是在业务上下文中,模型中保留的每个功能都需要进行一定程度的维护-如果您拥有更多变量,则涉及字面的金钱成本,例如,它需要更多的数据收集工作,DBA时间和编程时间。如果是针对Kaggle comp或类似软件,则此考虑显然不适用,并且如果在数据集中使用额外的200个可用功能,则您可以从中获得0.01%的性能提升。
罗伯特·德格拉夫

Answers:


3

就个人而言,我喜欢将特征选择分为两部分:

  • 无监督特征选择
  • 监督特征选择

无监督功能选择是诸如群集或PCA之类的事情,您可以在其中选择功能最少的冗余范围(或创建很少冗余的功能)。有监督的特征选择是诸如Lasso之类的东西,您可以在其中选择最具预测能力的特征。

我个人通常更喜欢我所说的监督功能选择。因此,当使用线性回归时,我将基于套索选择特征。存在类似的方法来诱导神经网络中的稀疏性。

但是确实,我看不到如何在使用内核的方法中做到这一点,因此使用所谓的无监督功能选择可能会更好。

编辑:您还询问正则化。我认为正规化会有所帮助,主要是因为我们使用有限的样本,因此训练和测试的分布将始终有所不同,并且您希望模型不会过拟合。我不确定它是否消除了避免选择功能的需要(如果确实有太多功能)。我认为选择特征(或创建特征的较小子集)有助于使您所拥有的特征更加健壮并避免模型从虚假关联中学习。因此,正则化确实有帮助,但不能确定它是否是完整的替代方法。但是我对此没有足够的思考。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.