本研究开发了一个可扩展的心脏病预测框架,利用Hadoop MapReduce和K-均值聚类技术。调整分类截止值会影响检测灵敏度。CViHDKNN在控制假阳性的情况下提高真阳性检测率,而CViHDDT减少假阳性,但可能漏掉部分心脏病病例。
研究文章
本研究开发了一个可扩展的心脏病预测框架,利用Hadoop MapReduce和K-均值聚类技术。调整分类截止值会影响检测灵敏度。CViHDKNN在控制假阳性的情况下提高真阳性检测率,而CViHDDT减少假阳性,但可能漏掉部分心脏病病例。
心脏病仍是全球主要死亡原因之一,迫切需要准确且可扩展的预测系统,以便早期诊断和及时临床干预。传统机器学习方法常常难以高效处理大规模医疗数据集,且缺乏可解释性,限制了其在支持临床决策方面的实用性。为应对这些挑战,本研究提出了一种用于心脏病预测的集群可视化分布式机器学习框架。该框架包含两种分布式算法:集群可视化哈杜布分布式决策树(CViHDDT)和集群可视化哈多布分布式K最近邻(CViHDKNN)。所提模型利用Hadoop的MapReduce框架实现大规模分布式计算,同时整合K-Means聚类以提升数据组织和可视化效果。这种基于聚类的可视化提升了可解读性,使临床医生能够更好地理解患者风险因素与预测结果之间的关系。实验评估使用UCI心脏病数据集,在基于Hadoop的分布式环境中进行。结果显示,CViHDKNN实现了更优的预测性能,准确率为85.25%,召回率为88%,优于CViHDDT模型的80.33%。调整分类截断值也影响灵敏度和检测率:降低截止值能提高真阳性检测,同时保持可接受的假阳性水平。这些发现表明,聚类增强的分布式学习提升了心脏病预测的可扩展性、预测准确性和临床可解释性。
心脏病是全球主要的死亡原因之一,也是一项重大的公共卫生挑战。心血管疾病患病率的上升凸显了对先进诊断模型的紧迫需求,以支持早期发现和治疗。传统诊断方法高度依赖人工评估和临床判断,而这些方法常常难以高效管理大量医疗数据。近年来,人工智能(AI)和机器学习(ML)技术在预测性医疗分析中发挥了重要作用,使数据驱动的疾病预测成为可能,并提高了医疗系统中的风险评估准确性 1,2.
传统的诊断方法和基于规则的决策系统在应用于复杂医学数据集时常常存在扩展性有限和精度较低的问题。尽管机器学习技术提高了预测性能,许多模型仍面临处理大规模医疗数据和保持临床决策可解释性方面的挑战。深度学习模型可能实现较高的预测准确性,但通常作为“黑箱”系统,使医疗专业人员难以理解预测背后的推理 3,4,5。这种缺乏透明度限制了它们在临床环境中的采用,而临床环境中解释性至关重要,6,7,8,9,10。
为克服这些挑战,分布式计算框架如Hadoop被越来越多地应用于大规模医疗分析。Hadoop的分布式架构使得利用Hadoop分布式文件系统(HDFS)和MapReduce实现大规模数据集的并行处理,提升了医疗数据分析中的计算效率和可扩展性。然而,分布式机器学习模型仍需增强可解释性和透明度的机制。整合聚类和可视化技术有助于揭示患者数据中的隐藏模式,并帮助临床医生更有效地理解预测结果 11,12,13,14,15,16。
多位研究人员探索了利用决策树和K最近邻(KNN)等算法进行分布式机器学习预测心脏病的技术。在Hadoop框架上实现的分布式决策树(HDDT)模型相比传统决策树方法17,18,19,20,21,22,23,展示了更高的可扩展性和分类准确性。同样,Hadoop分布式KNN(HDKNN)方法利用并行处理提升大型高维医学数据集的分类效率(24,25,26)。然而,这些模型通常缺乏强大的可解释性和可视化机制,而这些对于有效的临床决策和理解患者风险特征至关重要。尽管取得了这些进展,现有分布式模型仍缺乏整合的可解释性和可视化患者风险模式理解机制。
为解决这些局限性,本研究提出了一个用于心脏病预测的集群可视化分布式机器学习(CVDML)框架。该框架引入了两个分布式预测模型:集群可视化哈doop分布式决策树(CViHDDT)和集群可视化Hadoop分布式K最近邻(CViHDKNN)。CViHDDT 采用分布式决策树构建以优化医学特征的选择,如症状和既往病史,而 CViHDKNN 则采用分布式、并行化的 KNN 方法,基于相似的医疗特征对患者进行分类。聚类和可视化技术的整合提高了分类性能,并通过将疾病模式相似的患者分组,增强了可解释性。
本研究的主要目标是开发一个可扩展且可解释的分布式机器学习框架,利用大量医学数据集进行心脏病的准确预测。本研究的主要贡献包括:(1)开发基于Hadoop的分布式机器学习框架,能够高效处理大型医疗数据集。(2)将聚类可视化技术与分布式决策树和KNN模型结合,以提升预测医疗分析中的可解释性和透明度27.(3)通过提升准确性、回忆力和异常检测能力,展示了与传统机器学习方法相比,预测性能提升的28.
访问受限。请登录或开始试用以查看此内容。
数据集获取
UCI心脏病数据集是医学和机器学习研究中广泛用于预测心脏病的数据集。它包含患者的多种临床和诊断特征,使医疗专业人员和研究人员能够开发基于数据的预测模型。该数据集根据多个患者属性(包括年龄、性别、胸痛类型、血压、胆固醇水平和心电图结果(https://archive.ics.uci.edu/dataset/45/heart+disease)29,将个体分为可能患心脏病或不太可能患心脏病。所提心脏病预测框架的整体工作流程,包括数据预处理、分布式模型实现和评估阶段,如图1所示。
实验环境设置
该实验环境部署在Apache Hadoop 3.x上,作为所有实现的核心分布式计算框架。该集群采用主工架构,配备一个专用主节点和多个工作节点。主节点通过YARN(Yet Another Resource Negotiator)管理作业调度、资源分配和集群协调,而工作节点则并行执行分布式计算任务,高效处理大规模医疗数据集。集群中的每个节点都配备了Intel Core i7处理器(或同等型号)、16–32GB内存和约1TB存储。
数据导入HDFS
数据集存储
实验数据集以区块分布格式存储在HDFS中,目标变量表示心脏病的存在与否,与独立特征集分离,然后在集群节点间存储。使用MapReduce工作流程,对所有存储的数据块都进行了功能专属的预处理。包括年龄、血压、胆固醇水平和心率在内的数值特征,通过基于四分位数范围的稳健量表进行归一化,从而减少了异常值的影响,这些异常值在医学数据集中极为常见,这些极端值可能代表罕见或严重的临床状况。具有多个类别的类别变量,如cp、restecg和thal,采用单热编码转换,将类别属性转换为与机器学习算法输入30、31、32兼容的二进制数值表示。所有预处理操作均作为分布式MapReduce作业在HDFS数据块间执行,确保整个流水线的统一应用,而不会将原始数据集中在任何一点。
节点分区
数据集采用80:20的比例划分为训练集和测试集,其中80%用于训练,20%用于对未见数据进行评估。这种分区在所有分布式工作节点上一致应用,以确保每个节点处理的碎片是完整数据集的比例代表性,防止数据偏斜,支持平衡的模型泛化。缩放确保所有数值变量在分布式训练中均等贡献,防止更大数量的特征在各节点的学习过程中占据主导地位。这种结构化划分策略提高了预测可靠性,并通过在分布式集群中保持训练数据与评估数据的清晰分离,帮助防止过拟合。
数据预处理
缺失值处理
由于数据录入错误、设备故障或临床数据收集过程中患者无反应,医疗数据集常常包含不完整的记录。在模型训练之前,所有数据集属性都被检查是否有缺失或空值。对于关键临床特征(如血压、胆固醇和心率)缺失值的行,我们通过数值变量的平均值补和类别变量的模式值补法进行识别和处理。该方法保持了数据集的统计分布,同时确保没有不必要的训练样本被丢弃,从而在分布式HDFS节点间保持了模型学习的最大数据可用性。
特征缩放
数值特征,包括年龄、血压、胆固醇水平和最大心率,表现出显著不同的数值范围,可能导致更大幅度的特征对模型训练产生不成比例的影响。为此,基于四分位数范围的鲁棒尺度分析应用于所有连续数值属性。这种缩放策略特别适用于医学数据集,因为极端的临床值代表罕见或严重疾病,可能会扭曲学习过程。缩放确保所有数值变量在模型训练过程中贡献均等,并通过MapReduce工作流程在所有分布式工作节点上一致应用。
编码
包含两个以上不同类别的类别变量,包括胸痛型cp、静息心电图结果和thal型(地中海贫血型),均采用单热编码转换。该过程将每个类别属性转换为一组二进制数值指示列,生成机器学习算法能够有效处理的表示,而无需在类别值之间施加人工序数关系。二元类别变量保持了原始的数值形式。所有编码操作均作为分布式MapReduce作业在HDFS数据块间执行,确保所有分区数据集碎片间的转换一致。
列车/测试分段
预处理数据集被按80:20比例划分为训练和测试子集,其中80%用于模型训练,20%保留用于对未见数据的性能评估。在分离前,指示心脏病存在或不存在的目标变量已从独立特征集中分离。这种分区在所有分布式HDFS节点上统一应用,以确保每个工作节点处理的整个数据集的比例且具代表性分片,防止数据偏移。80:20分拆策略提升了预测可靠性,改善了模型泛化,并在分布式集群环境中保持了训练与评估数据的清晰分离,从而防止了过度拟合。
模型实现
集群可视化Hadoop分布式决策树(CViHDDT)模型利用分布式决策树将患者分类为风险类别。决策树算法递归地根据最具信息量的特征拆分数据集,最大化了心脏病患者与非心脏病患者的分离。在Hadoop分布式框架中,该过程跨多个计算节点执行,使得大数据集能够高效地处理。分布式架构减少了计算时间,同时提升了可扩展性。集群可视化哈杜布分布式K最近邻(CViHDKNN)算法使用相同数据集,但采用不同的分类策略。该模型不构建决策树,而是根据血压、胆固醇水平和运动诱发心绞痛等医疗指标识别最近的邻近患者。通过分布式计算,KNN算法高效地将具有相似医疗特征的患者聚类,同时管理计算复杂性。
分布式K最近邻模型的分类原则如 图2所示,图中新实例根据其最近邻中的多数类被分配到一个类别。集群可视化技术使医疗专业人员能够识别具有相似临床特征的患者群体,从而提升可解读性并支持个性化治疗建议。所提出的心脏病预测框架整合了数据预处理、分布式机器学习算法和聚类可视化技术。通过利用Hadoop的分布式计算能力,该框架高效处理大型医疗数据集,同时保持高预测准确性和可解释性,实现心脏病早期检测和临床决策改进。
集群可视化的Hadoop分布式决策树(CViHDDT):
分布式决策树训练
所提出的集群可视化Hadoop分布式决策树(CViHDDT)模型与传统决策树构建有根本不同,因为它将树构建过程分散到Hadoop生态系统的多个节点,而不是在单台机器上构建整棵树。单个工作节点在其分配的数据集子集上,使用MapReduce或Apache Spark进行并行处理,在本地构建部分决策树。这些局部构建的部分树随后被组合成一个完整的全局决策树,涵盖完整的分布式数据集。这种分布式训练策略显著加快了模型训练,使该框架能够高效地大规模处理多太字节的医疗数据集。Hadoop提供的并行计算基础设施确保CViHDDT模型具有可扩展性,非常适合大数据驱动的医疗解决方案。在分布式树构建之后,应用集群可视化技术,通过使用k均值和层级聚类等算法将决策树节点分组到具有相似医疗状况的患者集群中,以提升模型可解释性。这一聚类过程产生了具有临床意义的风险类别——如轻度、中度和重度心脏病——使医疗专业人员能够识别患者数据中的模式,理解疾病进展,并制定个性化治疗方案。
功能选择
在分布式决策树训练之前,CViHDDT 模型对从 HDFS 导入的原始医疗数据应用结构化的预处理和特征选择流水线。缺失值通过补美算法处理,以管理不完整的临床记录,防止数据丢失,同时不丢弃患者样本。稳健量表归一化应用于血压和胆固醇水平等数值特征,以减轻医学数据集中异常值的不成比例影响。通过单热编码或标签编码,将性别和家族史等类别变量转换,以生成与机器学习算法兼容的数值表示。预处理后,进行特征提取以确定最能预测心脏病的关键临床特征。该阶段剔除数据集中无关且冗余的特征,降低后续分布式训练阶段的计算成本,并确保仅保留最具诊断价值的属性——如胸痛类型、静息血压、血清胆固醇、最大心率和ST抑郁——作为分布式决策树构建过程的输入。这种系统化特征减少提高了模型效率,缩短了分布式节点间的训练时间,并通过将学习过程聚焦于具有最强临床判别力的属性,提升了CViHDDT框架的整体预测可靠性。
MapReduce 工作流程
MapReduce编程模型构成了CViHDDT分布式训练流水线的计算骨干,支持心脏病数据集在Hadoop集群中所有工作节点间的并行处理。在映射阶段,每个工作节点独立处理其分配的HDFS数据碎片,计算部分决策树结构和局部拆分统计数据——包括信息增得和基尼指数值——针对每个候选属性,无需访问存储在其他节点的数据。在简化阶段,将本地计算的偏树和足够的统计数据汇总到所有节点,构建完整的全局决策树,将每个节点学到的分布知识整合为统一的预测模型。这种树构建过程的映射约简分解使CViHDDT模型能够随着工作节点数量线性扩展,使得对大规模医疗数据集进行实时分析在计算上可行。MapReduce 工作流程还支持分布式执行集群可视化流程,该过程通过在 HDFS 数据块间并行应用聚类算法,根据患者记录的决策树节点分配将病历分组到风险类别。对最终模型的性能评估主要以精度、召回率、F1分数和分类准确性为主要指标,分布式聚类可视化通过树内更细致的决策边界进一步减少了假阴性,直接提升了识别高风险患者的敏感度,并增强了CViHDDT心脏病预测框架的临床可靠性。
集群可视化哈多普分布式K最近邻(CViHDKNN)
聚类
CViHDKNN(集群可视化Hadoop分布式K最近邻)框架首先在分类前对心脏病数据集应用聚类技术,将具有相似医学特征的患者分组为连贯的集群,然后进行KNN搜索。心脏病数据集包含年龄、胆固醇水平、血压、心电图结果和心率等临床特征,通过HDFS预处理并分布在Hadoop集群的节点之间。随后,在这些分布式数据分区中应用包括K均值和层级聚类在内的聚类算法,将数据集划分为共享相关医疗档案的患者组。这一预分类聚类步骤具有关键的计算目的:通过将KNN搜索空间限制为最相关的集群而非整个数据集,算法大幅减少了每个查询实例所需的距离计算次数。可视化这些集群还能带来额外的临床益处,因为它有助于识别具有密切相关医学特征的患者亚组,并支持在最近邻分类阶段前对风险特征进行更有意义的分类。基于聚类的优化不仅降低了计算开销,还通过确保每个查询实例仅与上下文最相似的患者记录进行比较,从而提高了分类准确性,这使得该方法特别适合大规模心脏病数据集,因为在整个数据集中进行穷尽的距离计算将导致计算量过大。
分布式KNN
CViHDKNN 的分布式 KNN 组件解决了传统 KNN 的根本扩展性限制,即在计算查询实例与所有存储数据点之间的距离之前,必须将整个数据集加载到内存中。在CViHDKNN框架中,这种距离计算通过HDFS分布式数据分区在Hadoop集群的多个工作节点间并行进行,确保无需单一节点处理完整数据集。每个工作节点独立计算查询实例与其本地分配的HDFS数据碎片中患者记录之间的距离,识别其分区内本地最近的邻。通过利用Hadoop的并行处理能力,CViHDKNN大幅提升了可扩展性,并实现了对海量健康相关患者数据的高效管理。这种分布式架构还增强了数据安全性,因为敏感的患者记录会留在分布式集群环境中,而不是转移到外部云服务器或集中式本地机器。聚类引导搜索空间缩减与Hadoop分布距离计算相结合,打造了一个既实现计算效率又具预测准确性的系统,实现了大规模医学数据集的实时心脏病预测。实验结果证实,分布式实现实现了85.25%的分类准确率,显著提升了传统非分布式KNN基线,这直接归功于分布式、聚类增强的处理策略。
分类
CViHDKNN的分类阶段会根据分布式搜索过程中识别出的K个最近邻中多数票,将每个查询患者实例分配给心脏病类别。K值的选择直接影响分类结果和预测精度。当 K = 1 时,查询实例被赋予其最近邻的类标签,从而形成高度局部化的决策边界,可能对训练数据中的噪声敏感。当K = 3时,分类由三个最近邻中的多数类决定——例如,如果两个邻居属于第1类(无心脏病),一个属于第2类(存在心脏病),查询实例被归类为第1类,从而提供更稳健且耐噪的决策。MapReduce阶段将所有工作节点中本地识别的最近邻聚合成一个全球排名列表,从中选出K个最近邻,然后计算多数票以得出最终类别预测。CViHDKNN分类框架的性能主要以精度、召回率、F1评分和整体分类准确率为主要指标进行评估。将集群约束搜索与分布式多数投票结合,能够比标准KNN产生更细密、更准确的决策边界,减少高风险患者识别中的误报并提升灵敏度,这两者都是大规模分布式医疗分析环境中临床可靠心脏病预测的关键要求。
访问受限。请登录或开始试用以查看此内容。
实验评估表明,CViHDKNN模型在心脏病分类中的预测表现优于CViHDDT。CViHDKNN模型的测试准确率为 85.25%,而CViHDDT模型为 80.33%,显示出分布式K最近邻方法的预测能力有所提升。这些比较性能结果总结于 表1。
CViHDDT模型的分类表现显示出中等预测能力,精度和回忆值表明疾病和非疾病病例的检测均达到平衡。特别是,该模型在心脏病病例中回忆率为75%,非疾病病例为86%,表明其在识别无心脏病患者方面表现相对良好,但可能遗漏部分阳性病例。CViHDDT的详细分类指标见 表2。
相比之下,CViHDKNN模型在检测心脏病病例方面表现出更高的灵敏度。该模型在1类心脏病患者中回收率为88%,表明其在识别心脏病患者方面比CViHDDT模型更有效。CViHDKNN的分类报告,包括两个类别的精度、回忆率和F1分...
访问受限。请登录或开始试用以查看此内容。
基于聚类技术CViHDDT,开发并评估了一种基于Hadoop的分布式决策树框架的有效心脏病预测方法。该模型的训练准确率约为75.62%,测试准确率为80.33%,展示了其对未见数据的泛化能力。略高的测试精度表明Hadoop的并行处理能够高效处理大数据集,同时最大限度地减少过拟合。以往的研究同样报告称,基于Hadoop的分布式系统提升了医疗分析的可扩展性和处理效率1,8。通过利用MapReduce框架,数据集分布在多个节点,从而在决策树构建过程中更快地计算熵和信息增益。
分类报告显示两类表现均衡,F1评分为0级(无心脏病)0.81,1类(有心脏病)为0.80。准确率和回忆值显示,模型识别心脏病病例的准确率为86%,回忆率为75%,表明假阳性较少,但漏诊部分阳性病例。宏观和加权平均精度、召回率和F1得分均约为0.80,证实模型的稳健性。CViHDDT 模型的详细性能指标汇总于 表 2
访问受限。请登录或开始试用以查看此内容。
作者无需声明利益冲突。
作者衷心感谢印度瓦朗加尔的SR大学计算机科学与工程系,感谢其批准并在本次研究工作中持续提供支持和鼓励。作者们还感谢大学研发团队、研发实验室、资深教师和导师们给予的宝贵指导、技术支持和激励,这些都极大地促成了本研究论文的成功完成。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| Apache Spark | Apache Software Foundation | 3.x | 分布式数据处理 |
| HDFS | Apache Software Foundation | 包含在Hadoop 3.x中 | 分布式文件存储 |
| YARN | Apache Software Foundation | 包含在Hadoop 3.x中 | 资源管理和任务调度 |
| Matplotlib | Matplotlib开发团队 | 数据可视化 | |
| Seaborn | Seaborn开发者 | 统计绘图 | |
| Ubuntu OS | Canonical Ltd. | 20.04 LTS | 操作系统 |
| RobustScaler | Scikit-learn | 特征归一化 | |
| UCI Heart Disease Dataset | UCI机器学习存储库 | 数据集ID 45 | 实验数据集 |
申请许可以重复使用本 JoVE 文章的文本或图表
申请许可