确定 sklearn 或任何 python 库中非线性 SVM 回归的最有贡献的特征

Bit*_*ign 5 python scikit-learn jupyter-notebook

我使用基于 RBF 内核的支持向量机回归训练了一个模型。我想知道对基于 RBF 内核的支持向量机非常重要或主要贡献的功能。我知道有一种方法可以了解基于向量大小的权重向量对线性支持向量回归最有贡献的特征。然而,对于基于 RBF 核的支持向量机,由于特征被转换到一个新的空间,我不知道如何提取最有贡献的特征。我在 python 中使用 scikit-learn。有没有办法在基于 RBF 核的支持向量回归或非线性支持向量回归中提取最有贡献的特征?

from sklearn import svm
svm = svm.SVC(gamma=0.001, C=100., kernel = 'linear')
Run Code Online (Sandbox Code Playgroud)

在这种情况下: 在 sklearn为 SVM 分类器确定最有贡献的特征效果很好。但是,如果将内核更改为

from sklearn import svm
svm = svm.SVC(gamma=0.001, C=100., kernel = 'rbf')
Run Code Online (Sandbox Code Playgroud)

上面的答案不起作用。

PV8*_*PV8 2

让我对评论进行排序作为答案:

正如您可以在这里阅读的:

分配给特征的权重(原始问题中的系数)。这仅适用于线性内核的情况。

但这也没有意义。在线性 SVM 中,生成的分离平面与输入特征位于同一空间中。因此,它的系数可以被视为输入“维度”的权重。

在其他内核中,分离平面存在于另一个空间中 - 这是原始空间内核变换的结果。它的系数与输入空间没有直接关系。事实上,对于 rbf 核来说,变换后的空间是无限维的。

正如评论中提到的,你可以做的事情:

尝试一下这些功能(忽略一些功能),看看准确性会如何变化,这会让您了解哪些功能很重要。

如果您使用其他分类器作为随机森林,您将获得其他算法的特征重要性。但这不会回答你的问题,这对你的支持向量机很重要。所以这不一定能回答你的问题。