支持向量机的特征选择

数据挖掘 支持向量机 特征选择 scikit-学习
2021-09-14 09:54:54

我的问题是三个方面

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

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

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

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

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

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

但实际上,我不知道如何在使用内核的方法中做到这一点,所以使用我称之为无监督特征选择的方法可能会更好。

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