一、引言
JAMA Network Open作为JAMA系列期刊之一,在医学研究领域发挥着重要作用。其开放获取的特点使得更多人可以接触到最新的研究成果,包括机器学习在医学领域的应用。
机器学习模型的可解释性一直是研究的热点和挑战之一。特别是在医学领域,对模型决策的解释性要求更高,以确保决策过程透明且可信赖。
SHAP分析作为一种用于解释模型预测结果的方法,在提供了对模型决策过程的解释性同时,也有助于改善模型的可解释性和可靠性。它通过计算特征对预测结果的贡献程度,帮助我们理解模型的预测逻辑。
二、机器学习中的可解释性
2.1 可解释性在机器学习中意义和价值
机器学习模型的可解释性是指能够清晰解释模型预测结果的过程和原因。具有良好可解释性的模型可以增强用户对模型决策的信任度,帮助用户理解模型背后的逻辑,从而提高模型的实用性和可靠性。
2.2 可解释性方法的比较与应用场景
在机器学习中,有多种可解释性方法,如局部解释性方法(如LIME)、全局解释性方法(如SHAP)、基于规则的解释性方法等。这些方法各有优劣,并适用于不同的应用场景。局部解释性方法适用于理解单个预测的原因,全局解释性方法适用于理解整体模型行为,而基于规则的方法适用于生成易解释的规则集。
2.3 SHAP分析的原理和算法介绍
SHAP(SHapley Additive exPlanations)是一种基于博弈论的模型解释方法,它通过计算特征值对模型预测结果的贡献度,为每个特征提供了一个解释性分数。SHAP值的计算基于Shapley值的概念,通过对特征值进行排列组合,计算每个特征对模型输出的影响。SHAP分析可以帮助我们理解模型预测的原因,并为模型预测结果提供直观的解释。
三、Shap分析图像复刻
- 「数据集准备」
import xgboost X, y = shap.datasets.boston() print(X, y)
结果展示:
CRIM ZN INDUS CHAS NOX ... RAD TAX PTRATIO B LSTAT 0 0.00632 18.0 2.31 0.0 0.538 ... 1.0 296.0 15.3 396.90 4.98 1 0.02731 0.0 7.07 0.0 0.469 ... 2.0 242.0 17.8 396.90 9.14 2 0.02729 0.0 7.07 0.0 0.469 ... 2.0 242.0 17.8 392.83 4.03 3 0.03237 0.0 2.18 0.0 0.458 ... 3.0 222.0 18.7 394.63 2.94 4 0.06905 0.0 2.18 0.0 0.458 ... 3.0 222.0 18.7 396.90 5.33
- 「示例数据集介绍」
CRIM:城镇人均犯罪率 ZN:住宅用地超过 25,000 平方英尺的比例 INDUS:非零售商业用地的比例 CHAS:查尔斯河虚拟变量,如果附近是河流则为 1,否则为 0 NOX:一氧化氮浓度(每千万份) RM:住宅平均房间数 AGE:1940 年之前建造的自住单位的比例 DIS:到波士顿五个就业中心的加权距离 RAD:高速公路的可达性指数 TAX:每 10,000 美元的全值财产税率 PTRATIO:城镇师生比例 B:1000(Bk - 0.63)^2,其中 Bk 是城镇黑人的比例 LSTAT:人口中地位较低者的百分比
- 「模型拟合」
model = xgboost.XGBRegressor().fit(X, y)
- 「shap分析」
import shap import pandas as pd import numpy as np import matplotlib as plt explainer = shap.Explainer(model) shap_values = explainer(X)
- 「同版图像复刻」
shap.plots.beeswarm(shap_values,plot_size="auto")
已经八九不离十了,还差颜色不同,来调整一下:
shap.plots.beeswarm(shap_values,max_display=30,plot_size=[10,8],color=plt.get_cmap("viridis"))
基本差不多复刻出来了。
四、SHAP分析解读
4.1 解读SHAP分析结果的步骤和技巧
- 「理解SHAP值」:SHAP值表示每个特征对模型预测的贡献程度。正值表示增加预测值,负值表示减少预测值。
- 「特征重要性排序」:根据SHAP值的大小对特征进行排序,了解哪些特征对预测影响最大。
- 「解释单个预测」:通过展示每个特征对于某个特定预测结果的贡献,解释模型每个预测的依据。
- 「可视化解释」:使用图表直观地展示SHAP值,比如Summary Plot、Force Plot等,有助于理解模型的决策过程。
4.2 如何利用SHAP分析改进模型
- 「特征选择」:根据SHAP值的分析结果,选择重要性较高的特征,可以帮助简化模型并提高模型的泛化能力。
- 「调整模型参数」:根据SHAP分析发现的特征贡献,调整模型参数,如正则化参数的设置,以提高模型性能。
- 「数据采样优化」:根据SHAP值的分析结果,针对特定特征值的样本数据进行重点关注,有针对性地进行数据采样。
五、总结
在机器学习领域,模型的可解释性对于提高模型的信任度、理解模型决策过程、发现潜在问题以及推动模型应用和部署都至关重要。SHAP分析作为一种先进的解释性工具,可以帮助我们深入理解模型预测结果背后的原因,识别重要特征,并提供直观的解释,从而增强模型的可解释性和透明度。
*「未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。」