分类列的SHAP解释

问题描述 投票:0回答:1

在使用 SHAP 解释模型时,我对如何处理分类列感到非常困惑。

例如,我正在使用来自kaggle的自行车共享数据集 (https://www.kaggle.com/datasets/lakshmi25npathi/bike-sharing-dataset

对分类列(即天气/工作日)进行一项热编码、训练模型并使用 SHAP 生成解释后,解释特征的结果与一项热编码特征相同。

有没有一种方法或概念可以将那些一个热编码特征的SHAP值合并回单个特征? (例如,将一个热编码特征的 SHAP 值:Weather_Spring、Weather_Summer、Weather_Fall、Weather_Snow 恢复为 Weather 的单列值)

如果我的解释不清楚,我深表歉意。如果有任何歧义,请告诉我,我会提供更清晰的解释或更正。

regression shap xai
1个回答
0
投票

是:SHAP 值是相加的。因此,您可以将分类特征 $X$ 的所有虚拟变量的 SHAP 值相加,以获得其级别的 SHAP 值。

在实践中,人们很少需要使用 OHE 分类。基于树的模型通常提供其他方法(整数编码、内部算法),您不必关心这一点。对于非基于树的模型,您可以简单地将预处理器和模型打包到 Scikit-Learn 管道中。在那里,您也不会遇到问题,因为 SHAP 解释器将“看到”原始输入,而不是虚拟输入。

© www.soinside.com 2019 - 2024. All rights reserved.