我有一个数据集,我想根据该数据训练我的模型。训练后,我需要知道在 SVM 分类器的分类中起主要作用的特征。
森林算法有一个叫做特征重要性的东西,有没有类似的东西?
原文由 Jibin Mathew 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个数据集,我想根据该数据训练我的模型。训练后,我需要知道在 SVM 分类器的分类中起主要作用的特征。
森林算法有一个叫做特征重要性的东西,有没有类似的东西?
原文由 Jibin Mathew 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用的是 rbf (径向基函数)内核,则可以使用 sklearn.inspection.permutation_importance
来获取特征重要性。 [文档]
from sklearn.inspection import permutation_importance
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
svc = SVC(kernel='rbf', C=2)
svc.fit(X_train, y_train)
perm_importance = permutation_importance(svc, X_test, y_test)
feature_names = ['feature1', 'feature2', 'feature3', ...... ]
features = np.array(feature_names)
sorted_idx = perm_importance.importances_mean.argsort()
plt.barh(features[sorted_idx], perm_importance.importances_mean[sorted_idx])
plt.xlabel("Permutation Importance")
原文由 Nishan 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答9.6k 阅读✓ 已解决
2 回答5.2k 阅读✓ 已解决
2 回答3.6k 阅读✓ 已解决
3 回答4.5k 阅读
2 回答2.5k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
是的,有属性
coef_
用于 SVM 分类器,但它仅适用于 SVM with linear kernel 。对于其他内核,这是不可能的,因为数据是由内核方法转换到另一个与输入空间无关的空间,请查看 解释。该函数的输出如下所示: