如何在jupyter中解释和查看完整的置换特征图?

问题描述 投票:1回答:1

我正在尝试通过Permutation Feature Importance图生成特征重要性图。我试图确定通过不同方法返回的功能是否稳定。选择最佳功能。我们可以得到p-value或某种可以表明该功能很重要的东西吗?如果我可以用PFI做到这一点,我可能会更有信心,但结果似乎完全相反

这是我生成情节的代码

logreg=LogisticRegression(random_state=1) # i also tried with Random Forest
logreg.fit(X_train_std,y_train)
perm = PermutationImportance(logreg,random_state=1).fit(X_train_std,y_train)
eli5.show_weights(perm)   #find the issue with plot below

问题

1]在其他方法中,我在顶部看到的功能并不重要(卡方,Xgboost功能重要性,Logistic回归统计模型摘要等),但在这里我在顶部看到它,这让我有些震惊。它是按降序还是升序排序?

2)我了解PFI将值随机化以查看模型误差的减少。如果第一行(X18)是一个重要功能,那么它与我的其他方法完全相反。我在这里犯错了吗?在这种情况下我应该查看/检查什么?还是仅在已选择的重要功能上应用PFI

3)如何使jupyter单元格显示到所有行。目前,它不显示剩余的35行,如下所示。我已经设置了pandas_set列宽,行数等

enter image description here

您能帮我吗?

matplotlib machine-learning deep-learning feature-extraction feature-selection
1个回答
0
投票

使用属性top=可以解决问题3,例如eli5.show_weights(perm,top=100)https://eli5.readthedocs.io/en/latest/autodocs/eli5.html?highlight=top

对于问题1和2,我处于类似的情况,据我所知,不同的方法确实有不同的输出。每种方法都有其自己的标准。对于TREE方法,例如DecisionTree,xgboost,catboost,GBRT,等等,在构建一棵树的过程中,使用的功能越多,它变得越重要,但是其他方法则没有。

© www.soinside.com 2019 - 2024. All rights reserved.