基于组合机器学习模型的心血管疾病预测研究
基于组合机器学习模型的心血管疾病预测研究
心血管疾病是全球范围内最主要的致死疾病之一,其死亡率远高于癌症等其他疾病。在中国,心血管疾病患者已超过3亿人,成为居民健康的主要威胁。传统的临床诊断方法不仅繁琐且价格昂贵,而且医生的经验水平也会对诊疗效率产生一定的影响。因此,如何利用现代科技手段提高心血管疾病的预测和诊断准确性,成为了一个重要的研究课题。
研究背景与意义
心血管疾病(Cardiovascular Disease, CVD)是世界上最致命的疾病,约占人口死亡率的40%,其死亡率高于我们认为死亡率较高的疾病,如癌症,其发病率和死亡率仍在不断上升,据估计,目前中国CVD患者人数已达3亿多人,是中国居民的首要健康危险因素。我国对CVD的防治工作取得了一些成绩,但仍面临一系列挑战。CVD的临床诊断主要依赖于医生对病人临床症状、既往病史以及辅助检查的综合分析。然而,这一过程不仅繁琐且价格昂贵,而且医生的经验水平也会对诊疗效率产生一定的影响。同时,我国目前初级人工诊断的误诊率较高,准确评估个体风险对CVD的预防具有指导作用。尽管机器学习以其卓越的分析处理能力在疾病诊断领域得到了广泛应用,但对于CVD,简单地将其应用于某个机器学习模型可能无法获得预期效果,因为不同模型在不同的数据集上一般会产生不同的结果,应针对不同的疾病选择匹配的分类算法,以提高预测的准确性。鉴于CVD医疗数据的复杂性和多样性,本研究考虑当前CVD的主要影响因素,将机器学习的单一模型和组合模型分别应用到CVD预测领域上,并对不同模型的预测结果进行评估,得到最精准的模型,以期辅助医生进行诊断,降低该病临床误诊率。
数据与方法
数据来源与预处理
本研究使用的数据集来自Kaggle数据分析在线平台,该数据集包含7万条数据,涵盖了年龄、性别、收缩压、血糖、是否吸烟等11个影响心血管疾病的主要因素。数据预处理主要包括缺失值检查、异常值处理和特征工程。通过分析发现,数据集中存在一些异常值,如不合理的血压值等,这些异常数据被直接删除。处理后的数据分布如表3所示,所有变量的数值都在正常范围内。
变量 | 最小值 | 第1四分位数 | 中位数 | 平均值 | 第3四分位数 | 最大值 | 标准差 |
---|---|---|---|---|---|---|---|
age | 10798 | 17656 | 19701 | 19464 | 21324 | 23713 | 2468.51 |
height | 130 | 159 | 165 | 164.4 | 170 | 198 | 7.84 |
weight | 30 | 65 | 72 | 74.08 | 82 | 183 | 14.25 |
ap-hi | 70 | 120 | 120 | 126.5 | 140 | 197 | 16.29 |
ap-lo | 50 | 80 | 80 | 81.25 | 90 | 130 | 9.28 |
数据集包括影响心血管疾病的11个自变量,因变量为患心血管疾病的情况,为二分类变量。对患病情况进行分析,分布情况如图1所示。从图1中可以看出,有病和无病的受试者个数基本相同,说明数据集为平衡数据,因此无需考虑不平衡处理。
图1. 患病分布情况
为确保后续分析的准确性,对数据集中各变量之间的多重共线性问题进行检验,变量之间的相关性热力图如图2所示。从图2中可以看出,大多数变量之间的相关性很小,但收缩压和舒张压之间的相关系数为0.75,两者之间存在明显的线性关系。无论是舒张压还是收缩压高于正常值,都可以被认为是高血压,而在医学诊断中,一般更关注收缩压,收缩压的升高比舒张压的升高对身体的影响更大。因此,本研究将舒张压这一变量排除在外。对于身高和体重,引入体重指数(Body Mass Index, BMI),这是一个综合衡量指标,通常用于衡量超重和肥胖程度,计算公式如下:
BMI = 体重(kg) / 身高(m)^2
上式单位为kg/m2,最后对连续变量进行归一化处理,对离散变量进行因子化处理。随后根据上述处理的数据进行分析研究。
方法
本研究主要研究机器学习算法在心血管疾病预测中的应用,为有效结合不同单一机器学习模型在稳定性和准确性方面的优势,本研究将从组合机器学习模型的角度展开研究。根据以往的经验,选择六种主流的机器学习算法,包括逻辑回归(Logistic Regression, LR)、K最近邻(K Nearest Neighbors, KNN)、支持向量机(Support Vector Machines, SVM)、朴素贝叶斯(Naive Bayes Classifier, NBC)、决策树(Decision Tree, DT)以及随机森林(Random Forest, RF)。将经过上述预处理后的数据集按照3:7的比例分为训练集和测试集,利用上述机器学习方法建立经过网格搜索方法调参后的模型,并根据评价指标综合分析选择合适的单一模型,然后与其他模型串联或并联,最终得到效果最好的心血管疾病的预测模型。
实验结果与分析
单一模型预测效果
使用上述六种基础模型对心血管疾病数据集进行预测,各模型ROC曲线和AUC值如图5所示,具体结果如表4所示。
图5. ROC曲线图
评价指标 | LR | KNN | DT | RF | SVM | NBC |
---|---|---|---|---|---|---|
AUC | 0.7916 | 0.7295 | 0.7149 | 0.7359 | 0.7343 | 0.7163 |
Accuracy | 0.7291 | 0.7300 | 0.7161 | 0.7365 | 0.7351 | 0.7174 |
Precision | 0.7579 | 0.6846 | 0.6180 | 0.6822 | 0.6700 | 0.6287 |
Recall | 0.6632 | 0.7474 | 0.7622 | 0.7598 | 0.7644 | 0.7578 |
F1 Score | 0.7074 | 0.7147 | 0.6826 | 0.7189 | 0.7141 | 0.6872 |
从图5和表4中可以看出,六种模型对心血管疾病的预测效果都比较好,在AUC值的比较中,LR的AUC值最高,比DT模型高出近8%;在Accuracy的比较中,RF的Accuracy最高,LR和RF的Accuracy相差不大,两者之间的差距只有0.74%;在Precision的比较中,LR的Precision最高,比其余模型高10%左右;作为疾病预测模型,通常更关注模型的召回率,因为更关注有多少患者能被识别出来,比较几个模型的召回率发现,SVM的召回率最高。
组合模型预测效果
串行模型
因在六种基础模型中,模型LR的AUC值最高,因此串行组合模型中使用的基础模型为决策树、随机森林、支持向量机以及朴素贝叶斯,分别利用上述基础对所有样本进行预测,将预测结果作为输入变量加入到模型LR中。各串行组合模型的效果如表5所示,在四个串行组合模型中,RF + LR模型的性能最好,在所有五个评价指标中都取值最高。具体来说,该模型的AUC值比其他组合模型高出近4%,准确率、精确率、召回率以及F1得分均比其他组合模型高出约10%。
评价指标 | DT + LR | RF + LR | SVM + LR | NBC + LR |
---|---|---|---|---|
AUC | 0.7930 | 0.8313 | 0.7937 | 0.7914 |
Accuracy | 0.7296 | 0.8101 | 0.7371 | 0.7272 |
Precision | 0.7580 | 0.8485 | 0.7625 | 0.7627 |
Recall | 0.6648 | 0.7504 | 0.6792 | 0.6499 |
F1 Score | 0.7083 | 0.7982 | 0.7184 | 0.7081 |
并行模型
本研究构建的并行组合模型的预测概率是通过对模型决策树、随机森林、支持向量机以及普通贝叶斯与逻辑回归的输出概率进行不同权重的加权得到,测试样本的所属类别根据模型的输出概率判断得到,具体而言,如果输出概率小于0.5,则表示当前样本未患病,反之则表示当前样本患病。各并行组合模型的最佳权重组合如表6所示。
评价指标 | 0.2DT + 0.8LR | 0.4RF + 0.6LR | 0.2SVM + 0.8LR | 0.3NBC + 0.7LR |
---|---|---|---|---|
AUC | 0.7913 | 0.7913 | 0.7916 | 0.7913 |
Accuracy | 0.7285 | 0.7348 | 0.7012 | 0.7261 |
Precision | 0.7614 | 0.7578 | 0.6549 | 0.7622 |
Recall | 0.6558 | 0.6806 | 0.8347 | 0.6473 |
F1 Score | 0.7047 | 0.7171 | 0.7340 | 0.7000 |
由表6可以发现,四种并行组合模型在预测心血管疾病方面都有较好的效果,性能差别不大。但单从召回率来看,组合模型SVM + LR的召回率最高,比其他模型高出近20%,说明该模型与其他模型相比能更好地识别患者。
结果比较
由上述的结果可知,串行模型中的RF + LR和并行模型中的SVM + LR是上述两种组合模型中最有效的,将它们与应用于它们的基础模型进行比较,模型效果如表7所示。
评价指标 | LR | RF | SVM | Serial Model | Parallel Model |
---|---|---|---|---|---|
AUC | 0.7916 | 0.7359 | 0.7343 | 0.8313 | 0.7916 |
Accuracy | 0.7291 | 0.7365 | 0.7351 | 0.8101 | 0.7012 |
Precision | 0.7579 | 0.6822 | 0.6700 | 0.8485 | 0.6549 |
Recall | 0.6632 | 0.7598 | 0.7644 | 0.7504 | 0.8347 |
F1 Score | 0.7074 | 0.7189 | 0.7141 | 0.7982 | 0.7340 |
由上表可知,串行组合模型的性能最佳。具体而言,在基础模型中,LR在测试集上的表现优于RF和SVM,但三个模型之间的预测准确率差异并不显著。与三种基础模型相比,两种组合模型的预测性能都有明显的提高,其中串行组合模型的优势更为明显,其AUC值比基础模型高出约10%,比其他单一模型高出约12%。在组合模型中,串行组合模型的预测准确率比并行组合模型高出约11%,预测精确率高出约20%,AUC值高出约4%。
因此,在预测心血管疾病的问题上,使用串行组合模型得到的预测精度优于只使用单一模型和并行组合模型得到的预测精度,并且,使用随机森林和Logistic回归模型构建的串行模型的预测精度要优于其他的组合模型。因此,当单一模型的分类效果达到上限时,可以通过组合模型来提高模型的泛化能力。
讨论
本研究利用Kaggle数据分析在线平台上的心血管疾病的临床诊疗数据,首先构建了六种机器学习分类模型,对比分析了各个模型在心血管疾病预测问题上的性能表现。再进一步尝试建立基于Logistic回归模型与其他五种模型的串行和并行的两种组合机器学习模型,以提升对心血管疾病的患病情况的预测准确性。
本研究主要基于机器学习算法和数据分析技术展开,首先对六种传统的单一模型在心血管疾病预测上的效果进行了考察。结果显示,Logistic回归模型的预测效能最好,随机森林和支持向量机也呈现出了较好的效能。具体地,Logistic回归模型的AUC值最高,比决策树模型高出近8个百分点,同时,在准确率方面,Logistic回归也展现出较高的水平,而在精确率这一关键指标上,Logistic回归更是以约10个百分点的优势,明显超越了其他五个分类模型。之后将逻辑回归模型与其余五种模型分别通过串行组合和并行组合的方式构建出新的模型,以此来提升模型预测的准确性和应用的稳定性,结合各项评价指标的结果显示,无论是串行组合模型还是并行组合模型对心血管疾病的患病情况的预测效果都要优于单一模型。在所有的模型中,基于随机森林和逻辑回归的串行组合模型的综合性能最优,具体地,该模型的AUC值比Logistic回归模型高出约4个百分点,相较于随机森林、K最近邻以及支持向量机模型,其优势更为明显,高出约10个百分点,而与决策树和朴素贝叶斯模型相比,其领先幅度更是达到了约12个百分点。此外,与并行组合模型相比,该串行组合模型在AUC值上高出约4个百分点,预测准确率提升了约11个百分点,而预测精确率则提高了约20个百分点。这些数据充分展现了该串行组合模型在心血管疾病预测上的卓越性能。性能的显著提升首先是因为这两种模型在处理数据时具有互补性,能够从不同角度捕捉数据的特征,Logistic回归是一种线性模型,擅长处理线性可分离的数据,而随机森林能够很好地处理非线性关系,两者结合可以更好地拟合数据的真实分布。其次,Logistic回归的正则化能力和随机森林的集成学习效应都降低了过拟合的风险,增强了模型的泛化能力。最后,随机森林的加入提高了模型的复杂性,从而提升了处理复杂数据模式的能力,增加了模型的准确性。
在利用机器学习算法对心血管疾病进行预测的研究领域上,传统单一模型的研究已经取得了一定的成果,如有学者使用该数据集基于Logistic回归的方法进行预测,获得了0.7258的准确率,有学者基于支持向量机的方法对该数据集进行预测,获得了0.726的准确率,还有学者基于CatBoost的方法对该数据集进行预测,取得了0.8011的AUC。然而,组合模型的构成更为灵活,它能够将各个基础模型的优势有效地融合在一起。由于在模型的选择和组合方式上存在多种可能性,因此这种方法在心血管疾病预测问题上是有必要且值得研究的,正如本研究所得到的结果,组合模型能够更精确地预测患者的患病情况。此外,该模型还能够识别出对心血管疾病具有显著影响的因素,从而为心血管疾病的治疗提供有力的依据。医生也可以结合机器学习算法的预测结果和自身的临床经验,做出更为准确的判断,从而提高诊断的可信度并降低误诊率。
基金项目:福建理工大学科研启动基金(GY-S24002)。