SHAP和LIME:Python机器学习模型解释
为了更好地展示,示例代码参见和鲸社区,一键运行
简介
机器学习模型在各个领域得到广泛应用,但其黑盒性质往往使人难以理解其决策过程,降低了模型的可信度和可靠性。为了解决这一问题,可解释性人工智能(XAI)应运而生,其目标是为模型的行为和决策提供清晰、可理解的解释。
一、SHAP
SHAP(SHapley Additive Explanations)是目前最流行的XAI工具之一,它可以解释各种机器学习模型,包括树模型、线性模型、深度学习模型等。SHAP的核心思想是将预测结果解释为各个特征的贡献值之和。
使用之前可能有两个考虑的问题:
- 需不需要对特征进行缩放(scale)?答案是不严格要求;
- 是不是要分割数据,使用train训练数据,而用test数据进行解释?答案也是皆可。
SHAP可以解释的内容:
-
各个变量的贡献: SHAP可以计算每个特征对预测结果的贡献值,并以SHAP值的形式呈现。SHAP值越高,表示该特征对预测结果的影响越大。这是解释的核心内容,python的shap包提供了多种可视化的手段。
-
变量内部值与SHAP value的关系: SHAP可以展示不同特征值对预测结果的影响。例如,对于一个房价预测模型,我们可以使用SHAP解释房屋面积对房价的影响。
-
变量间的交互作用: SHAP可以揭示变量之间的交互作用。例如,对于一个贷款违约预测模型,我们可以使用SHAP解释信用评分和收入对违约概率的交互作用。值得一提的是,探索交互作用使用TreeExplainer解释器会更加便捷,通用的解释器不支持计算交互作用值。
二、LIME
LIME(Local Interpretable Model-Agnostic Explanations)是一种基于局部线性模型的解释方法。LIME可以解释任意类型的机器学习模型,但其解释效果与模型的复杂度有关。
LIME的工作原理是围绕目标预测点生成局部扰动数据,然后使用线性模型解释这些扰动数据对预测结果的影响。
LIME解释的内容重点放在变量对结局的贡献,还可以将连续变量分割成分类变量来进行解释。
总结
SHAP和LIME是两种强大的机器学习模型解释工具,它们可以帮助我们理解模型的决策过程,提高模型的可信度和可靠性。