簡體   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