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请求,以尽可能使文档更加详细