支持向量机的可变重要性

机器算法验证 机器学习 特征选择 支持向量机
2022-01-27 18:53:05

如何使用 SVM 获得变量(属性)重要性?

3个回答

如果对权重向量使用 l-1 惩罚,它会自动选择特征,因为与不相关属性对应的权重会自动设置为零。这篇论文每个非零权重的(绝对)大小可以给出关于相应属性重要性的想法。

另请参阅这篇论文,该论文使用从 SVM 派生的标准来指导属性选择。

Isabelle Guyon,André Elisseeff,“变量和特征选择简介”,JMLR,3(三月):1157-1182,2003。http: //jmlr.csail.mit.edu/papers/v3/guyon03a.html

非常值得一读,它将很好地概述方法和问题。我要补充的一件事是特征选择不一定会提高预测性能,并且很容易使其变得更糟(因为很容易过度拟合特征选择标准)。(尤其是线性)SVM 的优点之一是它们可以很好地处理大量特征(前提是您正确调整正则化参数),因此如果您只对预测感兴趣,通常不需要。

如果使用 R,则可以使用 rminer 包中的 Importance 方法计算变量重要性。这是我的示例代码:

library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)

详细参考以下链接https://cran.r-project.org/web/packages/rminer/rminer.pdf