基于组合机器学习模型的心血管疾病预测研究
Study on Prediction of Cardiovascular Disease Based on Combined Machine Learning Models
DOI: 10.12677/sea.2024.134062, PDF, HTML, XML,    科研立项经费支持
作者: 曾婉婷:福建师范大学数学与统计学院,福建 福州
关键词: 心血管疾病机器学习组合模型网格搜索Cardiovascular Disease Machine Learning Combined Model Grid Search
摘要: 近年来,机器学习技术与医学领域的结合已成为一种发展趋势。大多数学者更倾向于利用机器学习来预测癌症等疾病,但事实上,心血管疾病的死亡率高于癌症等疾病,因此建立用于心血管疾病预测的模型尤为重要。本研究深入探讨了机器学习的单一和组合模型在心血管疾病预测中的应用,组合模型的构建方式为首先基于六种机器学习算法构建基础模型,其次选择其中性能最优的模型,最后将该模型与其他五种模型结合,从而构建出串行或并行的组合模型。研究结果显示,基于逻辑回归和随机森林的串行组合模型的效能最佳,该模型较单一模型的AUC值提升约12%。
Abstract: In recent years, the combination of machine learning technology and the medical field has become a trend. Most scholars prefer to use machine learning to predict diseases such as cancer, but in fact, the mortality rate of cardiovascular disease is higher than that of cancer and other diseases, so it is especially important to build models for cardiovascular disease prediction. In this study, the application of single and combined models of machine learning in cardiovascular disease prediction is discussed in depth. The combined model is constructed by firstly constructing a base model based on six machine learning algorithms, secondly selecting the model with the best performance among them, and finally combining this model with the other five models, so as to construct a serial or parallel combined model. The results of the study show that the serial combined model based on Logistic regression and random forest has the best performance, and the AUC value of this model is improved by about 12% compared with the single model.
文章引用:曾婉婷. 基于组合机器学习模型的心血管疾病预测研究[J]. 软件工程与应用, 2024, 13(4): 606-615. https://doi.org/10.12677/sea.2024.134062

1. 引言

心血管疾病(Cardiovascular Disease, CVD)是世界上最致命的疾病,约占人口死亡率的40%,其死亡率高于我们认为死亡率较高的疾病,如癌症,其发病率和死亡率仍在不断上升,据估计,目前中国CVD患者人数已达3亿多人,是中国居民的首要健康危险因素[1]。我国对CVD的防治工作取得了一些成绩,但仍面临一系列挑战。CVD的临床诊断主要依赖于医生对病人临床症状、既往病史以及辅助检查的综合分析。然而,这一过程不仅繁琐且价格昂贵,而且医生的经验水平也会对诊疗效率产生一定的影响[2]。同时,我国目前初级人工诊断的误诊率较高,准确评估个体风险对CVD的预防具有指导作用。尽管机器学习以其卓越的分析处理能力在疾病诊断领域得到了广泛应用,但对于CVD,简单地将其应用于某个机器学习模型可能无法获得预期效果,因为不同模型在不同的数据集上一般会产生不同的结果,应针对不同的疾病选择匹配的分类算法,以提高预测的准确性。鉴于CVD医疗数据的复杂性和多样性,本研究考虑当前CVD的主要影响因素,将机器学习的单一模型和组合模型分别应用到CVD预测领域上,并对不同模型的预测结果进行评估,得到最精准的模型,以期辅助医生进行诊断,降低该病临床误诊率。

2. 材料与方法

2.1. 数据来源

本文使用的数据集来自Kaggle数据分析在线平台,该数据集有7万条数据,包括年龄、性别、收缩压、血糖、是否吸烟等影响CVD主要因素的11个特征。为便于后续分析,对数据集中的变量解释如表1所示。

Table 1. Explanation of variables

1. 变量解释

原始数据字段名(单位)

变量解释

变量类型

cardio

是否患心血管疾病

分类

gender

性别

连续

age (day)

年龄

连续

height (cm)

身高

连续

weight (kg)

体重

连续

续表

ap_hi (mmhg)

收缩压

连续

ap_lo (mmhg)

舒张压

连续

cholesterol

胆固醇等级

分类

gluc

血糖等级

分类

smoke

是否吸烟

分类

alco

是否饮酒

分类

active

是否经常锻炼

分类

2.2. 数据预处理

