2024-2025 课程介绍
可预开发票,郑老师团队2024-25年科研统计课程预告,含机器学习、轨迹模型等。11.30-12.1 R语言构建机器模型模型课程开启
SHAP法作为一个强有力的工具,能帮助我们理解模型的输出,告诉我们每一个特征对预测结果的影响。
可以说,无论是复杂的深度学习模型,还是简单的回归模型,SHAP都能给出解释。
先前我们介绍了SHAP的理论背景,今天来上点干货,开启我们系列文章的第二篇:SHAP分析之可视化及其可视化图表!
SHAP法可视化图表概述
为了使这些 Shapley 值更容易理解,SHAP 库提供了各种可视化工具。而这就是我们所说的SHAP可视化图表,每张图都有其特定的解释方式、目的、优点和缺点。
下面我们将用一个具体的回归模型帮助我们理解SHAP分析可视化的不同图表(无特殊说明,展示的是测试集的SHAP分析)。
可解释性分析:在确认模型拟合良好之后,使用SHAP包计算了训练集和测试集的SHAP值。
(一)条形图
条形图作为一个全局解释方法,展示了每个特征在所有预测中的平均绝对SHAP值,是衡量特征重要性的标准。
优点:SHAP值与模型预测的单位相同,结果更直观。
缺点:缺乏对影响方向性的细致区分,无法表明特征与预测值之间的关系是否是单调的。
此外,基于 SHAP 值选择一个阈值来识别最重要的特征时,往往需要根据领域知识,并且应根据具体情况来决定,因此并没有普遍适用的规则。
下图展示了使用 SHAP 分析得到的条形图,结果显示年龄是影响最大的特征,其次是 BMI 和性别。
(二)蜂群图
每个点代表一个特征在样本中的SHAP值,图中的颜色表示特征值的大小; 红色代表高值,蓝色代表低值; 点的位置由SHAP值决定,越大越远离零。
优点:蜂群图可以同时展示多个特征的影响,并揭示特征与预测值之间的关系形态(如单调递增或非线性等)。
缺点:由于使用颜色作为尺度,当特征变化不明显时,可能难以清晰地从颜色差异中提取关系形态。
年龄的SHAP值范围较广,并呈现出单调递增的趋势: 同时,年龄和BMI的SHAP值表现出相似的模式,这可能暗示这两个特征之间存在交互作用,可以通过进一步的分析来确认这一点。
(三)散点图
散点图展示特征值(x轴)与SHAP值(y轴)之间的关系,每个点都代表一个样本的特征值和SHAP值,灰色直方图则显示了特征值的分布。
通过散点图,我们可以观察特征值与SHAP值之间的关系是否线性,也可以添加趋势线以检测关系类型。
散点图还可以基于另一个特征值来着色,从而更好地分析特征间的交互。
需要注意的是,在样本少的区域,图示趋势可能不够可靠。
优点:清晰展示特征对模型预测的影响方向、大小和变化。
缺点:每次只能展示一个特征,若需展示多个特征,需绘制多张图。
年龄超过50岁时,SHAP值通常为正(即血压较高),且表现出非线性关系; 此外,未发现年龄与BMI间的显著交互作用。
下图展示了在五折交叉验证下年龄特征的SHAP值分布,通过不同颜色区分各折叠,并按训练-测试集分面。
可以看到,年龄特征的SHAP值趋势在各折叠和数据集之间保持一致,说明该特征的影响稳定可靠。
(四)瀑布图
瀑布图作为一种局部解释方法,专注于单个样本,展示单个样本的SHAP值,并直观呈现各特征对预测结果的影响。
可以说,该方法特别适用于分析异常值或特定样本的预测。它能帮助我们理解各个特征对模型输出的具体影响,便于我们进行具体的预测分析。
每个特征的SHAP值通过箭头展示,红色箭头表示预测值增加,蓝色箭头表示预测值减少。
下图展示了使用 SHAP 分析得到一个示例受试者的瀑布图。可以看到,BMI是影响该受试者与平均预测值之间差异的最重要特征。
用于二元终点事件的SHAP分析
数据来源:乳腺癌诊断数据集;
特征变量:从乳腺肿块的细针抽吸图像中计算出来的特征;
数据划分:70%数据作为训练集、30%数据作为测试集;
任务:区分肿块是恶性还是良性;
模型:XGBoost训练模型,并进行超参数调优以确保模型拟合良好;
值得一提的是,SHAP值在这两种模式下的数值会有所不同。
例如在概率模式下,concave points的平均绝对SHAP值为0.26,而在对数几率模式下,这一值则为3.81。
但不论使用哪种模式concave points都是最能影响乳腺肿块分类(良性或恶性)的关键特征。
下图注重展示了concave points这一关键特征的散点图,左侧图表基于预测概率,右侧则基于预测对数几率。
可以看到,随着concave points值的增加,其对应的SHAP值也随之增大,直到约0.09。
在这之后,SHAP值趋于平稳,尤其是在预测对数几率时。
用于时间依赖性机器学习模型的SHAP分析
接下来是我们的第二个示例,就算我们对药物代谢动力学不太了解,但通过SHAP分析,我们同样能得出对结果贡献最大的特征。
可解释性分析:在确认模型拟合良好之后,使用GradientExplainer计算了训练集和测试集的SHAP值。
下图展示了SHAP分析的不同可视化图,包括条形图b、蜂群图c和展示药物浓度与SHAP值关系的散点图(d–f)。
图a展示了一个PK模型的时间过程示例。 在图b中,我们看到最重要的特征是 C1,9,其次是 C1,13和 C1,17它们对预测个体清除率贡献显著。 图c的蜂群图显示,在药物排泄阶段,浓度的SHAP值呈现单调递减趋势,除了 C0,5和C1,5。 图d和图e的散点图显示,对于相同的TSLD,不同周期的药物浓度SHAP值遵循相同趋势。 而图f的散点图则显示,第一个周期的药物浓度SHAP值呈单调递增趋势,符合我们的预期。
今天的文章就分享到这里,SHAP的可视化功能特别强大,建议大家可以多尝试不同的图表类型,这能帮助我们从不同角度理解模型。
如果您对机器学习预测模型感兴趣的话,来看看我们的机器学习与预测模型服务吧,一对一指导!详情可咨询助教,微信号:aq566665
关于郑老师团队及公众号
我们开展对临床预测模型、轨迹增长模型、医学免费数据库NHANES、GBD数据库、孟德尔随机化方法1对1R语言指导(一年内不限时间,周末、晚上均统计师一对一指导)。
②全程指导课程学习
③课程R语言代码运行bug修复
④支持学员一篇SCI论文的数据分析
联系助教小董咨询(微信号aq566665)