因此,我将 SVM 一类分类器 ( https://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html ) 用于异常检测项目。
该任务显示了一些有趣的准确性和 F1 分数,所以我想看看功能的重要性,但我对此有一些问题。我知道对于线性内核,我可以使用该.coef_
属性,但我正在使用rbf
内核,所以这不起作用。
我尝试通过以下方式使用sklearn.inspection.permutation_importance
(https://scikit-learn.org/stable/modules/permutation_importance.html ):
from sklearn.inspection import permutation_importance
perm_importance = permutation_importance(clf, test, train, scoring='f1')
sorted_idx = perm_importance.importances_mean.argsort()
features = train.columns.values
plt.barh(features[sorted_idx], perm_importance.importances_mean[sorted_idx])
plt.xlabel("Permutation Importance")
但我收到以下错误:
ValueError: Classification metrics can't handle a mix of continuous-multioutput and binary targets
我还查看了 SHAP(https://shap.readthedocs.io/en/latest/index.html),但我很难使用它。
如果还有其他方法可以获取功能重要性,请告诉我。任何意见将不胜感激。