使用 SVM 进行特征选择

机器算法验证 r 支持向量机
2022-03-28 23:58:11

假设我有一个包含很多噪音的高维分类问题,我想通过删除一些噪音变量来改善我的结果。我已经阅读 几篇关于使用 SVM 进行特征选择的论文,但我不知道如何在 R 中实现这一点。是否有预先存在的包可以做到这一点,还是我必须自己推出?

3个回答

据我了解,SVM 具有内置的正则化,因为它们倾向于惩罚大权重的预测变量,这相当于有利于更简单的模型。它们通常与递归特征消除一起使用(至少在神经影像学范式中)。

具体来说,关于 R,有kernlab包,作者是Alex Smola,他与人合着了Learning with Kernels(2002 年,麻省理工学院出版社),它实现了 SVM(除了e1071 之外)。但是,如果您使用专用框架,我会热烈推荐caret包。

对于递归特征提取(SVM-RFE),我认为包e1071Kernlab没有实现它。我认为 Weka SVMAttributeEval 包适用于 Java,但正如我所见,问题是针对 R 的。最好的方法是尝试使用e1071 和 LIBSVM库来实现 SVM-RFE,我在这里找到了一个很好的相关文件。

Weka SVMAttributeEval包允许您使用 SVM 进行特征选择

将 R 数据框转储到 csv 文件,将其导入 Weka,进行特征选择,然后将其拉回 R 应该很容易。