基于机器学习的乳腺癌问诊系统的设计与实现
作者: 卓鹏 陈耿 刘弋 胡铃萍 田艳红
摘要:乳腺癌是女性最常见的恶性肿瘤之一,早期诊断和治疗对于提高治愈率和生存率至关重要。本研究旨在开发一个基于机器学习的乳腺癌问诊系统。用户可以在该系统中输入相关医学检测指标数据,通过机器学习算法对乳腺癌风险进行评估,并返回相应的诊断结果和建议。首先介绍了基于决策树和随机森林方法的乳腺癌诊断方法,然后阐述了系统的总体框架和数据处理方法,包括数据收集和处理、数据清洗和预处理、特征工程、模型建立、模型优化和迭代。最后,探讨了该项目的应用前景和创新价值,为乳腺癌的早期诊断和治疗提供了一种可行的思路和方法。
关键词:机器学习;随机森林;数据处理;模型优化
中图分类号:TP182 文献标识码:A
文章编号:1009-3044(2024)17-0049-04 开放科学(资源服务)标识码(OSID) :
0 引言
乳腺癌是一种严重威胁女性健康的恶性肿瘤,其发病率在女性中居于第一位[1]。目前,乳腺癌的早期诊断和治疗是提高治愈率和生存率的关键。然而,由于病因复杂且症状不易察觉,现有的乳腺癌筛查方法存在一定的局限性。因此,开发一个基于机器学习的乳腺癌诊断网站,可以更加准确、快速地进行风险评估,有助于提高早期诊断的准确性和及时性,从而降低乳腺癌带来的健康风险和经济负担。
机器学习是一种能够从数据中学习和自适应的人工智能方法,近年来在医疗领域得到了广泛应用。本研究旨在利用机器学习算法对乳腺癌进行风险评估,构建一个基于机器学习的乳腺癌诊断网站,为用户提供准确、快速、方便的服务。
1 材料和方法
1.1 数据集
本系统使用了一个由 699 个样本组成的乳腺癌数据集,该数据集包含了 10 个不同的特征。将数据集分为训练集和测试集,其中 80% 的数据用于训练模型,20% 的数据用于测试模型。数据集来源于 UCI 机器学习库中的乳腺癌威斯康星州(原始)数据集。
1.2 肿瘤数据特征
在这项研究中,使用了一个包含 11 个不同属性的数据集,以训练机器学习模型来诊断肿瘤的恶性程度。数据集的基本信息如表 1 所示。
数据集中的最后一个属性是肿瘤的类别,它是输出变量,用于表示肿瘤的类别,数值为 0 表示良性,数值为 1 表示恶性。在机器学习模型中,这个属性用于训练和评估诊断模型的准确性和可靠性。
1.3 机器学习算法
在本研究中,采用了决策树(DT) [2]和随机森林(RF) [3]两种机器学习方法,用于将肿瘤分类为良性或恶性。这两种方法基于 scikit-learn 开源机器学习库实现,并使用 Python 编程语言进行开发和训练。
1) 决策树(Decision Tree, DT) 。 决策树算法是一种典型的分类方法,其结构类似于一个流程图,基于IF-THEN 规则来进行分类。决策树通过递归地将数据集分割成子集来构建树形结构,每个节点代表一个特征,决策节点表示特征的测试条件,叶子节点则代表分类结果。
2) 随机森林(Random Forest, RF) 。 随机森林是一种集成学习方法,由多个决策树组成。每个决策树对数据进行独立分类,并将它们的分类结果进行综合,得到最终的分类结果。随机森林通过引入随机性来提高模型的性能和稳定性,对过拟合具有良好的抗性。
在本文中,应用这两种算法进行分类时,会根据数据的不同特点和算法的不同特点来选择合适的参数,以提高模型的诊断准确性和泛化能力。通过在良性和恶性肿瘤数据集上进行训练和测试,评估这两种模型的性能,并比较它们的优缺点,从而确定最适合实际应用的方法。
1.4 数据预处理
处理上述数据集时,需要进行数据清洗、转换和降维等预处理步骤,以提高模型的诊断能力和效果。具体步骤如下:
1) 异常值、缺失值和重复值处理。 首先,使用统计学方法和可视化手段来检测数据集中的异常值,并采用剔除或替换的方法进行处理。同时,处理缺失值以保证数据的完整性和准确性。重复值也需要被检测并去除,以防止冗余数据对模型的影响。
2) 数据归一化。 数据归一化是为了在建立诊断模型时对所有特征的贡献进行平等的考虑。在这个数据集中,采用标准归一化方法将所有特征缩放到同一个范围内(通常是 0~1) ,从而消除特征之间的量级差异。
3) 特征选择。特征选择旨在从原始的 11 个特征中选出对肿瘤诊断最具贡献的特征。采用统计学方法和机器学习技术来完成这一过程,以减少模型的复杂度并提高模型的诊断准确性。
4) 降维。使用主成分分析(PCA) 方法[4]对数据集进行降维。PCA 通过线性变换将原始数据投影到一个新的低维空间,保留样本的 95% 以上的信息。降维可以减少特征数量,使模型更容易训练和解释,同时增强模型的泛化能力。
这些预处理步骤的目的是清洗和转换原始数据,减少数据集中的噪声和冗余信息,从而提高模型的性能与泛化能力。
2 乳腺癌诊断系统架构设计
2.1 乳腺癌诊断系统总体架构
该系统采用 Django Web 框架作为后端接口开发工具,并以三层架构构建其整体框架:表现层、应用层和后端模型层,如图1所示。这三层协同工作,为系统提供稳健、高效的功能与性能。
2.2 系统主要模块
2.2.1 系统主界面
患者可以通过注册登录后进入到该系统的主界面,进入系统主页面后患者可以看到有关于乳腺癌的简要科普和诊断,历史诊断记录等功能。在主界面中,用户可以根据自己的自身情况选择是否要上传数据进行诊断。如果用户并没有诊断的需求,只是想了解乳腺癌的成因和危害,则可以选择到科普模块进行阅读学习。如果用户需要上传数据进行诊断,可以选择是上传文件自动解析诊断或者手动输入相关参数进行诊断。在诊断完毕后,用户可以在诊断页面看到本次的诊断结果,并且该结果也会保存到数据库中,用户可以在历史记录模块中查询到本次的诊断结果。
2.2.2 诊断模块
根据用户选择的上传数据的模式,后台会进行相应的解析,然后将参数传入训练好的机器学习模型中。通过机器学习的分类诊断能力,系统返回对应的诊断结果。这个机器学习模型具备强大的分类诊断能力,能够准确地分析输入数据,并根据其中的特征进行综合评估。随后,系统将迅速返回对应的诊断结果,从而为用户或医生提供及时有效的诊疗帮助。该系统的核心机器学习模型基于大量高质量数据的训练,以确保其诊断能力的稳定性和准确性。在训练过程中,精心选择并提取了与特定领域相关的特征,从而使模型能够捕捉到潜在的复杂关联和规律,确保模型在处理新数据时能够表现出色。
2.2.3 科普模块
科普模块可以通过给用户科普宣传乳腺癌的相关知识,其主要目标是向用户传递与乳腺癌相关的科学知识和相关宣传信息,旨在提高用户对乳腺癌的认知水平,并促使其对乳腺癌的预防、早期检测和治疗等方面形成全面的了解。科普模块的有效实施将有助于提高早期诊断率,改善患者治疗效果,从而达到促进公共健康的目标。
2.2.4 历史记录模块
历史记录模块是本系统的一个重要模块,其功能在于存储用户通过上传数据进行诊断查询所得到的结果,并为用户提供对比不同时间段多次查询的功能。通过保存和展示多次诊断结果,用户可以深入了解自身情况的变化趋势,从而形成更为全面和准确的认知。一经用户上传数据进行诊断查询,系统将细致地保存该次查询的全部相关信息,包括时间戳、查询参数、诊断结果等。这些数据将被安全地存储在系统的数据库中,以确保数据的完整性和隐私保护。用户可以通过历史记录模块自由访问并查看之前的诊断记录,以及对其进行综合分析和比较。
2.3 系统开发实现技术
本系统的开发前端采用的是React框架[5]实现,后端选择Django框架[6],机器学习的相关算法实现同样选择的Python语言开发。
2.3.1 前端开发实现
前端开发是系统用户与界面交互的入口,我们选择React作为前端框架来实现系统的用户界面。Re⁃act是一种流行的JavaScript库,其核心思想是组件化开发,使得用户界面的构建和维护更加高效和灵活。
在前端开发中,首先进行需求分析和界面设计,明确系统的用户交互功能和页面展示效果。随后,根据设计方案,使用React框架搭建前端应用,并编写相应的组件,实现系统界面的渲染和数据绑定。同时,采用现代化的前端技术,如Redux 用于状态管理、Axios用于与后端的数据交互等,以提升系统的性能和用户体验。
2.3.2 后端开发实现
后端开发负责处理前端发起的请求,并根据业务逻辑处理数据,并将处理结果返回给前端。为了实现高效的后端功能,选择Django作为后端框架。Django 是一个高度集成、易于使用的Python Web框架,它提供了丰富的功能组件,如路由配置、ORM(对象关系映射)、表单处理等,大大简化了后端开发过程。
在后端开发中,首先进行系统架构设计,确定API 接口和数据库模型的设计方案。然后,使用Django框架搭建后端应用,编写相应的API视图函数,用于处理前端请求,并与数据库进行交互。通过Django的ORM,我们能够更便捷地对数据库进行操作,保障数据的安全性和可靠性。
2.3.3 机器学习算法实现
为了对乳腺癌进行分类,本系统采用了DT(决策树)和RF(随机森林)两种常见的机器学习方法。这两种方法都是基于scikit-learn开源机器学习库实现的,并使用Python编程语言进行开发和训练。模型训练完成后,将训练好的模型嵌入到系统后端,以供前端上传数据进行诊断查询时使用。后端将收到的数据传入模型中,进行特征提取和分类诊断,并将诊断结果返回给前端展示。
3 结果
本研究旨在探索基于机器学习的乳腺癌诊断方法,并构建一个具有高度准确性和可靠性的诊断网站。使用公开可用的乳腺癌临床和影像数据集来进行研究。数据集包含了从已诊断出乳腺癌的患者中收集的临床数据和影像数据。这些数据集经过处理和清理,以确保它们的完整性和一致性。
研究使用DT(决策树)算法和RF(随机森林)算法来建立乳腺癌诊断模型,并对模型的性能进行评估。使用ROC曲线[7]和交叉验证[8]来评估模型的准确性和可靠性。DT(决策树)算法和RF(随机森林)算法来建立乳腺癌诊断模型的ROC曲线如图2所示。本研究对两个模型分别进行了50次的5折交叉验证,分别记录了两个模型的准确率、召回率以及F1分数。
经过交叉验证的精准率如图3所示。
经过交叉验证的召回率如图4所示。
经过交叉验证的F1分数如图5所示。
从实验数据来看,RF算法模型的ROC曲线明显优于DT算法模型的ROC曲线,并且在50次交叉验证实验中,RF算法训练的模型的精准率、召回率和F1分数均优于DT算法训练的模型。因此,可以说明在本研究的数据集上,使用RF算法优于使用DT算法。
总的来说,该研究探索了基于机器学习的乳腺癌诊断方法,并构建了一个具有较高准确性和可靠性的诊断网站。
4 展望
本研究使用机器学习算法构建了一个基于公开临床数据的乳腺癌诊断网站。通过分析患者的数据,网站可以为患者提供快速、准确的诊断结果,并提供相应的治疗建议。结果表明,RF算法具有较高的准确率,可为临床医生提供辅助决策。
未来,将进一步完善网站的功能,加入更多的临床数据和影像数据,以提高诊断的准确性和稳定性。同时,将探索更多的机器学习算法,例如深度学习算法,以提升乳腺癌诊断的精度。此外,还将探索更多的应用场景,如基于机器学习的肿瘤诊断、糖尿病诊断等,为医疗健康领域的发展作出贡献。
参考文献:
[1] 杨淑芬.基于机器学习算法的乳腺癌及亚型的分类研究[D].武汉:中南财经政法大学,2022.
[2] 邵旻晖. 决策树典型算法研究综述[J]. 电脑知识与技术,2018,14(8):175-177.
[3] 姚登举,杨静,詹晓娟.基于随机森林的特征选择算法[J].吉林大学学报(工学版),2014,44(1):137-141.
[4] 赵蔷.主成分分析方法综述[J].软件工程,2016,19(6):1-3.
[5] 敖曼.基于react实现前端组件化开发的研究与实现[J].长江信息通信,2021,34(7):77-80.
[6] 韦平安.基于Django的网络学习平台的开发与应用[J].山西电子技术,2023(2):71-73.
[7] 柴婕,刘香丽,刘瑞东,等.logistic回归结合ROC曲线在乳腺癌中的诊断价值[J].河南医学高等专科学校学报,2023,35(5):485-489.
[8] 范永东.模型选择中的交叉验证方法综述[D].太原:山西大学,2013.
【通联编辑:唐一东】
基金项目:成都师范学院大学生创新训练项目:基于人工智能的在线乳腺癌评测系统(项目编号:S20221439143) ;成都师范学院教改项目(项目编号:2021JG64)