首先,对该数据集进行缺失值检查,检查结果显示,该数据集不含缺失值,因此无需进行缺失值处理。其次,对身高、体重、收缩压和舒张压等连续型变量进行分析,其平均值、最大值和中位数等数值特征见表2

Table 2. Distribution of variables

2. 变量分布情况

age

height

weight

ap-hi

ap-lo

Min

10798.00

55.00

10.00

−150.00

−70.00

1st Quartile

17664.00

159.00

65.00

120.00

80.00

Median

19703.00

165.00

72.00

120.00

80.00

Mean

19468.87

164.36

74.21

128.82

96.63

3rd Quartile

21327.00

170.00

82.00

140.00

90.00

Max

23713.00

250.00

200.00

16020.00

11000.00

Std

2467.75

8.21

14.40

154.00

188.47

表2可以看出,该数据集中存在异常值,例如体重最小值为10 kg,收缩压最小值为−150 mmhg,最大值为16,020 mmhg,舒张压最小值为−70 mmhg,最大值为11,000 mmhg,这些数据都不在血压计刻度的正常范围内[3]。这些异常数据的出现很可能是由于记录数据时出现错误,可以直接删除,处理后的数据分布如3所示。

表3可以看出,各个变量的数值大小已经在正常范围内,将1578条异常样本数据剔除后,数据集还有68,422条数据,剔除样本占原始样本总数的2.25%,为便于后续研究分析,年龄单位由天改为年。

Table 3. Distribution of variables (after the processing of abnormal values)

3. 变量分布情况(异常值处理后)

age

height

weight

ap-hi

ap-lo

Min

10798.00

130.00

30.00

70.00

50.00

1st Quartile

17656.00

159.00

65.00

120.00

80.00

Median

19701.00

165.00

72.00

120.00

80.00

Mean

19464.00

164.40

74.08

126.50

81.25

3rd Quartile

21324.00

170.00

82.00

140.00

90.00

Max

23713.00

198.00

183.00

197.00

130.00

Std

2468.51

7.84

14.25

16.29

9.28

数据集包括影响心血管疾病的11个自变量,因变量为患心血管疾病的情况,为二分类变量。对患病情况进行分析,分布情况如图1所示。从图1中可以看出,有病和无病的受试者个数基本相同,说明数据集为平衡数据,因此无需考虑不平衡处理。

Figure 1. Distribution of disease

1. 患病分布情况

Figure 2. Variable correlation heat map

2. 变量相关性热力图

为确保后续分析的准确性,对数据集中各变量之间的多重共线性问题进行检验,变量之间的相关性热力图如图2所示。从图2中可以看出,大多数变量之间的相关性很小,但收缩压和舒张压之间的相关系数为0.75,两者之间存在明显的线性关系。无论是舒张压还是收缩压高于正常值,都可以被认为是高血压,而在医学诊断中,一般更关注收缩压,收缩压的升高比舒张压的升高对身体的影响更大。因此,本研究将舒张压这一变量排除在外。对于身高和体重,引入体重指数(Body Mass Index, BMI),这是一个综合衡量指标,通常用于衡量超重和肥胖程度,计算公式如下:

BMI= weight height 2 . (1)

上式单位为kg/m2,最后对连续变量进行归一化处理,对离散变量进行因子化处理。随后根据上述处理的数据进行分析研究。

2.3. 方法

本研究主要研究机器学习算法在心血管疾病预测中的应用,为有效结合不同单一机器学习模型在稳定性和准确性方面的优势,本研究将从组合机器学习模型的角度展开研究。根据以往的经验,选择六种主流的机器学习算法,包括逻辑回归(Logistic Regression, LR)、K最近邻(K Nearest Neighbors, KNN)、支持向量机(Support Vector Machines, SVM)、朴素贝叶斯(Naive Bayes Classifier, NBC)、决策树(Decision Tree, DT)以及随机森林(Random Forest, RF)。将经过上述预处理后的数据集按照3:7的比例分为训练集和测试集,利用上述机器学习方法建立经过网格搜索方法调参后的模型,并根据评价指标综合分析选择合适的单一模型,然后与其他模型串联或并联,最终得到效果最好的心血管疾病的预测模型。

2.3.1. 单一机器学习

1) LR

