如何解决我该如何解释管道流水线的预测?
我有一个 imblearn (不是sklearn)管道,该管道包括以下步骤:
- 列选择器
- 预处理管道(在不同列上具有OneHotEncoders和CountVectorizers的ColumnTransformer)
- imblearn的SMOTE
- 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的采样器实际上是无操作(即身份)转换器。因此,在安装管道之后,将它们删除是安全的。
尝试以下工作流程:
- 构造一个Imblearn管道,并将其安装。
- 将已安装的Imblearn管道的步骤提取到新的Scikit-Learn管道。
- 删除SMOTE步骤。
- 使用标准的Scikit-Learn管道解释工具解释您的预测。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。