Lime Explainer:ValueError:训练数据没有以下字段

时间:2019-11-27 00:59:39

标签: machine-learning xgboost inference lime

我正在尝试使用LIME从我的XGBoost分类模型中收集ID级驱动程序,但是遇到了一些奇怪的错误。我正在使用此link作为参考。

这是我正在使用的总体代码:

explainer = lime.lime_tabular.LimeTabularExplainer(Xs_train.values, class_names = [1.0, 0.0], kernel_width = 3)

predict_fn_xgb = lambda x: trained_model.predict_proba(x).astype(float)
data_point = Xs_val.values[5]

exp = explainer.explain_instance(data_point, predict_fn_xgb, num_features = 10)
exp.show_in_notebook(show_all = False)

键:

  • trained_model:经过训练的xgboost分类模型
  • 类名:这是一个二进制分类模型
  • Xs_train:这是(73548,84)维训练集。这是用来建立training_model
  • Xs_val:这是(4910,84)维度训练集。这些列与训练和验证集相同。
  • data_point:一个特定的验证点

现在,当我运行此代码时,出现以下错误:

ValueError: expected res_time, email_views...training data did not have the following fields: f6, f49, f34, f21,...

我不知道f#列名称来自何处。似乎真的很奇怪,我相信我正确地遵循了这个例子。

任何帮助将不胜感激。让我知道是否需要其他信息。

1 个答案:

答案 0 :(得分:0)

您尚未提供有关数据集中字段的任何信息。

但是,您似乎没有将'feature_names'传递给LimeTabularExplainer。尝试这样做。 祝你好运