大数跨境
0
0

一篇文章看懂机器学习算法XGBoost+SHAP的原理、SCI案例、0代码实现教程

一篇文章看懂机器学习算法XGBoost+SHAP的原理、SCI案例、0代码实现教程 MedCite学术引擎
2025-08-11
0

今天我们来谈一谈XGBoost+SHAP的原理、在SCI文章中的应用,以及如何不写代码实现XGBoost+SHAP的分析

最近几年,机器学习在临床研究文章中出现的频率越来越高了,相比于传统的回归分析,机器学习能够处理的问题更复杂,能够探索各种可能存在的统计组合,然后给出一个最佳的变量组合。而在众多机器学习方法中,XGBoost 出现的频次最高。XGBoost 尤其适合解决临床研究中那些变量繁多、关系错综复杂的预测和分类难题。无论是构建疾病风险预测模型、识别潜在的治疗靶点,还是对患者进行精准分型,XGBoost都展现出强大的潜力。

    XGBoost的原理

XGBoost的原理比较复杂,我们用一个简单的案例向大家解释一下核心逻辑:

我们以学生考试为例,每个学生都类似于一个模型考的分越高说明错误率低,模型的预测效果好。反之考分低,说明模型能力差。我们的目标是找到一个考分最高的模型。

传统的预测模型是基于学生一次考试的结果来判断好坏,大部分时候模型不可能拿到最高分。

XGBoost则是让多个学生进行接力:

  1. 第一个学生(弱模型):他先考试,但成绩一般(预测不准)。他答错的题(预测误差),就是下一棒的重点。

  2. 第二个学生:他不直接做原题,专门研究第一个学生错在哪里(学习残差)。他目标是:如果第一个学生给某病人打了60分(低估风险),他就努力补上缺失的分数(比如+20分)。

  3. 第三个学生:他研究前两人加起来还错的地方,继续补漏(可能+5分)。

  4. 不断接力:加更多学生,每个都专注于修正前面所有人组合起来还存在的错误。

  5. 最终成绩:新病人的风险预测 = 第一个学生的打分 + 第二个学生的补分 + 第三个学生的补分 + ... 所有学生补分累加。

简单来说,XGBoost 就是让一堆简单模型接力学习,后一个专修前一个的错误,把所有修正加起来得到远超单个模型的精准预测。它特别擅长处理像临床数据这样复杂、有缺失的情况,预测患者的预后情况。

当然,XGBoost也有缺点:它无法像回归模型那样直接给出OR值或β系数,所以没办法直观解释某个X对Y的影响大小是多少,这就是我们通常说的“黑箱”。为了解决这个问题,统计学家和计算机专家引入了SHAP 的概念,量化了每个模型参数的贡献值

SHAP值(Shapley Additive exPlanations)的定义: 基于博弈论的Shapley值,表示在特定预测中,某个特征相对于基线预测(所有特征取平均值的预测)的贡献值,这就相当于解决了黑箱子的问题。

比如在我们使用某些指标来预测人的生存年龄,SHAP值显示:

  • 吸烟贡献 -3.5年

  • 饮酒贡献 -2.8年

  • 规律运动贡献 +4.5年

那么,我们就可以量化的知道每一个因素对于生存年龄的影响大小。

因此越来越多的文章,开始使用XGBoost+SHAP这个组合来开发临床预测模型。下面我们以一篇真实的SCI文章案例来说明这个问题。最后也会告诉大家如何使用统计工具零代码复现整套分析。

    SCI案例

文章标题是:XGBoost Regression of the Most Significant Photoplethysmogram Features for Assessing Vascular Aging(IF 6.8),中文是:基于最显著光电容积脉搏波特征评估血管老化的XGBoost回归分析。文章在 752 名志愿者的 PPG(光电容积描记法) 波形里提取的 78 个特征的数据,通过XGBoost回归模型预测志愿者年龄,并计算了SHAP值去评估特征重要性。

该研究在构建XGBoost预测血管衰老的模型时,使用了贝叶斯优化的方法进行调参,找到了最优参数,用于预测模型的构建,最终得到的预测模型具有 8.1 年的平均绝对误差(MAE)和9.9年的均方根误差(RMSE),通过SHAP值进行的特征重要性分析表明,收缩压和舒张压峰值振幅、上升时间、偏度以及脉搏面积等特征在血管老化评估中起关键作用,比其他PPG特征在血管老化评估中更具重要性。

关键结果解读:

  • XGBoost模型的性能指标

MAE (Mean absolute error) =8.1,表明预测年龄与实际年龄平均相差8.1年。Root mean squared error (Mean absolute error) =9.9,表明预测年龄平均偏离真实值约 9.9年。

多个性能评价指标综合表明,XGBoost回归模型的表现与现有基于光电容积脉搏波(PPG)的血管老化评估模型相当。

  • 贝叶斯优化得到的最佳参数组合

这篇文章在执行贝叶斯优化时用了10折交叉验证,所以得到Mean ± SD (range)。一般研究会选择交叉验证得到的参数分布的均值或者中位数,来构建XGBoost模型。

  • SHAP值——特征重要性

特征重要性条形图:展示各特征对模型预测的平均绝对影响力(mean(|SHAP value|))。结果分析:

舒张期波幅(Amp_dia),重搏波面积(Area_rppG)和收缩期上升时间 (RT_sys )是最强预测因子(SHAP>1.0)。前9个关键特征贡献度 ≈ 7.86,69个次要特征总和达11.44。(次要特征总和 > 关键特征,可以优化冗余特征)。

特征重要性条形图

