SHAP法可解释性机器学习介绍:理论与方法
SHAP法可解释性机器学习介绍:理论与方法
从列线图到SHAP,机器学习模型的可解释性方法正在经历一场变革。本文将为您详细介绍SHAP方法的理论背景及其计算公式,帮助您更好地理解这一在药物开发等领域的热门工具。
SHAP的历史发展
SHAP方法的发展可以追溯到2010年,当时Štrumbelj和Kononenko首次将Shapley值引入机器学习模型的解释性分析中,用于量化特征对模型预测结果的贡献。到了2017年,Lundberg等人进一步扩展了这一方法,提出了SHAP分析,并将其他特征解释方法(如LIME、DeepLIFT等)统一到一个理论框架下,发布了开源包,促进了SHAP在机器学习中的广泛应用。
SHAP方法的理论基础
在机器学习领域中,模型的可解释性一直备受关注,是一个重要的课题。尽管复杂的模型如深度神经网络和集成模型(如XGBoost、LightGBM)在预测性能上表现优异,但通常被视为“黑箱”,难以解释其内部决策过程。
SHAP(SHapley Additive exPlanations)是一种解决这一问题的工具,用来解释机器学习模型预测结果的方法。它提供了一种基于博弈论概念的方法来解释模型的预测结果,并帮助我们理解每个特征对于预测结果的贡献程度。
追根溯源,SHAP分析的基础是Shapley值,这是博弈论的一个概念。而Shapley值则可为一组合作完成共同目标的“玩家”提供公平的收益分配方式。
为便于理解,在机器学习模型中,我们可以将每个特征(如年龄、性别等)视为参与预测游戏的玩家。玩家们(特征)通过合作,共同影响游戏(模型)的最终预测结果。SHAP法则是最公正的裁判,借助博弈论的观点来理解这些特征的影响,以更公平合理的方式分配它们的贡献。
SHAP值的计算方法
我们可以举一个简单的组合药物疗法的例子,来理解SHAP值的计算公式。
案例:假设我们正在分析三种药物的组合效果,三种药物分别命名为A、B和C。
- 药物 A、药物 B 和药物 C 一起使用时的反应率为 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值。
对于树模型(如 XGBoost、随机森林、LightGBM、CatBoost):
树模型利用其特有的树结构和路径分割特点,可以通过Tree SHAP 算法快速、精确地计算出 SHAP 值。基于神经网络的模型:
通过使用“计算图”或者模型的“可微性”,可以近似地计算 SHAP 值。常用的Python包SHAP提供了两种工具——DeepExplainer 和 GradientExplainer,分别适用于不同的神经网络模型。Kernel SHAP:
作为一种通用的近似方法,该法适用于所有类型的监督学习模型,它的核心思想是通过加权采样来近似计算 SHAP 值。具体来说,使用该方法时,首先需要选择一个具有代表性的数据集作为背景数据集,以反映模型的一般输出行为。
然后通过反复采样和加权估算 SHAP 值。
综上所述,SHAP分析通过Shapley值的思想,以博弈论的视角解释特征的重要性,逐渐成为解释机器学习模型的一种常用且广泛认可的方法。作为机器学习的最佳助手,SHAP法我们一定要有所了解。
下一篇我们将介绍SHAP分析可视化!大家敬请期待!