机器学习XGBoost算法在医学领域的应用研究进展

2021-10-23 02:16齐巧娜陈霁晖刘昕竹张津源崔梦璇谢艺萌王则远
分子影像学杂志 2021年5期
关键词:机器预测算法

齐巧娜,刘 艳,陈霁晖,刘昕竹,杨 锐,张津源,崔梦璇,谢艺萌,王则远,于 泽,高 飞,张 健

1北京诺道医学认知科技有限公司,北京 100161;2上海交通大学医学院附属新华医院临床药学部,上海200092

随着医疗信息化的飞速发展,医疗大数据呈爆炸式增长。医疗大数据包含患者在疾病诊疗过程中产生的全部数据,包括医生处方、电子病历、生命体征、医学成像、检验检查、药物治疗、医疗保险等数据。通过对医疗大数据的深入挖掘,可促进个性化医疗、优化诊疗手段和提高诊疗效率[1-3]。人工智能作为计算机科学的一个新的技术分支,它试图通过获取、表示和使用知识来不断改善性能和自我完善,而赋予计算机类似于人类的学习能力[4-5]。机器学习是人工智能的主要实现途径,并且是人工智能研究中发展最快的领域之一[6]。现代医疗领域已经配备医疗数据的采集及存储系统,并且能够在大容量的信息系统中实现集成和分享。应用机器学习对医疗大数据进行挖掘,以总结、获取新的知识,相比常规的临床研究和传统统计学,具有更强的数据处理和知识获取能力[7-8]。

Boosting也称为增强学习或提升法,是集成学习技术中重要的框架之一,其应用十分广泛。2014年陈天奇博士提出XGBoost 算法,XGBoost 是“极端梯度上升”的简称,它类似于梯度上升框架,但是兼具线性模型求解器和树学习算法算法,作为一种新型高效的Boosting算法,在基础算法上加以优化改进,提高了精度,其关注度和应用价值越来越高[9],已广泛地运用于医疗保健、金融、教育、制造等领域的数据分析中。在医药学领域,XGBoost已应用于疾病诊断以及疾病发生风险、转归与预后、合理安全用药和药物研发的数据分析,在这些方面XGBoost 均表现出了强大性能和较高精度。本文针对XGBoost 算法的原理、优势及其在医药学领域的应用研究进行综述。

1 XGBoost算法

1.1 XGBoost算法原理简介

XGBoost作为一种新型机器学习算法,其算法运行过程分为学习和推理两部分[9]。其中,学习机的目标是使得损失函数最小化,即在决策树复杂度尽可能低的情况下要求预测误差尽可能小。决策树的构建过程,首先通过贪心法枚举所有符合条件的树结构方案,并结合Gain 值和自定义阈值作为节点分裂依据进行分裂或剪枝终止分裂;其次,计算所有方案中叶节点的分数以及决策树得分,更新决策树序列;最后,计算各个样本的预测结果,即每棵决策树的得分之和,得到样本属于各个类别的概率。

而推理机是基于学习机得出的决策树序列。首先,代入样本信息依次从决策树序列的根节点到叶节点进行逻辑判断,如果不是叶节点,判断该样本属于左/右子节点,反之则计算叶节点分数并输入下一颗决策树进行判断;其次,对所有决策树给出的预测值进行求和,得到该样本分类为1的概率并根据阈值函数判断样本最终所属分类(图1)。

图1 决策树分类原理整体模型—对于给定的示例,最后的预测是每棵树的预测之和[9]Fig.1 Tree ensemble model-The final prediction for a given example is the sum of predictions from each tree[9].

1.2 XGBoost 应用于医学数据挖掘的优势

医学数据的类型、属性、表达方式是错综复杂的。其特点包括:资源庞大,过程复杂,可能存在大量的冗余数据;数据类型多样,包括文字、影像、信号等;数据稀疏性强,比如病案往往并未包含某种疾病的全部信息或者患者的化验结果由于各种原因,导致大量数据缺失[10-12]。然而,许多常用的机器学习算法需要完整的数据集(没有丢失的数据),临床分析方法通常需要一个输入程序来“填补”丢失的数据。管理缺失数据最常用的两种策略是输入或删除值,前者可能导致偏差,而后者可能导致偏差和统计能力的损失[13-15]。