LR模型是统计学家David Cox于1958提出的广义线性回归模型,常用于解决二分类和多分类问题。基于广义线性回归模型的思想,建立一个线性模型,将输入特征与sigmoid函数的输出相结合,进而预测模型输出的概率[4]。心血管疾病预测是一个二分类问题,根据疾病是否存在,疾病状态被分为两类。通常0表示没有患病,1表示患病。sigmoid函数的输出值介于(0, 1)之间,表示样本属于某一类别的概率,如果输出概率小于0.5,则表示当前样本未患病,反之则表示当前样本患病。

2) KNN

KNN是Cover和Hart于1968年提出的较为经典的机器学习算法之一。其核心思想是如果假定一个样本在特征空间中有K个最近的邻居,同时这K个邻居中的大多数属于某一类,那么该样本也会被归入这一类,并具有这一类样本的特征[5]。要对一个新的样本进行分类,需要计算它与训练集中所有样本的距离,再根据K个最近邻居样本的类别,通过投票或加权投票来确定要分类样本的类别。因其算法简单直观、性能良好,常被应用于分类问题中。

3) SVM

SVM算法的基本模型是线性分类模型,其学习方法是区间最大化,可转化为解凸式二次编程问题[6]。支持向量机的模型从简单到复杂依次为:线性可分离SVM、线性SVM以及非线性SVM。在心血管疾病预测中,本研究根据训练数据集是否线性可分离来选择合适的模型:当数据集线性可分离时,选择线性可分离的SVM,并通过硬区间最大化来学习模型;当训练数据近似可线性分离时,即去除几个特殊样本点后训练数据可线性分离时,将通过软区间最大化来学习线性分类器;当训练数据线性不可分离时,将通过引入核函数和软区间最大化学习非线性SVM。

4) NBC

NBC是一种基于贝叶斯定理的概率分类算法,是一种简单而有效的分类方法,广泛应用于自然语言处理等领域[7]。核心思想是通过计算后验概率进行分类,给定一个待分类的样本,算法会根据训练数据中的特征和类别信息计算样本属于不同类别的概率,并选择概率最高的类别作为分类结果。

5) DT

DT是一种常见的机器学习算法,常用于解决分类和回归问题[8]。它基于树状结构模型,对数据进行特征选择和数据切分,最终完成分类或回归预测。算法关键在于特征选择和特征最佳分割点,根据不同的分裂标准分为三种类型:ID3、C4.5以及CART。在心血管疾病预测中,使用的是决策树分类方法。

6) RF

RF是Bagging中的一种典型算法,常用于解决分类和回归问题[9]。它基于决策树的集成方法,通过组合多个决策树进行预测,从而提高预测的准确性和稳定性。对于分类问题,每棵决策树都会对输入样本进行预测,采用投票机制来确定最终预测结果,即预测结果是得票最多的类别。RF可以处理大量的特征和样本,具有良好的泛化能力,对缺失数据和噪声具有鲁棒性,此外,它还能估计特征的重要性,以便进行特征选择和可视化分析。

2.3.2. 组合机器学习

1) 串行模型

构建串行组合模型(Serial Model)的思路是,首先用训练数据集构建一个基础的分类模型,再利用该模型对所有样本点进行分类预测,并将这些分类结果作为下一个模型的输入变量,构建一个全新的模型。与第一个分类模型相比,第二个分类模型增加了一个分类变量,其值由第一个模型的预测结果决定。串行组合模型能够整合多种机器学习算法的优势,但同时也会带来一些问题。例如,在顺序训练模型的过程中,如果前一个基础模型出现错误,那么这个错误就会被传递到后续的模型中,最终影响整个组合模型的预测结果。因此,每一个模型的选择都至关重要,它直接影响了最终模型的预测准确性和应用稳定性。串行组合模型的建模流程图如图3所示。

Figure 3. Flowchart of building a serial model

3. 构建串行模型流程图

2) 并行模型

与串行组合模型不同,并行组合模型(Parallel Model)中每个单一模型的训练过程中保持相对独立,输出结果间互不影响。该模型的预测结果实质上是每个单一模型预测概率值的加权平均值,这意味着每个模型可以同时进行学习,随后将各自的预测结果传送到一个集成器中进行融合,最终形成一个并行的预测模型。并行组合模型的建模流程图如图4所示。

2.3.3. 网格搜索调参

