微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我该如何解释管道流水线的预测?

如何解决我该如何解释管道流水线的预测?

我有一个 imblearn (不是sklearn)管道,该管道包括以下步骤:

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

我有一个表格数据集,我正在尝试解释我的预测。 我设法通过一些工作得出了重要特征图,但都无法做到 eli5或石灰起作用。

Lime要求我将数据转换为上一次转换之前的状态(因为管道中的转换器(如自定义矢量化器会创建新列))。 原则上,我可以像这样对我的管道进行切片: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管道解释工具解释您的预测。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。