JAMA | 机器学习中的可解释性:SHAP分析图像复刻与解读

简介: JAMA | 机器学习中的可解释性:SHAP分析图像复刻与解读

一、引言

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分析作为一种先进的解释性工具,可以帮助我们深入理解模型预测结果背后的原因,识别重要特征,并提供直观的解释,从而增强模型的可解释性和透明度。

*「未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。」

目录
相关文章
|
11天前
|
机器学习/深度学习 数据可视化 计算机视觉
【视频】机器学习交叉验证CV原理及R语言主成分PCA回归分析犯罪率|数据共享
【视频】机器学习交叉验证CV原理及R语言主成分PCA回归分析犯罪率|数据共享
|
11天前
|
机器学习/深度学习 搜索推荐 算法
基于机器学习的用户行为分析与个性化推荐系统
传统的用户行为分析和推荐系统常常受限于规则的刻板和模型的简单,无法准确捕捉用户的个性化需求。本文基于机器学习技术,探讨了一种更加灵活、精准的用户行为分析与个性化推荐系统设计方法,通过深度学习模型结合大数据分析,实现了对用户行为的更细致把握和更个性化的推荐服务。
|
11天前
|
机器学习/深度学习 算法 数据可视化
Machine Learning机器学习之高维数据降维(主成分分析PCA、线性判别分析、自编码器超级无敌详细讲解)
Machine Learning机器学习之高维数据降维(主成分分析PCA、线性判别分析、自编码器超级无敌详细讲解)
|
11天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
11天前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6天前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
在本教程中,您将学习在阿里云交互式建模平台PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理,实现文本驱动的图像编辑功能单卡即可完成AIGC图片风格变化、背景变化和主体变化等功能。让我们一同开启这场旅程,为您的图像编辑添上无限可能性的翅膀吧。
|
8天前
|
机器学习/深度学习 数据采集 人工智能
论文介绍:机器学习中数据集规模增长的极限分析
【5月更文挑战第17天】论文《机器学习中数据集规模增长的极限分析》探讨了数据集大小对AI模型性能的影响,预测语言数据可能在2026年前耗尽,图像数据在2030-2060年可能面临相同问题。研究显示数据积累速度无法跟上数据集增长,可能在2030-2040年间导致训练瓶颈。然而,算法创新和新数据源的发展可能缓解这一问题。[链接](https://arxiv.org/pdf/2211.04325.pdf)
31 2
|
11天前
|
数据可视化
R语言机器学习方法分析二手车价格影响因素
R语言机器学习方法分析二手车价格影响因素
|
11天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】金融数据分析中的机器学习应用
【4月更文挑战第30天】本文探讨了机器学习在金融数据分析中的应用,如股价预测、信用评分、欺诈检测、算法交易和风险管理,并以Python为例展示了如何进行股价预测。通过使用机器学习模型,金融机构能更准确地评估风险、识别欺诈行为并优化交易策略。Python结合scikit-learn库简化了数据分析过程,助力金融从业者提高决策效率。随着技术发展,机器学习在金融领域的影响力将持续增强。
|
11天前
|
机器学习/深度学习 Python
【Python 机器学习专栏】混淆矩阵与 ROC 曲线分析
【4月更文挑战第30天】本文介绍了机器学习中评估模型性能的两种工具——混淆矩阵和ROC曲线。混淆矩阵显示了模型在不同类别上的预测情况,包括真正例、假正例、真反例和假反例,帮助评估模型错误类型和数量。ROC曲线则通过假正率和真正率展示了模型的二分类性能,曲线越接近左上角,性能越好。文章还提供了Python中计算混淆矩阵和ROC曲线的代码示例,强调它们在模型选择、参数调整和理解模型行为中的应用价值。

热门文章

最新文章