Есть ли альтернатива Eli5? - PullRequest
0 голосов
/ 08 марта 2020

Я пытался вычислить значение перестановки с помощью 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 голосов
/ 08 марта 2020

Sci-kit learn добавлено важность перестановки в последнее время.

Это альтернатива.

Что касается вашего кода. Я думаю, что причина, по которой вы ничего не видите, заключается в том, что X_test может не иметь столбцов, поскольку это массив numpy. Попробуйте распечатать это отдельно, чтобы увидеть.

Другой вариант - получить доступ к значениям перестановок в качестве атрибутов вашей подогнанной модели .

Вы можете попробовать это в конце своего кода. попробуйте:

##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))

...