而XGBoost 算法在处理这些问题上显示出独特的优势:以并行运算著称,可快速运行大规模数据;可自动优化分裂节点,擅长处理异常值和缺失值较多的无规则数据;可进行自主学习,模型具有可解释性和灵活性[9]。

2 XGBoost在医学领域中的应用研究

2.1 疾病诊断

XGBoost算法常用于影像学诊断。比如,基于癫痫患者MRI的神经生理学特征数据,对癫痫病灶区进行识别[16]。该研究可辅助医生在术前判断病灶区域从而准确地进行病灶切除。此外,XGBoost 和贝叶斯优化可用于对肺结节计算机辅助诊断,有学者采集了肺结节(62位肺癌患者及37位良性肺结节患者)患者的CT影像数据,抽取影像特征后采用支持向量机(SVM)和XGBoost算法对特征向量及对应标签进行预测学习,其中将TPE作为SVM和XGBoost参数的贝叶斯优化方法,得到的曲线下面积(AUC)值分别为0.850和0.896,XGBoost算法的预测效果总体优于SVM算法[17]。

此外,还有一些疾病的诊断也应用了XGBoost算法。如有研究使用机器学习方法构建了尿路感染诊断预测模型,通过提取人口统计资料、生命体征、化验结果、用药等数据,验证和比较了6种机器学习算法用于构建尿路感染诊断预测模型(AUC=0.826~0.904),发现XGBoost 模型是最佳表现算法,显著提高了尿路感染预测中的特异性和敏感度[18]。另有研究采用电感耦合等离子体场质谱对36例帕金森病患者和42例年龄匹配的对照患者脑脊液样本进行分析,共量化了28种不同元素,将XGBoost、随机森林(RF)等不同算法应用于数据集,以识别一组新元素指纹图谱作为生物标志物进行帕金森病患者的诊断。该研究确定了一个可识别帕金森病患者的元素指纹簇(Se、Fe、As、Ni、Mg、Sr),XGBoost 算法在识别帕金森病中显示出了很高特异性(78.6%)和敏感度(83.3%),其中Se 和Fe被认为是该簇中标志性最强的元素。经前瞻性验证,该元素指纹可能成为帕金森病诊断标志物[19]。有学者使用来自cfDNA的染色体臂水平拷贝数变异作为肺癌诊断生物标志物,采用XGBoost算法进行癌症预测[20]。研究基于Z评分分析手臂级拷贝数变异分布,结果发现3q、8q、12p和7q染色体有扩增的趋势。22q、3p、5q、16q、10q和15q染色体上经常检测到缺失。实验组应用经过训练的XGBoost分类器,特异性和敏感度最终达到100%。此外,5次交叉验证验证了模型的稳定性。结果表明整合4个臂级拷贝数变异和cfDNA浓度到训练的XGBoost分类器中,可以为检测肺癌提供一种潜在的方法。

2.2 疾病风险、转归及预后的预测

XGBoost算法在疾病风险、转归及预后预测方面也有着广泛的应用。有学者运用美国缅因州电子健康记录数据库,采集了823 627位患者的数据,构建了在未来1年内发生原发性高血压的风险预测模型。该研究在特征选择和模型构建过程中采用了XGBoost算法,其中在回顾性和前瞻性队列中的AUC分别为0.917和0.870,计算风险评分将患者分为5个风险级别,并得出各类别下一年内的生存曲线(图3)[21]。2型糖尿病、脂质紊乱、心血管疾病、精神疾病、临床使用指标和社会经济决定因素被认为是原发性高血压的驱动或相关特征。高风险人群主要包括患有多种慢性病的老年人(>50岁),特别是接受精神障碍药物治疗的人群。同时发现高血压与社会经济因素存在关联。

