为何不同输入的SHAP分数图中base value存在差异?
问题原因分析
你看到三个样本的「sadness」类base value不一致,核心原因是SHAP解释器使用的背景样本集不固定,而非训练集的全局平均预测得分。具体拆解如下:
文本SHAP解释的默认逻辑:官方情感分类示例使用的
shap.TextExplainer,默认不会直接采用全量训练集作为背景样本。为了适配文本任务的解释合理性和计算效率,它会通过扰动原始文本生成背景样本(比如随机mask单词、打乱词序)。如果没有显式指定固定的背景数据集,每个样本解释时生成的背景样本是随机的,背景样本的预测均值(即base value)自然会存在差异。背景样本的定义偏差:你之前理解的「base value是训练集全样本的平均预测得分」,仅适用于将全量训练集显式指定为背景的场景。但在实际文本任务中,全量训练集作为背景会导致计算量过大,因此SHAP默认会采用小批量采样或动态生成的扰动背景,而非固定的全量训练集。
解决方法:如果希望所有样本的base value保持一致,可以显式指定固定的背景数据集(比如从训练集中选取若干样本组成固定集合),在初始化
TextExplainer时传入background参数。这样所有样本的base value都会基于这个固定背景集的预测均值计算,结果就会统一。
内容的提问来源于stack exchange,提问作者Prasanjit Rath
相关产品推荐
相关产品推荐

