我如何解释 imblearn 管道的预测?
How can I explain predictions of an imblearn pipeline?
我有一个 imblearn(不是 sklearn)管道,包括以下步骤:
- 列选择器
- 预处理管道(不同列上带有 OneHotEncoders 和 CountVectorizer 的 ColumnTransformer)
- imblearn 的 SMOTE
- XGBClassifier
我有一个表格数据集,我正在尝试解释我的预测。
我设法通过一些工作得出了特征重要性图,但两者都得不到
eli5 或 lime 工作。
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 的采样器在预测期间实际上是 no-op(即身份)变换器。因此,安装管道后删除它们应该是安全的。
尝试以下工作流程:
- 构建 Imblearn 管道,并安装它。
- 将已安装的 Imblearn 管道的步骤提取到新的 Scikit-Learn 管道。
- 删除 SMOTE 步骤。
- 使用标准 Scikit-Learn 管道解释工具解释您的预测。
我有一个 imblearn(不是 sklearn)管道,包括以下步骤:
- 列选择器
- 预处理管道(不同列上带有 OneHotEncoders 和 CountVectorizer 的 ColumnTransformer)
- imblearn 的 SMOTE
- XGBClassifier
我有一个表格数据集,我正在尝试解释我的预测。 我设法通过一些工作得出了特征重要性图,但两者都得不到 eli5 或 lime 工作。
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 的采样器在预测期间实际上是 no-op(即身份)变换器。因此,安装管道后删除它们应该是安全的。
尝试以下工作流程:
- 构建 Imblearn 管道,并安装它。
- 将已安装的 Imblearn 管道的步骤提取到新的 Scikit-Learn 管道。
- 删除 SMOTE 步骤。
- 使用标准 Scikit-Learn 管道解释工具解释您的预测。