Jib*_*hew 6 python machine-learning svm scikit-learn
我正在使用以下代码进行特征重要性计算。
from matplotlib import pyplot as plt
from sklearn import svm
def features_importances(coef, names):
imp = coef
imp,names = zip(*sorted(zip(imp,names)))
plt.barh(range(len(names)), imp, align='center')
plt.yticks(range(len(names)), names)
plt.show()
features_names = ['input1', 'input2']
svm = svm.SVC(kernel='linear')
svm.fit(X, Y)
feature_importances(svm.coef_, features_names)
Run Code Online (Sandbox Code Playgroud)
我如何能够计算非线性内核的特征重要性,这在给定的示例中没有给出预期的结果。
简短的回答:这是不可能的,(至少目前的库无法做到这一点。)可以找出线性 SVM 的特征重要性,但不能找出非线性 SVM,原因是,当 SVM 是非线性的时数据集被映射到一个更高维度的空间,这与父数据集有很大不同,并且获得了超平面,并且这个高维数据和属性因此与父数据集的属性发生了变化,因此不可能找到该 SVM 相对于父数据集特征的特征重要性。
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |