在 SVM 内核中使用 RFE 进行特征选择(除了线性之外,例如 rbf、poly 等)

机器算法验证 支持向量机 特征选择
2022-03-20 15:36:38

这个链接中,有一个在 SVM 线性内核中使用 RFE 查找特征排名的示例。

如果我想检查其他 SVM 内核中的特征排名(例如 rbf、poly 等)。怎么做?

我已将代码中的内核从SVR(kernel="linear") 更改为 SVR(kernel="rbf")

from sklearn.datasets import make_friedman1
from sklearn.feature_selection import RFE
from sklearn.svm import SVR
X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
estimator = SVR(kernel="linear")
selector = RFE(estimator, 5, step=1)
selector = selector.fit(X, y)
selector.ranking_

然后我得到这个错误

ValueError: coef_ is only available when using a linear kernel

问题:如何检查其他 SVM 内核中的特征排名,例如 rbf、poly 等?

1个回答

要使用 RFE,必须有一个监督学习估计器,其中属性 coef_ 可用,线性核就是这种情况。您得到的错误是因为 coef_ 不适用于使用不同于 Linear 的内核的 SVM。它在RFE 文档中

Quanzhong Liu 等人在具有 RBF 内核的支持向量机的特征选择中提出了一种遍历解决方案。人。