繁体   English   中英

我如何解释 imblearn 管道的预测?

[英]How can I explain predictions of an imblearn pipeline?

我有一个由以下步骤组成的imblearn (不是 sklearn)管道:

  1. 列选择器
  2. 预处理管道(在不同列上带有 OneHotEncoders 和 CountVectorizers 的 ColumnTransformer)
  3. imblearn 的 SMOTE
  4. XGB分类器

我有一个表格数据集,我正在尝试解释我的预测。 我设法通过一些工作绘制出特征重要性图,但无法让 eli5 或 lime 工作。

Lime 要求我在最后一次转换之前将数据转换为 state(因为管道中的转换器像自定义矢量化器一样创建新列)。 原则上,我可以像这样切片我的管道: pipeline[:-1].predict(instance) 但是,我收到以下错误: {AttributeError}'SMOTE' object has no attribute 'predict'

我还尝试了一个 eli5 解释器,因为它应该可以与 Sklearn Pipelines 一起使用。 但是,在运行eli5.sklearn.explain_prediction.explain_prediction_sklearn_not_supported(pipeline, instance_to_explain)后,我收到不支持分类器的消息。

将感谢有关如何进行此操作的任何想法。

Imblearn 的采样器在预测期间实际上是无操作(即身份)转换器。 因此,在安装管道后删除它们应该是安全的。

尝试以下工作流程:

  1. 构建一个 Imblearn 管道,并安装它。
  2. 将已安装的 Imblearn 管道的步骤提取到新的 Scikit-Learn 管道。
  3. 删除 SMOTE 步骤。
  4. 使用标准 Scikit-Learn 流水线解释工具解释您的预测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM