Processing math: 100%

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于提升决策树算法的心脏病鉴别

唐家尧 余粟

唐家尧, 余粟. 基于提升决策树算法的心脏病鉴别[J]. 上海工程技术大学学报, 2024, 38(4): 465-470. doi: 10.12299/jsues.24-0219
引用本文: 唐家尧, 余粟. 基于提升决策树算法的心脏病鉴别[J]. 上海工程技术大学学报, 2024, 38(4): 465-470. doi: 10.12299/jsues.24-0219
TANG Jiayao, YU Su. Heart disease identification based on boosted decision tree[J]. Journal of Shanghai University of Engineering Science, 2024, 38(4): 465-470. doi: 10.12299/jsues.24-0219
Citation: TANG Jiayao, YU Su. Heart disease identification based on boosted decision tree[J]. Journal of Shanghai University of Engineering Science, 2024, 38(4): 465-470. doi: 10.12299/jsues.24-0219

基于提升决策树算法的心脏病鉴别

doi: 10.12299/jsues.24-0219
基金项目: 国家科技支撑计划项目资助(2015BAF10B00);上海市科委科研计划项目资助(17511110204)
详细信息
    作者简介:

    唐家尧(1995 − ),男,硕士生,研究方向为机器学习。E-mail:1444430622@qq.com

    通讯作者:

    余 粟(1962 − ),女,教授,硕士,研究方向为大数据。E-mail:yusu@sues.edu.cn

  • 中图分类号: O434

Heart disease identification based on boosted decision tree

  • 摘要: 基于高能物理数据分析的ROOT框架下的梯度提升决策树(BDTG)模型,提出一种多变量分析法用于心脏病鉴别。通过大量的临床数据,分析变量的各种复杂关系提高心脏病鉴别的准确性和可靠性。使用Kaggle开源心脏病数据集,结果表明,模型在BDTG响应值为−0.4~0.5时,没有出现错误鉴别情况。当BDTG响应值的截断为−0.6或0.6时,模型的准确率、查准率、查全率和F1分数达到98%以上。该模型在心脏病诊断方面具有较高的准确性和可靠性,不仅为心脏病预测提供新视角和方法,也为其他疾病的机器学习预测研究提供参考。
  • 心血管疾病是全球人口死亡的主要原因。世界卫生组织(WHO)网站报道,2019年有1 790万人死于心血管疾病,占全球死亡人数的32%。在我国,心血管疾病也对人们的健康造成极大威胁。据《中国心血管健康与疾病报告2022》报道,心血管疾病分别占我国农村和城市人口死因的48%和45.86%[1]。在心血管疾病中,心脏相关疾病占比近一半,对心脏病的预防和治疗显得尤为重要[23]。相较于患病后治疗,如果能对心脏病进行准确地预测鉴别,在根源上抑制心脏病的发生则更重要。

    近年来,随着大数据[4]和人工智能技术[5]的发展,机器学习(machine learning, ML)在心脏病学领域的研究日益成熟,涌现出大量研究成果。陈蒙蒙等[6]使用逻辑回归对心脏病进行预测;王成武等[7]对支持向量机进行改进,将心脏病鉴别准确率提高到84.04%;谭朋柳等[8]将CNN和Adaboost结合,心脏病预测模型准确率、查准率、查全率达到91.7%、92.4%和85%;赵金超等[9]使用K近邻进行数据集预处理,并使用随机森林对心脏病进行鉴别,准确率达到83.2%;刘柃伶等[10]提出基于XGBoost和SHAP的疾病鉴别方法。

    本研究将高能物理学中的ROOT框架应用于心脏病鉴别,基于提升决策树(boosting decision tree, BDT)模型[1112],提出梯度提升决策树(gradient boosting decision tree, BDTG)模型多变量方法,利用与事件拓扑相关的不同变量区分心脏病患者和正常人,并通过大量临床数据验证模型预测的准确性和可靠性。

    本试验使用的心脏病数据集来源Kaggle数据平台。数据集总计包含26000个样本,每个样本包含13个特征变量。这些特征变量用于描述个体的心脏健康状况,其中标记为13表示样本所属类别。特征变量详见表1

    表  1  数据集特征变量
    Table  1.  Dataset feature variable
    序号 特征 描述
    1 Age 年龄
    2 Sex 性别
    3 Cp 胸痛类型
    4 Trestbps 静息血压/(mm·Hg−1)
    5 Chol 胆固醇/(mg·dL−1)
    6 Fbs 空腹血糖
    7 Restecg 静息心电图
    8 Thalach 最大心率
    9 Exang 运动诱发性心绞痛
    10 Oldpeak ST抑制
    11 Ca 主要血管数量
    12 Thal 地中海贫血
    13 Target 心脏病
    下载: 导出CSV 
    | 显示表格

    数据样本涵盖多种心脏病相关指标,具有丰富的临床信息,使得对心脏病的预测成为可能。其中,性别:1为男性,0为女性;胸痛类型:1为典型胸痛,2为非典型胸痛;空腹血糖大于120 mm/Hg设置为1,反之为0;静息心电图:0为正常,1为ST-T波异常,2为左心室肥大;运动诱发性心绞痛和ST抑制:1为是,0为否;主要血管数为0~3;地中海贫血:1为固定缺损,2为正常,3为可逆性缺损;心脏病:1为是,0为否。

    心脏病患者标记为“signal”,正常人标记为“background”,两类数据在不同特征变量上的分布如图1所示。可以直观地发现心脏病患者与正常人间的差异,如Cp指标存在明显差异。数据分布图有助于直观了解特征变量在心脏病诊断中的作用,以及模型如何利用这些特征进行分类。

    图  1  心脏病患者与正常人的输入变量分布
    Figure  1.  Distribution of input variables between heart disease patients and normal individuals

    二元分类机器学习模型的预测结果分为正类 (1) 和负类 (0)两类。结合二元分类,模型的预测结果分为4种情况,见表2

    表  2  4种预测结果类别的具体描述
    Table  2.  Description of four prediction result categories
    类型 描述
    TP(真正例) 真实值为1,预测值为1
    TN(真负例) 真实值为0,预测值为0
    FP(假正例) 真实值为0,预测值为1
    FN(假负例) 真实值为1,预测值为0
    下载: 导出CSV 
    | 显示表格

    以上分类有助于了解模型在不同类型预测中的表现,并为计算评估指标如准确率、查准率、查全率和F1分数提供基础[13]

    准确率(accuracy)指模型正确预测样本的百分比,衡量模型在所有样本整体的预测性能,公式为

    =TP+TNTP+TN+FP+FN
    (1)

    查准率(precision)指模型预测为正类的样本中,实际为正类的样本百分比,衡量模型对正类预测的准确性,公式为

    =TPTP+FP
    (2)

    查全率(recall)指实际为正类的样本中,衡量模型正确预测为正类的样本百分比,公式为

    =TPTP+FN
    (3)

    F1分数(F1_score)指查准率和查全率的调和平均值,衡量综合评价模型的性能,公式为

    F1_score=2××+
    (4)

    在高能物理的数据分析中,ROOT [14]框架集成的TMVA[15]工具包提供了一系列多变量分类算法。TMVA支持分类器的训练、测试、性能评估和应用,并可以通过用户友好的接口进行操作。TMVA中所有多变量技术都属于“监督学习”算法,利用已知的输出训练样本确定决策边界(分类)的映射函数。TMVA强大的功能和灵活性使其适用于广泛的数据分析任务,特别是在需要处理复杂数据和提高预测性能的领域。

    决策树是一种非参数监督学习算法,用于分类和回归任务。具有层次化的树形结构,包括一个根节点、多个分支、内部节点和叶节点,如图2所示。

    图  2  决策树示意图
    Figure  2.  Schematic view of a decision tree

    获得的数据集被分为训练样本和测试样本两部分。训练样本用于训练和优化决策树,测试样本用于测试训练后得到的最终分类器。每个样本包含一组特征变量x。首先,对每个特征变量事件根据值的大小进行排序,然后根据特征变量的值将训练样本中的事件划分为左右两部分。通过不断优化特征变量的划分位置,确保左右两部分分别包含大部分信号和背景。每个特征变量都进行这一过程,并最终选择能够获得最佳分离效果的特征变量及其对应的划分位置。

    从根节点开始,决策树通过二元划分处理特征变量,每次划分使用当前节点特征变量的最佳分离方式,以区分信号和背景。因此,同一特征变量可在多个节点上使用,而其他特征变量可能完全不使用。树底部的叶节点表示最终划分的子集,这些子集可能包含纯信号、纯背景或少量事件。

    为区分信号和背景的标准,定义信号纯度。每个事件都有1个权重 wi,分支后信号纯度公式为

    P=swssws+bwb
    (5)

    式中:s为对信号求和;b为对背景求和。

    当样本中都为信号或背景时,对于给定的分支,p(1−p)为0,基尼系数公式为

    G=(ni=1wi)p(1p)
    (6)

    式中:n为当前分支下的所有事件。基尼系数可衡量了分支纯度,值越低表示分支纯度越高,即信号和背景的区分度越大。对该分支进行信号和背景分离的标准以最小化Gleft_son+Gright_son为目标。因此,确定1个节点拆分为两个分支时信号和背景最佳的分离标准为最大化,公式为

    Criterion=GfatherGleft_sonGright_son
    (7)

    若一个叶节点的纯度大于0.5或设置的其他值,则称为信号叶节点;若纯度小于0.5,则称为背景叶节点。若事件落在信号叶节点上,则被分类为信号;若落在背景叶节点上,则被分类为背景,最终得到决策树。

    提升(boosting)是在训练数据集中不断运用多变量分析算法(multi variable analysis, MVA),得到重新加权的数据版本增强分类表现的一种方式。从没有权重的事例开始建立决策树,若训练样本事例被错误分类,即信号事例分类到背景叶,或背景事例分类到信号叶,则该事例加权重,称作事例被提升。新决策树使用加了权重的事例,事例的权重不再一致,此过程不断重复,决策树越来越多,不断提高分类效果。

    通过提升进行函数估计的思想可以通过简单的展开相加以理解。假设函数 F (x)为一组参数化基础函数f(x;am) 的加权求和,这些基础函数称为“弱学习器”。因此,每个基础函数对应一个决策树,表达式为

    F(x;p)=Mm=0βmf(x;am)p{βm;am}M0
    (8)

    提升过程用来调整参数P,使模型响应 F(x)与从训练样本中获得的真实值 y之间的偏差最小。该偏差常用平方误差损失函数 L(F, y)= (F(x)−y)2衡量。可以证明,损失函数完全决定了提升过程。

    常用的AdaBoost提升方法[16]基于指数损失函数 L(F, y) =eF(x) y,其发展出著名的重新加权算法。虽然AdaBoost在许多应用中表现出色,但其指数损失函数在处理异常值或标记错误数据点时不够强大,数据集存在偏差导致性能显著下降。

    GradientBoost算法[17]通过引入有更强大性能的损失函数来解决这一缺陷,又保留AdaBoost的良好性能。当前TMVA中GradientBoost算法使用二项对数似然损失函数,可在具有挑战性的环境中提供更稳定的性能,公式为

    L(F;y)=ln(1+e2F(x)y)
    (9)

    损失函数对应的提升算法不能直接获得,必须采用最陡下降法进行最小化,通过计算损失函数的当前梯度来实现。生成一个回归树,其中叶节点的值对应于由树结构定义的每个区域的梯度均值,通过迭代得到一组最小化损失函数的决策树。值得注意的是,GradientBoost在梯度计算可行的情况下适配任何损失函数。

    以上通过逐步应用回归模型形成提升的决策树,每个模型拟合一个简单的决策树,将特征空间划分为许多高维立方体,模型参数见表3

    表  3  BDTG调节参数
    Table  3.  BDTG tuning parameters
    参数 含义 设置
    Ntree 树的数量 1000
    BoostType 提升算法类型 Gradient
    Shrinkage GradientBoost算法学习率 0.1
    nCuts 节点切割优化过程步骤数 20
    MaxDepth MaxDepth 决策树最大深度
    下载: 导出CSV 
    | 显示表格

    用于训练和测试分类器的变量有12个。事件在决策树中交替轮次选择,直到选出所需数量的训练和测试事件。表4列出前5个对信号和背景分离能力较强的变量。由此可知,胆固醇和静息血压是心脏病患者与正常人最显著的区分指标,这与临床表现一致。

    表  4  特征变量影响排序
    Table  4.  Influence of characteristic variable ranking
    排序特征变量影响程度
    1Chol0.146
    2Trestbps0.142
    3Thalach0.125
    4Oldpeak0.115
    5Ca0.086
    下载: 导出CSV 
    | 显示表格

    输入变量间的相关性如图3所示。由图可知,变量的相关性较弱,未显示出显著的线性依赖性,表明各变量在模型中提供了较为独立的信息,有利于提升模型的泛化能力。

    图  3  特征变量的关联矩阵
    Figure  3.  Correlation matrix among feature variables

    训练样本和测试样本的 BDTG 响应如图4 所示。训练样本和测试样本中的信号与背景没有明显差异,训练样本中没有明显的过拟合发生。信号和背景的分离效果在较大响应范围内表现出色,具有很强的区分能力。

    图  4  BDTG 响应分布
    Figure  4.  BDTG response distribution

    随着BDTG响应阈值的变化,准确率、查准率、查全率和 F1 分数变化见表5。这些评估指标接近 100%,表明 BDTG 方法具有卓越性能。

    表  5  BDTG 响应在不同值截断的模型表现评价
    Table  5.  BDTG performance measurements
    BDTG响应 查准率/% 查全率/% F1分数/%
    −0.6 98.84 100 99.42
    −0.5 99.88 100 99.94
    −0.45 99.97 100 99.98
    −0.4~0.5 100 100 100
    0.55 100 99.86 99.93
    0.6 100 99.39 99.69
    下载: 导出CSV 
    | 显示表格

    将预测结果与其他心血管疾病预测模型对比,如ResNet-50模型。后者采用CNN算法,本研究预测结果的准确性高达98.92%[18]。可见,人工智能对心血管疾病的预测效果很好。由于重大疾病的诊断关系到人们的生命健康,后续将采用统计量更高的数据样本进行研究分析。

    本研究使用高能物理 ROOT 框架下的多变量分析方法对心脏病进行鉴别。BDTG方法展示了很好的预测能力,模型在响应值的截断为−0.6或0.6时,准确率、查准率、查全率和F1分数都达到98%以上。多种风险评估也验证了该模型的可靠性,为临床提前预测心脏病的发生提供了可能。

  • 图  1  心脏病患者与正常人的输入变量分布

    Figure  1.  Distribution of input variables between heart disease patients and normal individuals

    图  2  决策树示意图

    Figure  2.  Schematic view of a decision tree

    图  3  特征变量的关联矩阵

    Figure  3.  Correlation matrix among feature variables

    图  4  BDTG 响应分布

    Figure  4.  BDTG response distribution

    表  1  数据集特征变量

    Table  1.   Dataset feature variable

    序号 特征 描述
    1 Age 年龄
    2 Sex 性别
    3 Cp 胸痛类型
    4 Trestbps 静息血压/(mm·Hg−1)
    5 Chol 胆固醇/(mg·dL−1)
    6 Fbs 空腹血糖
    7 Restecg 静息心电图
    8 Thalach 最大心率
    9 Exang 运动诱发性心绞痛
    10 Oldpeak ST抑制
    11 Ca 主要血管数量
    12 Thal 地中海贫血
    13 Target 心脏病
    下载: 导出CSV

    表  2  4种预测结果类别的具体描述

    Table  2.   Description of four prediction result categories

    类型 描述
    TP(真正例) 真实值为1,预测值为1
    TN(真负例) 真实值为0,预测值为0
    FP(假正例) 真实值为0,预测值为1
    FN(假负例) 真实值为1,预测值为0
    下载: 导出CSV

    表  3  BDTG调节参数

    Table  3.   BDTG tuning parameters

    参数 含义 设置
    Ntree 树的数量 1000
    BoostType 提升算法类型 Gradient
    Shrinkage GradientBoost算法学习率 0.1
    nCuts 节点切割优化过程步骤数 20
    MaxDepth MaxDepth 决策树最大深度
    下载: 导出CSV

    表  4  特征变量影响排序

    Table  4.   Influence of characteristic variable ranking

    排序特征变量影响程度
    1Chol0.146
    2Trestbps0.142
    3Thalach0.125
    4Oldpeak0.115
    5Ca0.086
    下载: 导出CSV

    表  5  BDTG 响应在不同值截断的模型表现评价

    Table  5.   BDTG performance measurements

    BDTG响应 查准率/% 查全率/% F1分数/%
    −0.6 98.84 100 99.42
    −0.5 99.88 100 99.94
    −0.45 99.97 100 99.98
    −0.4~0.5 100 100 100
    0.55 100 99.86 99.93
    0.6 100 99.39 99.69
    下载: 导出CSV
  • [1] 马丽媛, 王增武, 樊静, 等. 《中国心血管健康与疾病报告2022》要点解读[J] . 中国全科医学,2023,26(32):3975 − 3994.
    [2] 李秀清. 心脑血管疾病的危险因素及预防方法分析[J] . 亚太传统医药,2012,8(1):179 − 181.
    [3] 闫一鸣, 欧阳文斌, 张凤文, 等. 中国先天性心脏病介入治疗现状与展望[J] . 中国胸心血管外科临床杂志,2022,29(10):1243 − 1253.
    [4] 梅宏, 杜小勇, 金海, 等. 大数据技术前瞻[J] . 大数据,2023,9(1):1 − 20.
    [5] 肖博达, 周国富. 人工智能技术发展及应用综述[J] . 福建电脑,2018,34(1):98 − 99
    [6] 陈蒙蒙, 方振红, 涂文怡, 等. 基于Logistic回归模型的心脏病预测模型构建及效果分析[J] . 医院管理论坛,2022,39(2):32 − 35.
    [7] 王成武, 郭志恒, 晏峻峰. 改进的支持向量机在心脏病预测中的研究[J] . 计算机技术与发展, 2022, 32(3): 175−179.
    [8] 谭朋柳, 徐光勇, 张露玉, 等. 基于卷积神经网络和Adaboost的心脏病预测模型[J] . 计算机应用,2023,43(S1):19 − 25.
    [9] 赵金超, 李仪, 王冬, 等. 基于优化的随机森林心脏病预测算法[J] . 青岛科技大学学报(自然科学版),2021,42(2):112 − 118.
    [10] 刘柃伶, 黄学德. 基于XGBoost和SHAP的心脏病影响因素分析[J] . 信息与电脑(理论版),2024,36(6):68 − 70.
    [11] ALAN S C, WESLEY D, BENJAMIN F, et al. Boosted decision trees in the era of new physics: a smuon analysis case study[J] . Journal of High Energy Physics,2021(2022):1 − 15.
    [12] NIKOLAY K,OLEG S. Method for improving gradient boosting learning efficiency based on modified loss functions[J] . Automation and Remote Control,2022(83):1935 − 1943.
    [13] ANDREAS T. ConfusionVis: comparative evaluation and selection of multi-class classifiers based on confusion matrices[J] . Knowledge-Based Systems,2022(247):3 − 12.
    [14] TAFFAZUL C, BISMITA C. Automated cardiovascular disease prediction models: A comparative analysis[J] . EAI Endorsed Transactions on Pervasive Health and Technology,2023(9):1 − 6.
    [15] RAQUEL S, VERONIKA T, CELIA O, et al. Balancing risk and profit: Predicting the performance of potential new customers in the insurance industry[J] . Journal cf Information Science,2024(15):546.
    [16] ASADA Y. Evaluation of the performance of a machine learning based atrial fibrillation screening algorithm using an oscillometric blood pressure monitor[J] . Scientific Reports,2024(14):1 − 18.
    [17] DU S S, QIU T, LI L Q, et al. Application of multi-gradient boosting tree in drug identification[J] . Computer Science and Exploration,2020(14):260 − 273.
    [18] SHAIMAA M, MOHAMED G, GAMAL F, et al. Cardiovascular disease prediction using modified version of resnet-50 model[C] //Proceedings of the 32nd International Conference on Computer Theory and Applications (ICCTA). Location: IEEE, 2022.
  • 加载中
图(4) / 表(5)
计量
  • 文章访问数:  163
  • HTML全文浏览量:  77
  • PDF下载量:  8
  • 被引次数: 0
出版历程
  • 收稿日期:  2024-06-06
  • 刊出日期:  2024-12-31

目录

/

返回文章
返回