网格搜索是一种广泛用于机器学习模型的超参数调优技术,旨在寻找模型最优的超参数配置。超参数是在模型训练前需要设定的参数,例如学习率、正则化参数以及决策树的深度等。通过这种方法,系统会穷举所有预定义的参数组合,以确定最佳的超参数设置。具体而言,网格搜索首先定义每个超参数的一系列候选值,并构建一个参数网格,然后,它遍历每个可能的参数组合,运用交叉验证或其他评估方法对模型进行训练和测试,以优化模型性能。

Figure 4. Flowchart of building a parallel model

4. 构建并行模型流程图

2.3.4. 评价指标

使用准确率(Accuracy)、精确率(Precision)、召回率(Recall)以及受试者工作特征曲线下面积(Area Under the Curve, AUC)等指标对上述模型进行评估。

3. 结果

3.1. 单一模型

使用上述六种基础模型对心血管疾病数据集进行预测,各模型ROC曲线和AUC值如图5所示,具体结果如表4所示。

Figure 5. ROC curve

5. ROC曲线图

Table 4. Performance results of each model

4. 各模型性能结果

评价指标

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的召回率最高。

3.2. 组合模型

3.2.1. 串行模型

因在六种基础模型中,模型LR的AUC值最高,因此串行组合模型中使用的基础模型为决策树、随机森林、支持向量机以及朴素贝叶斯,分别利用上述基础对所有样本进行预测,将预测结果作为输入变量加入到模型LR中。各串行组合模型的效果如表5所示,在四个串行组合模型中,RF + LR模型的性能最好,在所有五个评价指标中都取值最高。具体来说,该模型的AUC值比其他组合模型高出近4%,准确率、精确率、召回率以及F1得分均比其他组合模型高出约10%。

Table 5. Performance results of various serial models

5. 各串行模型性能结果

评价指标

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

3.2.2. 并行模型

本研究构建的并行组合模型的预测概率是通过对模型决策树、随机森林、支持向量机以及普通贝叶斯与逻辑回归的输出概率进行不同权重的加权得到,测试样本的所属类别根据模型的输出概率判断得到,具体而言,如果输出概率小于0.5,则表示当前样本未患病,反之则表示当前样本患病。各并行组合模型的最佳权重组合如表6所示。

Table 6. Performance results of parallel model for each optimal weight combination

6. 各最佳权重组合的并行模型性能结果

评价指标

0.2*DT + 0.8*LR

0.4*RF + 0.6*LR

0.2*SVM + 0.8*LR

0.3*NBC + 0.7*LR

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%,说明该模型与其他模型相比能更好地识别患者。

3.3. 结果比较

由上述的结果可知,串行模型中的RF + LR和并行模型中的SVM + LR是上述两种组合模型中最有效的,将它们与应用于它们的基础模型进行比较,模型效果如表7所示。

Table 7. Performance comparison of basic model and combined model

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回归模型构建的串行模型的预测精度要优于其他的组合模型。因此,当单一模型的分类效果达到上限时,可以通过组合模型来提高模型的泛化能力。

4. 讨论

本研究利用Kaggle数据分析在线平台上的心血管疾病的临床诊疗数据,首先构建了六种机器学习分类模型,对比分析了各个模型在心血管疾病预测问题上的性能表现。再进一步尝试建立基于Logistic回归模型与其他五种模型的串行和并行的两种组合机器学习模型,以提升对心血管疾病的患病情况的预测准确性。

本研究主要基于机器学习算法和数据分析技术展开,首先对六种传统的单一模型在心血管疾病预测上的效果进行了考察。结果显示,Logistic回归模型的预测效能最好,随机森林和支持向量机也呈现出了较好的效能。具体地,Logistic回归模型的AUC值最高,比决策树模型高出近8个百分点,同时,在准确率方面,Logistic回归也展现出较高的水平,而在精确率这一关键指标上,Logistic回归更是以约10个百分点的优势,明显超越了其他五个分类模型。之后将逻辑回归模型与其余五种模型分别通过串行组合和并行组合的方式构建出新的模型,以此来提升模型预测的准确性和应用的稳定性,结合各项评价指标的结果显示,无论是串行组合模型还是并行组合模型对心血管疾病的患病情况的预测效果都要优于单一模型。在所有的模型中,基于随机森林和逻辑回归的串行组合模型的综合性能最优,具体地,该模型的AUC值比Logistic回归模型高出约4个百分点,相较于随机森林、K最近邻以及支持向量机模型,其优势更为明显,高出约10个百分点,而与决策树和朴素贝叶斯模型相比,其领先幅度更是达到了约12个百分点。此外,与并行组合模型相比,该串行组合模型在AUC值上高出约4个百分点,预测准确率提升了约11个百分点,而预测精确率则提高了约20个百分点。这些数据充分展现了该串行组合模型在心血管疾病预测上的卓越性能。性能的显著提升首先是因为这两种模型在处理数据时具有互补性,能够从不同角度捕捉数据的特征,Logistic回归是一种线性模型,擅长处理线性可分离的数据,而随机森林能够很好地处理非线性关系,两者结合可以更好地拟合数据的真实分布。其次,Logistic回归的正则化能力和随机森林的集成学习效应都降低了过拟合的风险,增强了模型的泛化能力。最后,随机森林的加入提高了模型的复杂性,从而提升了处理复杂数据模式的能力,增加了模型的准确性。

