Matplotlib 如何解释和查看jupyter中的完整排列特征图?

Matplotlib 如何解释和查看jupyter中的完整排列特征图?,matplotlib,machine-learning,deep-learning,feature-extraction,feature-selection,Matplotlib,Machine Learning,Deep Learning,Feature Extraction,Feature Selection,我试图通过排列特征重要性图生成特征重要性图。我试图确定通过不同方法返回的特性是否稳定。选择最佳特征。我们能得到一个p值或类似的东西来表明该特征是重要的吗?如果我能用PFI,我会更有信心,但结果似乎完全相反 这是我生成绘图的代码 logreg=LogisticRegression(random_state=1) # i also tried with Random Forest logreg.fit(X_train_std,y_train) perm = PermutationImportance

我试图通过
排列特征重要性
图生成特征重要性图。我试图确定通过不同方法返回的特性是否稳定。选择最佳特征。我们能得到一个
p值
或类似的东西来表明该特征是重要的吗?如果我能用
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功能重要性、逻辑回归统计模型摘要等)中不显著,但在这里我在顶部看到它,我有点震惊。它是按降序排列还是按升序排列

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

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


你能帮我解决这个问题吗?

使用属性
top=
来解决问题3,如
eli5。显示权重(perm,top=100)
。更多信息请访问

对于问题1和2,我也遇到过类似的情况。据我所知,不同的方法有不同的结果。每种方法都有自己的标准。对于树方法,例如在构建树的过程中的
DecisionTree
xgboost
catboost
GBRT
等。功能使用得越多,它就变得越重要。但其他方法则不然。

请注意这个问题: