Python 对于分类模型,“eli5.show_weights”究竟显示了什么?

Python 对于分类模型,“eli5.show_weights”究竟显示了什么?,python,machine-learning,scikit-learn,classification,eli5,Python,Machine Learning,Scikit Learn,Classification,Eli5,我使用了eli5来应用特征重要性的排列过程。在本文中,有一些解释和一个小例子,但并不清楚 我正在使用sklearn SVC模型解决分类问题 我的问题是:这些权重是特定功能被洗牌时准确性的变化(减少/增加),还是这些功能的SVC权重 在中,作者指出,这些值显示了通过重新调整该特性而降低的模型性能。但不确定是否确实如此 小例子: 从sklearn导入数据集 进口eli5 从eli5.sk了解导入置换的重要性 从sklearn.svm导入SVC、SVR #导入一些数据进行播放 iris=数据集。加载\

我使用了
eli5
来应用特征重要性的排列过程。在本文中,有一些解释和一个小例子,但并不清楚

我正在使用
sklearn SVC
模型解决分类问题

我的问题是:这些权重是特定功能被洗牌时准确性的变化(减少/增加),还是这些功能的SVC权重

在中,作者指出,这些值显示了通过重新调整该特性而降低的模型性能。但不确定是否确实如此

小例子:

从sklearn导入数据集
进口eli5
从eli5.sk了解导入置换的重要性
从sklearn.svm导入SVC、SVR
#导入一些数据进行播放
iris=数据集。加载\u iris()
X=虹膜。数据[:,:2]
y=iris.target
clf=SVC(kernel='linear')
排列=排列重要性(clf,n_iter=1000,cv=10,评分=‘准确度’)。拟合(X,y)
打印(永久性特征\u重要性\u)
打印(永久性特征\u重要性\u标准\u)
[0.38117333 0.16214   ]
[0.1349115  0.11182505]
eli5.显示权重(perms)
我做了一些深入的研究。 在阅读了源代码之后,我认为这里使用了
cv
,而不是
prefit
None
。我的应用程序使用K-Folds方案。我还使用了SVC模型,因此,
score
是这种情况下的准确度

通过查看
排列重要性
对象的
fit
方法,计算
\u cv\u分数\u重要性
)。使用指定的交叉验证方案,并使用测试数据返回
基本评分、特征评分和重要性
(函数:
\u获取评分和重要性
内部
\u cv评分和重要性

通过查看
get_score_importances
函数(),我们可以看到
base_score
是非混叠数据上的分数,
feature_importances
(在这里称为:
score_reduces
)被定义为非混叠分数-混叠分数(请参阅)


最后,错误(
feature\u importances\u std
)是上述
feature\u importances
)的标准差,
feature\u importances\u
是上述
feature\u importances
(非无序分数减去(-)无序分数)的平均值。

对原始问题的回答稍微短一点,无论
cv
参数的设置如何,eli5都将计算您提供的记分器的平均减少量。因为您使用的是sklearn包装器,所以记分器将来自scikit learn:在您的情况下。总的来说,如果不深入了解源代码,其中一些细节就很难弄清楚,可能值得尝试提交一个pull请求,以尽可能使文档更加详细