Как устранить ошибку несоответствия функций при использовании Lime на XGBClassifier - PullRequest
0 голосов
/ 27 июня 2019

Я использую Lime для объяснения своей модели, но получаю сообщение об ошибке:

error: feature_names mismatch

Код:

from xgboost import XGBClassifier
from lime.lime_tabular import LimeTabularExplainer

xgb_model = XGBClassifier().fit(X,y)
predict_fn_xgb = lambda x: model.predict_proba(x).astype(float)
feature = X.columns
explainer = LimeTabularExplainer(X.astype(int).values,
      mode='classification',training_labels=y,feature_names=feature)
i = 1
exp = explainer.explain_instance(X_test[feature].loc[i].astype(int).values,
     predict_fn_xgb, num_features=6)
exp.show_in_notebook(show_all=False)

Маскировка функций:

Ниже приведена ошибка

feature_names mismatch: ['a'....'z'] ['f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f20', 'f21', 'f22', 'f23', 'f24', 'f25', 'f26', 'f27', 'f28', 'f29', 'f30', 'f31', 'f32', 'f33', 'f34', 'f35', 'f36', 'f37', 'f38', 'f39', 'f40', 'f41', 'f42', 'f43', 'f44', 'f45', 'f46', 'f47', 'f48', 'f49', 'f50']
expected [a ... z]
training data did not have the following fields: f39, f16, f30, f17, f24, f34, f46, f4, f42, f11, f20, f12, f45, f13, f49, f9, f15, f33, f47, f28, f0, f6, f38, f19, f44, f25, f18, f8, f22, f3, f10, f5, f31, f14, f43, f50, f37, f26, f1, f23, f32, f29, f36, f2, f48, f40, f27, f21, f35, f41, f7
...