本研究利用 Hadoop MapReduce 和 K-Means 聚类方法,建立了一个可扩展的心脏病预测框架。调整分类阈值会影响检测的敏感性。CViHDKNN 能够提高真阳性检出率,同时控制假阳性;而 CViHDDT 可减少假阳性,但可能会遗漏部分心脏病病例。
研究文章
本研究利用 Hadoop MapReduce 和 K-Means 聚类方法,建立了一个可扩展的心脏病预测框架。调整分类阈值会影响检测的敏感性。CViHDKNN 能够提高真阳性检出率,同时控制假阳性;而 CViHDDT 可减少假阳性,但可能会遗漏部分心脏病病例。
心脏病仍然是全球主要的死亡原因之一,迫切需要准确且可扩展的预测系统,以实现早期诊断和及时的临床干预。传统的机器学习方法在高效处理大规模医学数据集方面往往存在困难,并且缺乏可解释性,限制了其在支持临床决策中的应用。为应对这些挑战,本研究提出了一种用于心脏病预测的聚类可视化分布式机器学习框架。该框架包含两种分布式算法:聚类可视化Hadoop分布式决策树(CViHDDT)和聚类可视化Hadoop分布式K近邻算法(CViHDKNN)。所提出的模型利用Hadoop的MapReduce框架对大规模数据集进行分布式计算,同时结合K均值聚类以改善数据组织与可视化效果。基于聚类的可视化增强了模型的可解释性,使临床医生能够更清晰地理解患者风险因素与预测结果之间的关系。实验在基于Hadoop的分布式环境中使用UCI心脏病数据集进行评估。结果表明,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)框架。该框架引入了两种分布式预测模型:聚类可视化Hadoop分布式决策树(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–32 GB 内存以及约 1 TB 的存储空间。
数据导入 HDFS
数据集存储
实验数据集以分块分布式格式存储在 HDFS 中,目标变量表示心脏病的存在与否,该变量在存储到集群节点之前已与独立特征集分离。使用 MapReduce 工作流对所有存储的数据块进行特征特定的预处理。对于数值型特征,包括年龄、血压、胆固醇水平和心率,采用基于四分位距的稳健缩放器进行归一化,以减少异常值的影响,这在医学数据集中尤为重要,因为极端值可能代表罕见或严重的临床状况。具有两个以上类别的分类变量(如 cp、restecg 和 thal)通过独热编码进行转换,将分类属性转化为与机器学习算法输入兼容的二进制数值表示30,31,32。所有预处理操作均作为分布式的 MapReduce 任务在 HDFS 数据块上执行,确保整个流程的一致性应用,且原始数据无需在任何单一节点上集中。
跨节点分区
数据集采用80:20的比例划分为训练集和测试集,其中80%用于训练,20%保留用于对未见过的数据进行评估。该划分方式在所有分布式工作节点上保持一致,以确保每个节点处理的数据分片在整体数据集中具有相同比例且具代表性,从而避免数据偏斜并支持模型泛化的均衡性。通过缩放处理,所有数值型变量在分布式训练过程中具有同等贡献,防止量级较大的特征在各节点的学习过程中占据主导地位。这种结构化的划分策略提高了预测的可靠性,并通过在分布式集群中严格区分训练数据与评估数据,有助于防止过拟合。
数据预处理
缺失值处理
医学数据集在临床数据收集过程中,常因数据录入错误、设备故障或患者未作应答而导致记录不完整。在模型训练之前,对所有数据集属性均进行了缺失值或空值的检查。针对血压、胆固醇和心率等关键临床特征中存在缺失值的记录,采用均值插补法处理数值型变量,采用众数插补法处理分类变量。该方法在保留数据集统计分布特性的同时,避免了不必要的样本丢弃,确保在分布式 HDFS 节点上进行模型学习时最大限度地利用可用数据。
特征缩放
年龄、血压、胆固醇水平和最大心率等数值特征具有显著不同的取值范围,可能导致量级较大的特征在模型训练中产生不成比例的影响。为解决这一问题,对所有连续型数值属性采用了基于四分位距的稳健缩放方法。这种缩放策略特别适用于医学数据集,因为在这些数据集中,代表罕见或严重状况的极端临床值可能扭曲学习过程。通过缩放,确保了所有数值变量在模型训练期间具有同等贡献,并且在所有分布式工作节点上通过 MapReduce 工作流一致地应用了该处理。
编码
对于具有两个以上不同类别的分类变量,包括 cp(胸痛类型)、restecg(静息心电图结果)和 thal(地中海贫血类型),采用独热编码(one-hot encoding)进行转换。该过程将每个分类属性转换为一组二元数值指示列,生成机器学习算法可有效处理的表示形式,同时避免在类别值之间引入人为的有序关系。二元分类变量则保留其原始数值形式。所有编码操作均作为分布式 MapReduce 任务在 HDFS 数据块上执行,确保对所有分区数据集片段进行一致的转换。
训练/测试集划分
预处理后的数据集采用80:20的比例划分为训练集和测试集,其中80%用于模型训练,20%保留用于对未见数据进行性能评估。在划分之前,表示心脏病是否存在这一目标变量已从独立特征集中分离出来。该划分策略在所有分布式HDFS节点上统一应用,以确保每个工作节点处理到成比例且具有代表性的数据分片,防止数据偏斜。80:20划分策略增强了预测的可靠性,提高了模型的泛化能力,并在分布式集群环境中保持训练数据与评估数据之间的清晰分离,从而避免过拟合。
模型实现
聚类可视化Hadoop分布式决策树(CViHDDT)模型利用分布式决策树将患者分类到不同的风险类别中。该决策树算法基于最具信息量的特征对数据集进行递归划分,以最大化患有和未患有心脏病的患者之间的区分度。在Hadoop分布式框架内,此过程在多个计算节点上并行执行,从而能够高效处理大规模数据集。这种分布式架构在降低计算时间的同时提升了可扩展性。聚类可视化Hadoop分布式K近邻(CViHDKNN)算法使用相同的数据集,但采用不同的分类策略。该模型不构建决策树,而是根据血压、胆固醇水平和运动诱发性心绞痛等医学属性,识别出医学特征最接近的邻近患者。通过分布式计算,KNN算法能够高效地将具有相似医学特征的患者聚类,同时有效管理计算复杂度。
分布式K近邻模型的分类原理如图2所示,其中新实例根据其最近邻样本中的多数类别被分配到相应类别。聚类可视化技术可帮助医疗专业人员识别具有相似临床特征的患者群体,从而提高模型可解释性,并支持个性化治疗建议。所提出的心脏病预测框架整合了数据预处理、分布式机器学习算法和聚类可视化技术。通过利用Hadoop的分布式计算能力,该框架能够高效处理大规模医疗数据集,同时保持高预测准确率和可解释性,有助于实现心脏病的早期检测和临床决策优化。
聚类可视化 Hadoop 分布式决策树(CViHDDT):
分布式决策树训练
所提出的聚类可视化Hadoop分布式决策树(CViHDDT)模型在本质上不同于传统的决策树构建方法,其核心在于将决策树的构建过程分布到Hadoop生态系统中的多个节点上,而非在单台机器上构建完整的决策树。各个工作节点利用MapReduce或Apache Spark进行并行处理,在其分配到的数据子集上本地构建局部决策树。随后,这些本地生成的局部决策树被合并为一个涵盖完整分布式数据集的全局决策树。这种分布式训练策略显著加快了模型训练速度,使该框架能够高效地大规模处理多太字节级别的医学数据集。Hadoop提供的并行计算架构确保了CViHDDT模型具有天然的可扩展性,非常适合用于大数据驱动的医疗健康解决方案。在完成分布式决策树构建后,采用聚类可视化技术,通过k均值或层次聚类等算法,将决策树节点分组为具有相似医学状况的患者簇,从而增强模型的可解释性。该聚类过程生成具有临床意义的风险类别——例如轻度、中度和重度心脏病——使医疗专业人员能够识别患者数据中的模式,理解疾病进展过程,并制定个性化的治疗方案。
特征选择
在分布式决策树训练之前,CViHDDT 模型对从 HDFS 摄取的原始医疗数据应用一个结构化的预处理和特征选择流程。通过插补算法处理缺失值,以管理不完整的临床记录,在不丢弃患者样本的前提下防止数据丢失。对血压和胆固醇水平等数值型特征应用鲁棒缩放器(Robust Scaler)归一化,以减轻医疗数据集中常见异常值的过度影响。性别和心脏病家族史等分类变量通过独热编码(one-hot encoding)或标签编码(label encoding)转换为机器学习算法可兼容的数值表示形式。预处理完成后,进行特征提取,以识别对心脏病最具预测性的关键临床属性。该阶段从数据集中剔除无关和冗余的特征,降低后续分布式训练阶段的计算成本,并确保仅有最具诊断信息价值的属性——如胸痛类型、静息血压、血清胆固醇、最大心率和 ST 段压低——被保留作为分布式决策树构建过程的输入。这种系统性的特征缩减提高了模型效率,减少了在分布式节点上的训练时间,并通过将学习过程聚焦于临床判别能力最强的属性,增强了 CViHDDT 框架的整体预测可靠性。
MapReduce 工作流程
MapReduce 编程模型构成了 CViHDDT 分布式训练流水线的计算核心,能够在 Hadoop 集群的所有工作节点上并行处理心脏病数据集。在映射阶段,每个工作节点独立处理其分配到的 HDFS 数据分片,针对每个候选属性计算局部决策树结构和分裂统计量——包括信息增益和基尼指数值——而无需访问其他节点上存储的数据。在归约阶段,所有节点上计算得到的局部决策树和充分统计量被聚合,以构建完整的全局决策树,将各节点学习到的分布式知识整合为一个统一的预测模型。这种将决策树构建过程分解为映射与归约的机制,使 CViHDDT 模型能够随工作节点数量线性扩展,从而在计算上实现对大规模医学数据集的实时分析。MapReduce 工作流还支持聚类可视化过程的分布式执行,其中聚类算法并行应用于 HDFS 数据块,根据患者记录在决策树节点中的归属情况将其划分为不同的风险类别。对最终模型的性能评估采用精确率、召回率、F1 分数和分类准确率作为主要指标;而分布式聚类可视化通过在决策树内部实现更精细的决策边界,进一步减少了假阴性,直接提升了识别高风险患者时的敏感性,增强了 CViHDDT 心脏病预测框架的临床可靠性。
聚类可视化 Hadoop 分布式 K 近邻算法(CViHDKNN)
聚类
CViHDKNN(聚类可视化Hadoop分布式K近邻)框架在分类之前,首先对心脏病数据集应用聚类技术,将具有相似医学特征的患者分组为一致的簇,然后再执行KNN搜索。包含年龄、胆固醇水平、血压、心电图结果和心率等临床特征的心脏病数据集经过预处理后,通过HDFS分布到Hadoop集群的各个节点上。随后,在这些分布式数据分区上应用K均值(K-Means)和层次聚类(Hierarchical Clustering)等聚类算法,将数据集划分为具有相似医学特征的患者组。这一分类前的聚类步骤具有关键的计算意义:通过将KNN搜索空间限制在最相关的簇内,而非整个数据集,算法显著减少了每次查询实例所需的距离计算次数。对这些簇进行可视化还能带来额外的临床价值,有助于识别具有高度相似医学特征的患者亚群,并在最近邻分类阶段之前支持更合理的风险特征分类。基于聚类的优化不仅降低了计算开销,还通过确保每个查询实例仅与上下文最相似的患者记录进行比较,提高了分类准确性,使得该方法特别适用于大规模心脏病数据集——在这些场景中,若在整个数据集上进行穷举式距离计算,计算成本将高得无法承受。
分布式KNN
CViHDKNN 中的分布式 KNN 组件解决了传统 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 的分类报告,包括两个类别的精...
访问受限。请登录或开始试用以查看此内容。
基于聚类技术CViHDDT的一种有效心脏病预测方法被开发,并通过基于Hadoop的分布式决策树框架进行了评估。该模型的训练准确率约为75.62%,测试准确率达到80.33%,表明其具备对未见数据进行泛化的能力。略高的测试准确率表明,Hadoop的并行处理能够高效处理大规模数据集,同时最小化过拟合现象。先前的研究同样报道,基于Hadoop的分布式系统可提升医疗健康数据分析中的可扩展性与处理效率1,8。通过利用MapReduce框架,数据集被分发到多个节点上,从而在决策树构建过程中加快熵和信息增益的计算速度。
分类报告表明,模型在两个类别上的性能均衡,类别0(无心脏病)的F1分数为0.81,类别1(有心脏病)的F1分数为0.80。精确率和召回率结果显示,模型识别心脏病病例的精确率为86%,召回率为75%,表明模型倾向于产生较少的假阳性结果,但会遗漏部分阳性病例。精确率、召回率和F1分数的宏平均值与加权平均值均保持在0.80左右,证实了模型的稳健性。CViHDDT模型的详...
访问受限。请登录或开始试用以查看此内容。
作者声明无利益冲突。
作者谨向印度瓦朗加尔SR大学计算机科学与工程系表示诚挚的感谢,感谢其批准开展本项研究工作,并在整个研究过程中提供持续的支持与鼓励。作者还感谢该校研究与开发(R&D)团队、R&D实验室、资深教职人员及导师们所提供的宝贵指导、技术支持和激励,这些支持对本研究论文的顺利完成起到了重要作用。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| Apache Spark | Apache 软件基金会 | 3.x | 分布式数据处理 |
| HDFS | Apache 软件基金会 | 包含在 Hadoop 3.x 中 | 分布式文件存储 |
| YARN | Apache 软件基金会 | 包含在 Hadoop 3.x 中 | 资源管理与作业调度 |
| Matplotlib | Matplotlib 开发团队 | 数据可视化 | |
| Seaborn | Seaborn 开发者 | 统计绘图 | |
| Ubuntu 操作系统 | Canonical 公司 | 20.04 LTS | 操作系统 |
| RobustScaler | Scikit-learn | 特征归一化 | |
| UCI 心脏病数据集 | UCI 机器学习仓库 | 数据集编号 45 | 实验数据集 |
申请许可以重复使用本 JoVE 文章的文本或图表
申请许可