在利用机器学习算法对心血管疾病进行预测的研究领域上,传统单一模型的研究已经取得了一定的成果,如有学者使用该数据集基于Logistic回归的方法进行预测,获得了0.7258的准确率[10],有学者基于支持向量机的方法对该数据集进行预测,获得了0.726的准确率[11],还有学者基于CatBoost的方法对该数据集进行预测,取得了0.8011的AUC [12]。然而,组合模型的构成更为灵活,它能够将各个基础模型的优势有效地融合在一起。由于在模型的选择和组合方式上存在多种可能性,因此这种方法在心血管疾病预测问题上是有必要且值得研究的,正如本研究所得到的结果,组合模型能够更精确地预测患者的患病情况。此外,该模型还能够识别出对心血管疾病具有显著影响的因素,从而为心血管疾病的治疗提供有力的依据。医生也可以结合机器学习算法的预测结果和自身的临床经验,做出更为准确的判断,从而提高诊断的可信度并降低误诊率。

基金项目

福建理工大学科研启动基金(GY-S24002)。

参考文献

[1] 《中国心血管健康与疾病报告2022》编写组. 《中国心血管健康与疾病报告2022》概述[J]. 中国心血管病研究, 2023, 21(7): 577-600.
[2] 《中国心血管健康与疾病报告》编写组. 《中国心血管健康与疾病报告2020》要点解读[J]. 中国心血管杂志, 2021, 26(3): 209-218.
[3] 阙菊华, 林俊. 电子血压计临床应用准确度探讨[J]. 中国设备工程, 2021(18): 82-83.
[4] 杨艳平, 李荣. 基于决策树-逻辑回归模型的心脏病影响因素[J]. 工业控制计算机, 2024, 37(8): 114-116.
[5] Wang, Z., Xu, H., Zhou, P. and Xiao, G. (2023) An Improved Multilabel K-Nearest Neighbor Algorithm Based on Value and Weight. Computation, 11, Article 32.
https://doi.org/10.3390/computation11020032
[6] Mustafa Abdullah, D. and Mohsin Abdulazeez, A. (2021) Machine Learning Applications Based on SVM Classification a Review. Qubahan Academic Journal, 1, 81-90.
https://doi.org/10.48161/qaj.v1n2a50
[7] Galopo Perez, J. and S. Perez, E. (2021) Predicting Student Program Completion Using Naïve Bayes Classification Algorithm. International Journal of Modern Education and Computer Science, 13, 57-67.
https://doi.org/10.5815/ijmecs.2021.03.05
[8] Charbuty, B. and Abdulazeez, A. (2021) Classification Based on Decision Tree Algorithm for Machine Learning. Journal of Applied Science and Technology Trends, 2, 20-28.
https://doi.org/10.38094/jastt20165
[9] Magidi, J., Nhamo, L., Mpandeli, S. and Mabhaudhi, T. (2021) Application of the Random Forest Classifier to Map Irrigated Areas Using Google Earth Engine. Remote Sensing, 13, Article 876.
https://doi.org/10.3390/rs13050876
[10] 曹桂林. 心血管疾病数据集下基于机器学习的心血管疾病患者识别[J]. 河北软件职业技术学院学报, 2024, 26(1): 6-11.
[11] 王润玮. 基于机器学习组合模型的心血管疾病预测[D]: [硕士学位论文]. 苏州: 苏州大学, 2024.
[12] 邱昭斌. 基于改进金豺优化算法和CatBoost模型的心血管疾病风险预测研究[D]: [硕士学位论文]. 银川: 北方民族大学, 2024.