SHAP蜂群图:展示各特征值对预测的方向性影响(SHAP value impact),其中每一个点代表一个样本的某个特征值对模型预测的贡献,横坐标表示SHAP范围,纵坐标表示特征重要性排序,点颜色表示特征值高低(默认红=高值,蓝=低值)。结果分析:

Area_rppG(重搏波面积):高值(红点) 主要分布在SHAP<0区域,表明特征值越大,血管年龄越小,对健康有促进作用。提示重搏波面积越大,预测血管年龄更年轻。

RT_sys(收缩期上升时间):低值(蓝点) 集中在SHAP<0区域,表明特征值越小,血管年龄越小,对健康有促进作用。提示上升时间缩短,预测血管年龄更年轻。

SHAP蜂群图

在这篇SCI中,XGBoost+SHAP强强联合,探讨了XGBoost作为血管衰老评估模型的潜力,并通过SHAP值分析,研究探讨了关键PPG特征。

那么,这么好用的机器学习方法,该如何分析呢?

机器学习的代码比传统回归分析要复杂很多,还涉及到模型超参数的贝叶斯优化,为了解决这些问题,EasyR统计软件开发一套0代码复现XGBoost的工具,大家动动鼠标就可以完成复杂的XGBoost+SHAP的分析结果。下面我们看看实战教程:

    0代码复现XGBoost+SHAP

1.登录EasyR网站,上传自己的数据。

这个软件是在线工具,无需下载、无需安装,打开网页就可以试用(网址是https://www.easyrdata.com),第一次使用需要注册,注册非常简单。进入网站之后,大家可以用系统自带的demo数据进行测试,也可以上传自己的数据。

2.分析数据查看

在【首页】和【变量清单】可以查看数据的基本情况。

3.选择“高级建模与预测-XGBoost”模块

在【高级建模与预测】里,找到【XGBoost】,选择【因变量Y】和自变量【X】,设置【训练集比例】,然后一键分析。

4.结果输出。

我们的结果展示了贝叶斯优化的全局最优参数组合,XGBoost预测模型的性能指标,SHAP值,以及SHAP值条图和蜂群图,后期我们会上线AI解读功能,帮助大家快速解读模型结果。

好了,以上就是EasyR里XGBoost的操作教程了,大家可以跟着教程一步一步操作。非常建议大家收藏分享,等到需要用的时候可以快速拿来参考。

    关于EasyR的几个问题
1.EasyR工具使用方法:
EasyR的网址是:www.easyrdata.com 软件基于网页,不需要下载、安装,直接浏览器访问即可。第一次使用需要注册,后续就可以直接使用了。
2.软件的后台是什么,结果可靠吗?
EasyR软件后台是R语言,已经在数十篇SCI文章中使用了,分析结果经过了SPSS和SAS的验证,结果可靠可信,受SCI认可。目前使用的是R 4.3.1版本,后续会根据随R稳定版本进行升级。
文章1:Insights into orbital morphological features and fracture patterns in medial and inferior wall fracture: a retrospective cohort study
文章2:Effects of various extraocular muscle enlargement patterns on muscle diameter index in graves ophthalmopathy patients: a retrospective cohort study

3.如何在文章中引用EasyR,引用后是否有奖励?

英文期刊引用模板1:The statistical analysis was conducted using R version 4.3.1 (https://www.R-project.org) and EasyR (https:// www.easyrdata.com Solutions, Inc., Shanghai). Statistical significance was determined by P values < 0.05 in all analyses.

英文期刊引用模板2:Statistical analysis was performed with R version 4.3.1 (https://www.R-project.org) and EasyR (https://www.easyr. cc Solutions, Inc., Shanghai).

中文期刊引用:统计分析采用R软件4.3.1版本(https://www.R-project.org )以及EasyR(https://www.easyrdata.com ,上海,斯录欣)完成。所有分析中,统计学显著性水平设定为P<0.05。

文章见刊后,可以联系我们的客服,领取软件的免费延长激活码。

4.EasyR软件是哪个团队开发的?
EasyR软件是由专业统计师团队研发,并获得了专利授权。2020年V1.0版本上线,现在是2.0版本,新版本重新设计了软件的框架,性能更好、操作更便利。本软件和易侕统计软件无关,是独立的公司和团队开发,账号和会员也无法通用。
5.EasyR软件收费吗?
EasyR软件是收费软件,注册之后可以免费基于demo数据试用,如果上传自己的数据则需要付费,目前支持按星期、按月付费。如果你在文章中引用了EasyR,我们将赠送一定时长的激活码。
6.软件目前有多少模块,后期会增加吗?
软件目前包括了智能三线表、数据插补、倾向性评分、单因素/多因素分析、生存分析、XGboost、机器学习、lasso回归、RCS等20多项模块,后续会持续更新,欢迎大家持续关注。
除了正态性检验,我们之前还做了其他统计教程比如相关性热图正态性检验三线表,如果觉得有用,记得关注+收藏哦,后续我们会继续分享更多SCI统计方法的教程,欢迎大家持续关注。
关注pubmed.pro不迷路~

【声明】内容源于网络
0
0
MedCite学术引擎
基于PubMed的科研AI工具MedCite学术引擎。集学术AI、文献检索、PDF翻译、IF影响因子、文献管理于一体的科研学术引擎。
内容 93
粉丝 0
MedCite学术引擎 基于PubMed的科研AI工具MedCite学术引擎。集学术AI、文献检索、PDF翻译、IF影响因子、文献管理于一体的科研学术引擎。
总阅读17
粉丝0
内容93