另有研究首次建立了一种miRNA-疾病关联的XGBoost模型(EGBMMDA),并证明了模型的可信度与稳定性[22]。运用EGBMMDA模型预测了与miRNAs 潜在相关的结肠肿瘤、淋巴瘤、前列腺肿瘤、乳腺肿瘤和食管肿瘤。结果表明,5 种疾病的预测中,EGBMMDA 的准确率均高于98%。有学者用机器学习XGBoost分析整个外显子组测序数据,用于识别精神分裂症高危人群。运用XGBoost模型学习不同基因的突变模式,模型推理得出的前50个基因能够更好地预测精神分裂症的发病[23]。

还有机器学习与影像资料的结合。有学者利用冠状动脉计算机断层扫描(CCTA)读数中的16段冠状动脉狭窄和斑块信息数据,通过XGBoost构建风险分层预测模型,以优化常规CCTA对于疑似冠心病患者的风险评分[24]。分析表明,与常规CCTA风险评分相比,基于XGBoost的风险分层模型可以最大限度地整合来自CCTA的斑块信息,进一步对疑似冠心病患者的风险进行评估。有学者基于急性脑卒中患者的MRI影像数据构建XGBoost脑梗死预测模型,将灌注参数作为急性脑卒中梗死预测的重要因素,准确预测急性缺血性脑卒中[25]。

风险预测或生存分析模型的研究也越来越多的应用了机器学习方法。有研究利用机器学习生成风险模型,对心衰患者的意外入院进行预测。纳入至少18月的心衰患者数据,使用XGBoost、RF和梯度提升算法建立风险预测模型,并结合多元逻辑回归(LR)模型得出心衰风险评分。该模型正确预测了84%心衰患者的意外入院情况[26]。有学者构建了基于卷积神经网络和XGBoost的两阶段补丁的卷积神经网络模型,能够预测脑瘤患者的整体生存时间。首先通过训练卷积神经网络模型提取的高度抽象的成像特征,然后通过XGBoost和后处理程序进一步细化分割不同的肿瘤及其亚区域(非肿瘤和3个肿瘤区域),实现了在小样本量情况下对脑瘤患者生存时间的准确预测[27]。有研究采用LR、RF、SVM和XGBoost机器学习技术,对帕金森病患者跌倒临床结果进行分类预测。研究表明,对比其他方法,SVM和XGBoost技术为帕金森病患者的跌倒提供了更可靠的临床结果预测,分类准确度70%~80%[28]。此外,也有研究在机器学习框架基础上,通过XGBoost、RF和梯度提升决策树3种机器学习算法进行变量选择,并使用逐步Cox回归得出一个改进的评分系统,来优化现有的基于临床数据的ICC分期策略。该研究表明基于机器学习的EHBH-ICC评分系统不但能有效地评价切除后的ICC预后,而且可以应用于临床实践[29]。

2.3 合理安全用药

2.3.1 药物不良反应预警 在药物不良反应预警方面,XGBoost不仅可以从真实世界数据中挖掘风险因素之间复杂且高度相关的关系,还可以提供充分的适用于临床工作者的可解释性数据结果。

有学者使用了XGBoost算法从电子病历中挖掘数据,找出重要特征变量,建立模型以预测镇痛药对骨关节炎患者的副作用[30]。在骨关节患者的药物治疗中,镇痛药的使用可能会使心血管疾病的风险增加20%~50%,而相关的用药副作用的风险预测模型研究则较少。此外,大多数预测模型没有提供适用于临床用药的可解释性来解释其预测背后的推理过程。而XGBoost建立的预测模型拥有优秀的准确性和可解释性,能够有效地帮助骨关节炎患者预防药物副作用。在该研究中,XGBoost模型与SVM、LR、DT等经典的监督机器学习模型进行了预测性能的比较。研究显示:不论是在ROC曲线还是precision-recall曲线中,XGBoost都拥有最好的性能(AUC分别为0.92和0.89)。XGBoost预测模型的可解释性主要取决于特征变量重要性的选择。研究从超过300个危险特征集中,利用XGBoost算法计算出所有特征的重要性排名,选取了前20个重要特征变量纳入模型,以支持该预测模型在临床应用上的可解释性。例如,危险特征变量排名位居前列的有“做过腿部动脉搭桥手术”,这意味着这些患者术后需使用大量镇痛药,极大增加了药物副作用发生的可能性。

