SHAP法可解释性机器学习介绍:理论与方法

健康   2024-11-12 11:31   美国  

2024-2025 课程介绍

可预开发票,郑老师团队2024-25年科研统计课程预告,含机器学习、轨迹模型等11.30-12.1 R语言构建机器模型模型课程开启

先前本公众号就曾分享过,现在预测模型的文章,大多数都在用机器学习来建模和验证了,并且,可以看出,文章的题目已经不再强调“列线图”,现在文章多强调“SHAP”法。

时代变了,“SHAP” 取代“列线图”,成为预测模型文章标题的重点

但是有好多学者“只知其名”,不懂应该如何应用。为此,我们将推出“SHAP法实用指南”系列文章,为大家讲清楚如何正确进行SHAP分析!

今天分享的这篇文章题为:“Practical guide to SHAP analysis: Explaining supervised machine learning model predictions in drug development”的研究论文
本文重点介绍了SHapley Additive exPlanationsSHAP)这一基于特征的可解释性方法,提供实用指南,以帮助研究人员和从业者更好地理解和应用机器学习模型的预测结果。
研究团队着重介绍了SHAP分析在标准机器学习(ML)模型中的应用,并提供了各种可视化图。
我们的系列文章也将基于这篇文献开展。

SHAP分析实用指南:解释药物开发中的监督机器学习模型预测

今天是我们系列文章的第一篇:SHAP法的理论背景以及SHAP值的计算公式。

从时间来看,SHAP法从出现到广泛应用其实才没过几年:

  • 2010年,Štrumbelj和Kononenko首次将Shapley值引入机器学习模型的解释性分析中,用于量化特征对模型预测结果的贡献。

  • 2017年,Lundberg等人进一步扩展了这一方法,提出了SHAP分析,并将其他特征解释方法(如LIME、DeepLIFT等)统一到一个理论框架下,发布了开源包,促进了SHAP在机器学习中的广泛应用。

什么是SHAP分析?

在机器学习领域中,模型的可解释性一直备受关注,是一个重要的课题。尽管复杂的模型如深度神经网络和集成模型(如XGBoost、LightGBM)在预测性能上表现优异,但通常被视为“黑箱”,难以解释其内部决策过程。

然而,SHAP(SHapley Additive exPlanations)是一种解决这一问题的工具,用来解释机器学习模型预测结果的方法。它提供了一种基于博弈论概念的方法来解释模型的预测结果,并帮助我们理解每个特征对于预测结果的贡献程度。

它基于博弈论中的Shapley值概念,为模型的每个特征分配重要性值,从而解释模型的预测过程。

追根溯源,SHAP分析的基础是Shapley值,这是博弈论的一个概念。而Shapley值则可为一组合作完成共同目标的“玩家”提供公平的收益分配方式。
为便于理解,在机器学习模型中,我们可以将每个特征(如年龄、性别等)视为参与预测游戏的玩家。
玩家们(特征)通过合作,共同影响游戏(模型)的最终预测结果。
SHAP法则是最公正的裁判,借助博弈论的观点来理解这些特征的影响,以更公平合理的方式分配它们的贡献。
表1 将博弈论中的概念和机器学习中的概念相对应

SHAP值计算公式

我们可以举一个简单的组合药物疗法的例子,来理解SHAP值的计算公式。

案例:假设我们正在分析三种药物的组合效果,三种药物分别命名为ABC

假设药物 A、药物 和药物 一起使用时的反应率为 90%每种药物单独使用时的反应率如下:

  • 药物A:40%

  • 药物B:50%

  • 药物C:60%

假设我们还知道两种药物组合的反应率(即在博弈论中称为两个玩家的联盟或组内的大小为 2 的子集):

  • 药物 A 和药物 B:70%

  • 药物 A 和药物 C:65%

  • 药物 B 和药物 C:80%

那么,如果三种药物一起使用时的效果为90%,如何公平地分配每种药物对这个结果的贡献呢?

这个时候就可以用上我们的SHAP法,通过对所有可能的药物组合中的边际贡献进行加权平均,计算它们的SHAP值,得出每种药物对最后疗效的贡献度。
具体计算公式如下
公式符号解释:
使用该公式计算药物组合时,各药的边际贡献及其SHAP值,我们可以从下表看到,所有SHAP值的总和等于90%(20.83% + 33.33% + 35.83% )。
2 举例药物组合的边际贡献,说明如何计算Shapley

其他SHAP值计算公式

通常情况下,研究者们会使用以下公式计算机器学习模型预测中特征贡献的SHAP值。
但这种方法非常耗时,因此,对于常见的机器学习模型:学者们开发了多种实现方式和近似算法,以便高效地计算SHAP值。

对于树模型(如 XGBoost、随机森林、LightGBM、CatBoost):

树模型利用其特有的树结构路径分割特点,可以通过 Tree SHAP 算法快速、精确地计算出 SHAP 值。

基于神经网络的模型:

通过使用“计算图”或者模型的“可微性”,可以近似地计算 SHAP 值。常用的Python包SHAP提供了两种工具——DeepExplainer 和 GradientExplainer,分别适用于不同的神经网络模型。

Kernel SHAP:

作为一种通用的近似方法,该法适用于所有类型的监督学习模型,它的核心思想是通过加权采样来近似计算 SHAP 值。

  • 具体来说,使用该方法时,首先需要选择一个具有代表性的数据集作为背景数据集,以反映模型的一般输出行为。

  • 然后通过反复采样和加权估算 SHAP 
综上所述,SHAP分析通过Shapley值的思想,以博弈论的视角解释特征的重要性,逐渐成为解释机器学习模型的一种常用且广泛认可的方法
作为机器学习的最佳助手,SHAP法我们一定要有所了解。下一篇我们将介绍SHAP分析可视化!大家敬请期待!

如果您对机器学习预测模型感兴趣的话,来看看我们的机器学习与测模型服务吧,一对一指导!详情可咨询助教,微信号:aq566665

关于郑老师团队及公众号

全国大的线上医学统计服务平台,专注于医学生、医护工作者学术研究统计支持,我们是你们统计助理

我们开展对临床预测模型、轨迹增长模型、医学免费数据库NHANES、GBD数据库、孟德尔随机化方法1对1R语言指导(一年内不限时间,周末、晚上均统计师一对一指导)

①指导学习R语言基本技巧

②全程指导课程学习

③课程R语言代码运行bug修复

④支持学员一篇SCI论文的数据分析

1对1R语言指导详情介绍

联系助教小董咨询(微信号aq566665





医学论文与统计分析
本号为高校统计学老师所设,介绍医学论文进展与统计学方法,SPSS分析方法、真实世界研究、R语言与数据挖掘。关注后,发送关键词“33”到公众号就可以获取常见的统计软件比如Spss,sas,PASS(绝对无毒)等
 最新文章