除了Eli5,还有其他选择吗?

时间:2020-03-08 14:33:50

标签: eli5

我试图通过使用Eli5计算置换重要性,但是eli5.show_weights命令不会获取任何图像或任何东西。 (在python 2.7,3.7中试用),请您帮忙。 代码如下:

代码段

feature_names = [c for c in train_df.columns if train_df[c].dtype in [np.int64]]

X = train_df[feature_names]

X = X.drop('state', axis = 1)

y = train_df['state']

X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 1)

my_model = RandomForestClassifier(n_estimators = 100,random_state = 1).fit(X_train,y_train)

perm = PermutationImportance(my_model, random_state = 1).fit(X_test,y_test)

**eli5.show_weights(perm, show_feature_values = X_test.columns.tolist())**#This prints nothing

1 个答案:

答案 0 :(得分:0)

Sci-kit Learn最近添加了permutation importance

这是另一种选择。

关于您的代码。我认为您没有看到任何内容的原因是因为X_test可能没有列,因为它是一个numpy数组。尝试单独打印出来看看。

另一种选择是将排列重要性作为fitted model的属性来访问。

您可以在代码末尾尝试:

##fit the permutation
perm = PermutationImportance(my_model, random_state = 1).fit(X_test,y_test)

##view importances
print(perm.feature_importances_)

## view with xvalues
for feat, imp in zip(X.columns,perm.feature_importances_):
    print("Feature: {}, Importance: {}".format(feat,imp))

相关问题