依那西普作为常用的肿瘤坏死因子抑制剂,长期使用可能导致注射部位的感染和疼痛等不良反应。有学者建立了依那西普在幼年特发性关节炎患者中的不良反应预测模型[31]。研究采用5种机器学习算法进行建模并比较预测性能,最终XGBoost生成的模型预测效果最好(敏感度75%、特异性66.67%、准确性72.22%、AUC 79.17%)。临床医生和药师可以使用这个简单而准确的模型来早期预测幼年特发性关节炎患者对依那西普的反应,可以有效避免药物不良反应的发生。

有学者采集了2213名接受国药、阿斯利康、辉瑞生物科技公司等疫苗接种的受试者信息,使用机器学习技术建立模型预测疫苗副作用的严重程度[32]。其中,基于疫苗类型、人口统计学和副作用相关数据,XGBoost给出了很高的准确性(0.79)和科恩Kappa值(0.70)。在这项研究中,XGBoost可根据输入数据预测副作用的严重程度,从而提前预判出可能会发生严重不良反应的受试者,给予该类人群特殊关注。

2.3.2 个体化用药剂量预测与传统PKPD模型相比,XGBoost在个体化用药剂量预测方面表现出较好的性能,为药物计算的发展提供了更多可能。

有学者开发了一种基于XGBoost算法的机器学习模型,用来预测叶黄素酯、玉米黄质、黑醋栗提取物、菊花和枸杞的药物组合对眼疲劳患者的最佳剂量[33]。研究者从303名受试者中收集了504项特征,包括人口统计学、人体测量学、眼睛相关指标、血液生物标志物和饮食习惯等。XGBoost 算法使用基线的所有特征来预测干预后45 d的视觉健康评分,以显示眼睛疲劳的改善,然后根据预测的视觉健康评分选择组合的最佳剂量。经过特征选择和参数优化后,Pearson相关系数分别为0.649、0.638和0.685。在去除了侵入性血液测试和昂贵的光学相干断层扫描收集的特征后,模型仍然保持良好的性能。在测试和验证集中的58名受试者中,39名应采取最高剂量作为最佳选择,17名可能采取较低剂量,而2名不能从组合中受益。结果表明该模型可以成功预测组合的最佳剂量,为眼疲劳患者提供个性化的营养解决方案。

有学者基于高维数据、建议变量工程和机器学习方法,开发了一种模型,来预测万古霉素的最佳给药剂量[34]。研究采用极端梯度上升算法对自变量和交互变量进行了初步的检查,然后基于导出的变量建立万古霉素剂量预测模型。基于验证队列中对模型性能的评估,该算法占万古霉素剂量变化的67.5%。亚组分析显示,中、高体质量(理想预测百分比分别为72.7%和73.7%)、血清肌酐中、低水平(理想预测百分比分别为77.8%和73.1%)的患者表现更好。

2.3.3 治疗药物浓度预测与传统药代动力学模型相比,机器学习模型在模型拟合、预测精度上也体现了较好的效果。

有学者采用机器学习建立预测万古霉素谷浓度模型,研究纳入407名儿科患者(年龄<18岁),整个数据集(n=407)按照8:2的比例分为训练组(n=325)和测试组(n=82)。万古霉素谷浓度被视为目标变量,并使用8种不同的算法进行预测性能比较。最终选择了5种高R2(R2=0.657、0.514、0.468、0.425、0.450)的算法(XGBoost、GBRT、Bagging、Extra Tree、Decision Tree),并进一步集成,建立最优模型(R2=0.614、MAE=3.32、MSE=24.39、RMSE=4.94、预测精度=51.22%)。与传统药代动力学模型(R2=0.3)相比,机器学习模型在模型拟合方面效果更好,预测精度更高[35]。

