我正在尝试使用 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#
列名来自哪里。看起来真的很奇怪,我相信我正确地遵循了这个例子。
任何帮助将非常感激。让我知道是否需要任何其他信息。