0

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

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

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)

钥匙:

  • 训练模型:训练的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#列名来自哪里。看起来真的很奇怪,我相信我正确地遵循了这个例子。

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

4

1 回答 1

0

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

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

于 2019-11-28T19:54:15.873 回答