有学者基于XGBoost、logVd、人工神经网络建立了包含典型人体药代动力学参数的Rb预测模型[36],为289种化合物编制了实验Rb值,通过扩展适用范围提供可靠的预测。研究利用血浆药物浓度计算出的人体药代动力学参数(包括分布容积、清除率、平均停留时间和血浆蛋白结合率),以及2702种分子描述符,构建定量结构-药代动力学关系的Rb模型。在评估的药代动力学参数中,log Vd与Rb 的相关性最好(相关系数为0.47)。使用6个分子描述符和logVd进行优化后,该模型的相关系数为0.64,均方根误差为0.205,优于先前报道的其他Rb 预测模型。

有研究基于肺炎克雷伯菌临床分离株的全基因组序列数据搭建了XGBoost的机器学习模型,该模型可准确预测20种抗生素的最低抑菌浓度(MIC)[37]。研究提供了一种在未知基因序列的情况下预测分离菌株MIC的方法,并为构建其他致病细菌的MIC预测模型提供了框架。当患者被诊断出患有感染时,根据该模型的MIC预测可合理快速地选择治疗方案。有学者基于人口统计、社会因素、健康史等建立机器学习模型,评估大数据在预测OTP结果方面的潜力,模型收集分析样本超过3万人次,通过比较LR、RF和XGBoost等方法,最终结果显示XGBoost构建的模型结果最佳,能较准确识别阿片类药物治疗方案有效的患者[38]。还有学者在数据集NCI-ALMANAC 基础上,利用RF 和XGBoost两种机器学习技术建模,通过预测大型复合库中所有可能组合中哪些是协调的工具,扩大相应搜索,以较高地准确性预测未知药物组合对癌症治疗的协同作用[39]。该研究纳入了5000多对药物组合、60个细胞系、4种模型、5种化学特征等进行预测分析,研究显示XGBoost模型比RF有更好的性能。

2.4 药物研发

在药物研发方面,有学者采用XGBoost算法构建了一个集成用于定量结构活动关系模型各种工作流的计算机平台,快速筛选对人类ether-à-go-go相关基因(hERG)的药物封锁,用于药物合成和开发过程中药物对心脏毒性预测的研究[40]。该预测模型可定性和定量预测hERG的IC50值,在评估hERG通道药物阻断的大型数据集时,具有较高的灵敏度和预测能力。有学者运用XGBoost对化合物生物活性进行预测,可用于新药开发中的药物评估[41]。基于化合物分子结构的定量描述,XGBoost在预测生物活性方面优于其他机器学习算法。除了可以在高度不平衡的数据集中检测少数群体活动的能力之外,它在高多样性和低多样性数据集中都表现出显著的性能。有学者开发了一种基于LINCSL1000扰动信号的自编码—极端梯度上升(算法SAEXGBoost)细胞活性预测模型。研究通过细胞活性与药物基因组学之间的关联,结合随机游走—极端梯度上升算法预测药物诱导下的细胞活性,建立药物敏感性预测模型。与其他方法相比,该模型取得了良好效果,有助于发现新型有效的抗癌药物,为精准医疗提供帮助[42]。

除此之外,有学者提出了一种命名为基本蛋白质预测的基于XGboost的框架,用于识别基本蛋白质,在药物设计研究和生物学中可发挥重要作用[43]。本框架基于XGBoost算法,其中包括一种名为替代扩充缩小的模型融合方法,此法可获得更有效的预测模型。与其他方法比较,该框架在预测必需蛋白质的准确性方面具有很大的优势。此外,有学者利用特征提取、特征选择和机器学习算法开发了蛋白质线粒体定位预测模型,基于SubMito-XGBoost算法的三步法预测模型,在交叉验证数据集中预测ACC分别为97.65%和98.94%,又利用独立数据集评价SubMito-XGBoost 模型的预测能力,ACC为94.83%,显著高于其他算法,精准预测蛋白质线粒体定位,为探索人类疾病分子水平新药的发病机制、诊断和开发提供了理论基础[44]。

