陈晓彤 岑梓熹 谭静仪 栾雅 彭师师 严波 何震
摘要:目的 用机器学习三种不同算法建立心力衰竭分类预测模型,比较模型的准确率,并分析心力衰竭死亡事件重要性特征,对人群尽早发现和实施介入措施提供援助,努力提高人们的健康水平和生活质量。方法 使用Kaggle平台发布的心力衰竭数据集,通过缺失值填充法、数据标准化处理、SMOTE方法进行数据预处理。基于随机森林、C4.5、AdaBoost算法建立心力衰竭预测模型。使用性能评估指标混淆矩阵、ROC曲线、均方根误差以及均值绝对误差评估评价模型性能。结果 PermutationImportance给出的变量重要性排序中,血清肌酐水平、年龄、血清钠离水平排序靠前。三种模型中,随机森林模型准确率为85%,精确率为81%,召回率为68%;C4.5模型准确率为83%,精确率为80%,召回率为63%;AdaBoost模型准确率为80%,精确率为71%,召回率为63%。结论 基于所用数据集,随机森林模型优于C4.5模型与AdaBoost模型,心力衰竭死亡风险预测模型能为心力衰竭早期预防控制及诊断提供参考依据。
关键词:心力衰竭;死亡;预测模型;C4.5;随机森林;AdaBoost
中图分类号:R541.6 文献标识码:A DOI:10.3969/j.issn.1006-1959.2024.11.002
文章编号:1006-1959(2024)11-0011-05
Value of Three Machine Learning Algorithms in Predicting Death from Heart Failure
Abstract:Objective To establish a classification and prediction model of heart failure by using three different algorithms of machine learning, compare the accuracy of the model, and analyze the importance characteristics of heart failure death events, so as to provide assistance for the early detection and implementation of intervention measures, and strive to improve people's health level and quality of life.Methods Using the heart failure data set published by Kaggle platform, the data preprocessing was carried out by missing value filling method, data standardization processing and SMOTE method. A heart failure prediction model was established based on random forest, C4.5 and AdaBoost algorithms. The performance evaluation index confusion matrix, ROC curve, root mean square error and mean absolute error were used to evaluate the performance of the model.Results In the order of importance of variables given by PermutationImportance, serum creatinine level, age and serum sodium level were ranked first. Among the three models, the accuracy of the random forest model was 85%, the accuracy was 81%, and the recall rate was 68%; the accuracy rate of the C4.5 model was 83%, the accuracy rate was 80%, and the recall rate was 63%. The accuracy rate of AdaBoost model was 80%, the accuracy rate was 71%, and the recall rate was 63%.Conclusion Based on the data set used, the random forest model is superior to the C4.5 model and the AdaBoost model. The heart failure death risk prediction model can provide a reference for early prevention, control and diagnosis of heart failure.
Key words:Heart failure;Death;Prediction model;C4.5;Random forest;AdaBoost
心力衰竭(heart failure)是因为心脏的舒张和(或)收缩性的失调而引起的[1]。通常由于多种原因会导致心肌的收缩功能下降,导致心脏的血流量降低,无法达到人体所需,进而出现一系列的临床表现[2]。心衰是一种严重危害人类健康的疾病,因此,基于患者的病情,及早评估患者的预后,可以有效地采取针对性的干预,提高患者的治疗效果。作为一门多学科交叉的专业,数据挖掘是一门多学科交叉的专业,它主要是在研究计算机如何对或实现人们的学习行为进行仿真,从而获得新的知识或技术[3]。在医学领域,将机器学习算法应用于疾病诊断的研究十分广泛[4]。裴天天[5]基于集成学习算法开发了心血管健康管理系统,将逻辑回归算法、K最近邻算法作为弱分类器,根据模型投票构造投票分类器模型,预测心脏病准确率达到85.5%。Abebe TB等[6]通过收集患者射血分数、血清肌酐、年龄等13个特征,利用Cox回归模型研究心衰患者的生存分析,得到模型AUC下面及为0.81。Zhang H等[7]基于集成学习的Bagging算法开发了远程医疗系统,用神经网络、支持向量机和朴素贝叶斯构建集成框架,其模型预测慢性心脏病可达94%。在借鉴上述研究的基础上,本研究提出一种基于机器学习算法在在预测心力衰竭死亡上的研究,旨在借助机器学习强大的学习能力以及良好的学习性能,将其应用于心力衰竭患者是否死亡问题研究中。
1资料与方法
1.1数据来源 本研究所使用的心力衰竭数据集在Kaggle平台发布,是2015年巴基斯坦费萨拉巴德心脏病研究所和费萨拉巴德联合医院所收集的数据[8]。据集包含299例心力衰竭患者的医疗记录,其中女105例,男194例,所有患者年龄均在40岁以上且均存在左心室收缩功能不全,且有既往心力衰竭史。其中以“DEATH_EVENT 死亡事件”作为目标特征。具体特征见表1。
1.2数据预处理 缺失值处理:检查并删除全为空的行,检查每一行缺失值情况。由于数据样本较少,对于缺失值采用均数填补的方法处理缺失值。使用热力图查看特征与特征之间的相关性,热力图中颜色越深或越浅代表特征之间相关性越高,心力衰竭数据集特征热力图见图1,可看得到特征之间相关性并不高。
排列特征重要性:使用Permutation Importance对特征重要性进行排列,排列结果见图2。其中排在前3位特征分别代表血清肌酐水平、射血分数、年龄、血清钠水平。因此在临床治疗中,医生与患者应着重关注这些指标,将它们控制在正常范围内以降低死亡的概率;而患病风险一般是随年龄增长而增加,因此年长者也应格外关注自己的这些指标。对于医生在后续的临床诊断中也可以参考这些指标的数值作为诊疗判断依据。
数据标准化处理:本研究所用到的数据集中,通过描述命令可得到数据最小取值为0,最大取值为850 000,是否贫血、是否患有糖尿病、是否患有高血压、性别、是否吸烟与是否死亡为二分类变量,其他特征属性均为计量资料。计量资料如血液中肌酐磷酸激酶的水平、血液中的血小板数量等取值极差较大,如不加以处理则会对最终预测结果造成干扰,因此使用数据标准化处理将数据特征取值转换为同一规格。
数据不平衡处理:目标特征“DEATH_EVENT死亡事件”存在类别失衡的问题,死亡事件情况分布见图3,未发生死亡事件患者为203例,发生死亡事件患者为96例,数据存在一定不平衡问题。在未发生死亡事件样本占大多数的情况下,分类器将所有样本预测为未发生死亡,也可以得到很高的准确率,但这样得到的准确率高的预测并没有实际意义。因此采用人工数据合成法(Synthetic Minority Over-sampling Technique, SMOTE)来平衡原始数据。
2数据分析
2.1算法介绍 决策树(Decision Tree):决策树作为机器学习算法模型之一,是一种分类与回归的方法。它是由树模型构成,其基本的思想就是“分而治之”[9]。即每个非叶结点上都会有一个特征变量“把关”,按照一定的规则划分不同的子集,一直到不能够划分为止。以下图为例,分类以A是否大于80为开始,要是大于80,则被分去左边,为B;若A小于80,则被分去右边,又进行划分A是否大于50,若大于,则被划分为B,若小于50,则被划分为C。决策树的建立流程一般包括特征选择、决策树的生成和决策树的剪枝。其中特征选取主要有信息增益和基尼系数两种方法[10]。
C4.5算法:由Quinlan自己扩充ID3算法提出的,是ID3算法的改进,它在ID3的基础上增加了对连续属性、属性空缺情况的处理,对树剪枝也有了较成熟的方法[11]。该算法的有点有:使用信息增益率作为属性选择的标准;可以处理连续性数值,增加了可处理数据的范围;能够处理不完整的数据,增加数据的自适应性;在建树过程中以及建树完成后进行剪枝操作,从而避免决策树的不平衡[12]。
随机森林(Random Forests)算法:由Breimen于2001年提出的,它在Bagging的基础上加上特征随机选取这个特点[13]。与集成算法的思想相同,由若干个基分类器组成,其中基分类器为决策树。传统的决策树是在当前结点的特征集合中根据一定的特征选择方法选取最优的特征进行分支;而随机森林则是对于单科决策树的每个结点首先从全部特征(共b个)中随机选取a个特征(a
集成学习(Ensemble Learning):集成学习是一个通过多个基分类器组合在一起,通过各种组合策略形成的一个强学习器的过程[15]。正所谓海纳百川,相比于传统的机器学习模型,其在训练数据集上的准确度一般都高于单个学习器。其基分类器即可以是决策树模型,也可以是朴素贝叶斯模型等等。
Boosting:一种将弱学习器的错误样本通过不断的训练成为强学习器的一种集成方法[16]。对于Boosting算法要解决两个问题:第一是对于每轮分布,要如何选择进行学习训练;第二是如何利用错误的规则进行学习。
自适应增强算法(AdaBoost):作为Boosting的代表算法,Freund在Boosting理论的研究基础上,发现了一种不需要提前预知任何关于弱学习算法性能的知识的新算法[17]。并且举例了一位赌徒因为持续的赛马损失,后来决定让朋友代表他下注。他会根据朋友的表现,要是心理上觉得哪位朋友这次会赢得多,他就会把赌注投入多一点在那位朋友身上。最后他也因为这样的分配赢回了他的奖金。因此Freund觉得这样的动态分配问题也适用于Boosting算法中。这也是著名的AdaBoost算法最早的提出[18]。
AdaBoost算法迭代主要有3个步骤:第一步,初始化样本的权重。假设样本集一开始有N个样本,那么每一个样本一开始将会被赋予相同的权重1/N。第二步,训练单个弱学习器。要是样本训练正确,那么它的权重将降低。要是样本训练错误,这将会对其提高权值。更新之后的权值会用于下一个弱分类器当中。第三步,训练每个弱分类器形成一个强分类器。加大学习误差率et小的弱分类器的权重,使得et大的弱分类器权重下降。最后得出一个et较小的强分类器。AdaBoost不需要运用特征进行筛选,只需要若干个分类器加权组合即可,不需要提前知道弱分类器的错误率,也能得到较好的精确度。
2.2模型构建 AdaBoost:因为心力衰竭数据集的因变量是否发生死亡为二分类变量,故本次运用决策树作为机器学习构造AdaBoost模型,选择AdaBoost分类器,通过调整参数机器学习的最大迭代次数以及每个弱机器学习的权重缩减系数以构造模型。若最大迭代次数过小,模型容易欠拟合,若最大迭代次数过大,模型则容易过拟合。较小的弱学习器权重缩减系数意味着需要更多的机器学习迭代次数。C4.5:构建C4.5算法模型前,先通过导入math库,计算信息熵、条件条件熵、信息增益以及信息增益率,比较各个特征信息增益率的大小得到最优特征以划分数据集,从而创建出C4.5决策树,以字典的模式呈现。再使用Sklearn库中的分类决策树模型进行拟合,调整参数,得出最大深度、内部节点再次划分时需要的最小样本数、叶子节点最少样本数的最优参数,从而得到预测结果。随机森林:因为心力衰竭数据集的因变量是否发生死亡为二分类变量,故运用基于决策树的随机森林分类器进行构建模型。首先将训练集放入没有调整参数的模型,再利用交叉验证(Cross-validation)和网格搜索(GridSearchCV)对随机森林模型进行参数的调整。随后寻找随机森林算法其他参数的最优值,放入模型中。
3结果
3.1模型评估标准 该医学问题事实上是分类问题,对于分类模型,混淆矩阵、ROC曲线下的面积是最常用的评价分类模型的指标,混淆矩阵通过建立真实类别和预测类别之间的关系来评估分类模型的准确性。混淆矩阵中包含4个基本元素:真正例(True Positives)、假正例(False Positives)、假负例(False Negatives)和真负例(True Negatives)。通过统计这4个元素的数量,可以计算出分类模型的准确率、精确率和召回率等指标。
ROC曲线下面积(area under the ROC curve, AUC)是评价分类模型的重要指标。曲线越靠近左上方,曲线下的面积就越大,表明该算法的预测效果越好。其取值范围为0到1,AUC值越接近1,则表示分类模型预测准确性越高。基于本文分类模型的主要目的是正确预测出心力衰竭患者是否发生死亡。因此通过对比混淆矩阵、ROC曲线下的面积评估3个模型的性能。
3.2模型测试结果 本实验使用python3.9.0进行数据预处理及数据建模。使用循环遍历的方法确定AdaBoost的最大深度是2,随机森林的决策树个数为102。基于训练集训练后3个集成模型在测试集的性能表现见表2,ROC曲线见图4。可以看出,采用随机森林算法优于AdaBoost算法与决策树C4.5算法,使得模型的分类准确率和ROC曲线下面积均得到了提升,泛化性较为优越。
4讨论
本文使用Kaggle中的心力衰竭患者数据集展开研究,提出一种基于AdaBoost、决策树、随机森林的模型用于预测心力衰竭患者是否发生死亡。实验结果表明,相对于AdaBoost模型与决策树模型,随机森林模型对数据集的泛化能力更强,预测准确率更高。此外,对模型的特征进行了重要性评估,找出了对模型贡献程度较高的一些指标,对医生的临床诊断具有一定的参考价值。
心血管疾病不仅已经成为中国疾病死亡的主要原因,而且也成为全世界死亡的主要原因[19]。机器学习是人工智能的重要研究方向之一,它致力于通过利用计算手段,通过不断训练样本来改变自身的性能,提高预测的准确率[20]。利用机器学习的算法作为计算机辅助诊断的工具,通过构建模型判断影响心力衰竭的重要特征和预测心衰患者的死亡率,对于医生诊断及对后续治疗心力衰竭患者来说具有重要作用。
参考文献:
[1]国家心血管病医疗质量控制中心专家委员会心力衰竭专家工作组.2020中国心力衰竭医疗质量控制报告[J].中国循环杂志,2021,36(3):221-238.
[2]《中国心血管健康与疾病报告》编写组.《中国心血管健康与疾病报告2020》要点解读[J].中国心血管杂志,2021,26(3):209-218.
[3]王丽丽.大数据背景下数据挖掘技术的应用[J].计算机与网络,2021,47(20):45-47.
[4]蔡莉莉,侯珂珂.基于K近邻-随机森林集成算法的肝病预测研究[J].电脑知识与技术,2020,16(13):204-205,207.
[5]裴天天.基于集成学习算法的心脑血管健康管理系统的设计与实现[D].北京:北京邮电大学,2021.
[6]Abebe TB,Gebreyohannes EA,Bhagavathula AS,et al.Anemia in severe heart failure patients:does it predict prognosis?[J].BMC Cardiovasc Disord,2017,17(1):248.
[7]Zhang H,Wang R,Zhou H,et al.A Study on the Association between Korotkoff Sound Signaling and Chronic Heart Failure (CHF) Based on Computer-Assisted Diagnoses[J].J Healthc Eng,2022,2022:3226655.
[8]沈梦碧,程祉元,肖易飞,等.Python数据分析在公共卫生领域的应用及前景[J].卫生职业教育,2022,40(14):143-145.
[9]汪靖翔.决策树算法的原理研究和实际应用[J].电脑编程技巧与维护,2022,446(8):54-56,72.
[10]刘芯溧.基于大数据分析的智能客服系统研究[J].自动化与仪器仪表,2021,257(3):139-142.
[11]余建军,张琼之.基于粗糙集的决策树ID3算法[J].计算机系统应用,2020,29(4):156-162.
[12]马红丽,徐长英,杨新鸣.决策树模型在中医药领域的应用现状[J].世界中医药,2021,16(17):2648-2651,2656.
[13]秦璇.随机森林算法的改进及应用[D].兰州:兰州交通大学,2020.
[14]曹桃云.基于随机森林的变量重要性研究[J].统计与决策,2022,38(4):60-63.
[15]彭岩,马铃,张文静,等.基于集成学习的风险预测模型研究与应用[J].计算机工程与设计,2022,43(4):956-961.
[16]王禹,陈德运,唐远新.基于Cart决策树与boosting方法的股票预测[J].哈尔滨理工大学学报,2019,24(6):98-103.
[17]傅红普,邹北骥.AdaBoost分类器的一种快速训练方法[J].云南大学学报(自然科学版),2020,42(1):50-57.
[18]张梦娇,叶庆卫,陆志华.基于模糊弱分类器的AdaBoost算法[J].数据通信,2021,204(5):35-41.
[19]北京高血压防治协会,北京糖尿病防治协会,北京慢性病防治与健康教育研究会,等.基层心血管病综合管理实践指南2020[J].中国医学前沿杂志(电子版),2020,12(8):1-73.
[20]高新成,邵国铭,张海洋,等.改进二进制麻雀搜索的特征选择及文本聚类[J].重庆理工大学学报:自然科学,2023,37(8):166-176.