2.5 其他临床辅助决策支持

临床辅助决策支持系统(CDSS)的开发和使用在过去的几年里取得了巨大的进步。CDSS是一个基于人机交互的医疗信息技术应用系统,旨在为医生和其他卫生从业人员提供临床决策支持,通过数据、模型等辅助完成临床决策。CDSS能够通过降低漏诊率、误诊率以及规范化诊疗行为与过程达到提高医疗卫生机构医疗服务质量的目的[45]。有学者介绍了构建医疗预测的决策支持系统的基本内容。其中包含临床DSS 的重要流程、不同参数及其预测能力,比较了各种运算方法应用于DSS的适用性[46]。此外评估了GBM与XGBoost 算法分别及集成地应用于临床预测模型的性能,不同参数下的GBM+XGBoost集成模型能够达到最高的精确度。

CDSS在临床上也取得了广泛的应用。有学者提出了一种CDSS心脏病预测模型[47]。该模型利用2个公开可用的数据集(Statlog和Cleveland)建立模型,由基于密度的噪声应用空间聚类来检测和消除离群点,混合合成少数过采样技术-近邻来平衡训练数据分布和基于XGBoost模型的机器算法来预测心脏病,并与其他模型以及先前的研究结果进行比较。结果表明,该模型数据集上为95.90%,准确率优于其他模型。

此外,有学者首次在EMR 的基础上,采用基于XGBoost的机器学习方法建立了幼年特发性关节炎患者对甲氨蝶呤用药反应的2个早期预测模型。研究纳入了治疗的362例幼年特发性关节炎患者的甲氨蝶呤单治疗资料。采用DAS44/ESR-3简化标准对甲氨蝶呤响应进行了评价。通过比较各种运算方法应用于DSS的适用性,证实了XGBoost可有效地避免过拟合,预测甲氨蝶呤的疗效优于其他模型,医生在治疗前后制定或调整治疗方案提供了有力的决策支持[48]。

脓毒症是住院死亡的一个重要原因,特别是ICU患者。对于早期预测败血症,及时和适当的治疗可以提高生存结果。有研究利用XGboost开发一种机器学习方法来预测MIMIC-III脓毒症-3患者的30 d死亡率,研究共纳入脓毒症-3患者4559例,其中死亡889例,30 d内存活3670例。通过对接收机工作特性曲线和决策曲线分析的AUCs对logistic回归模型、SAPS-II评分预测模型和XGBoost 算法模型的性能进行测试和比较。最后,利用列线图和临床影响曲线对模型进行了验证。3种模型的AUCs和决策曲线分析结果显示XGboost模型表现最好[49]。风险列线图和临床影响曲线验证了XGboost模型具有显著的预测价值,可以帮助临床医生对脓毒症3患者进行量身定做的精确管理和治疗。

3 结语

本文介绍了XGBoost算法在医药领域中的应用,在所述研究方向中,XGBoost算法展现了较强的性能:可为缺失值或者指定值指定分支的默认方向,大大提升算法的效率;在处理大型数据集时,XGBoost算法能够模拟非线性效应,具有较高的效率和准确性。但是XGBoost算法也存在一定的限制因素,例如XGBoost算法更适合处理中低维、结构化数据,数据样本量较大时,比较耗时。

XGBoost算法相较某些机器学习算法调参简单,但想要获取更好的结果,还需要提升药学与算法、信息化等多学科的结合能力。这对医务人员来说,无疑是一个很大挑战,希望本文能够给医药领域的研究人员带来更多的获益与思考。

猜你喜欢
机器预测算法
无可预测
机器狗
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
机器狗
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
未来机器城
不必预测未来,只需把握现在