机器学习方法在哮喘早期预测和诊断中的应用
2021-12-21刘宁
刘宁
(杞县人民医院 呼吸内科,河南 开封 475200)
哮喘是常见慢性呼吸道疾病,发病率逐年升高[1],我国是哮喘病死率最高的国家之一,给我国带来巨大的社会负担和医疗负担[2]。哮喘的症状在其他呼吸道疾病中也同时存在,而人工智能技术可以使哮喘诊断快速、准确、知识化[3]。机器学习是一门人工智能的科学,可以在经验学习中改善具体算法的性能[4]。从本质上来说,机器学习就是使计算机模拟人的学习行为,通过自动的学习获取知识,不断改善自身性能,最终实现人工智能。机器学习的主要算法有回归算法、神经网络、支持向量机、聚类算法和推荐算法等[5]。神经网络的诞生与大脑工作机理的研究密切相关,神经网络学习机理包括分解与整合[6]。一个简单的神经网络架构包括输入层、隐藏层和输出层,所有的层再组成神经网络[7]。深度神经网络是一种用于图像分析的非线性回归分析方法[8]。支持向量机是一种基于统计学习理论的新型学习机,是结构风险最小化方法的近似实现[9]。本研究选取了571名呼吸系统疾病患者,并选取了哮喘诊断时常用的22个指标,使用逻辑回归分析、支持向量机和深度神经网络3种算法对哮喘进行预测,比较这三种算法在哮喘预测和诊断过程中的准确性。
1 资料与方法
1.1 一般资料选取2020年1月至2021年6月杞县人民医院收治的370例哮喘患者和201例其他呼吸道疾病患者作为研究对象,哮喘的诊断是基于《呼吸疾病诊疗指南·第3版》中的哮喘的诊断标准,根据患者的症状史,并结合实验室和影像学检测最终诊断为哮喘。其他呼吸道疾病患者包括气管炎、支气管炎和肺炎等患者。哮喘患者中男220例,女150例,年龄18~81岁,平均(50.8±7.21)岁。非哮喘患者中男130例,女71例,年龄20~88岁,平均(54.2±6.89)岁。本研究经医院医学伦理委员会批准,所有受试者均签署知情同意书。
1.2 输入记录在哮喘患者的病历中,有22条与诊断相关的输入记录如下。(1)症状-身体特征:年龄、性别(二分类变量,女性=0,男性=1)、听诊气喘情况(二分类变量,是=0,否=1)、咳嗽时间、气喘时间、每日症状变化、重复症状、过敏疾病史、家族过敏史、吸烟史。(2)生化分析:外周血嗜酸性粒细胞数量、外周血嗜碱性粒细胞数量、总IgE值和气-骨特异性IgE阳性(二分类变量,是=0,否=1)。(3)肺功能测试:第1秒用力呼气容积(forced expiratory volume in one second,FEV1)占预计值的百分比、50%肺活量(V50)、25%肺活量(V25)、V50/V25、使用支气管扩张剂后FEV1增加容积、使用支气管扩张剂后FEV1增加容积百分比和呼出气一氧化氮。(4)使用甲胆碱激发的支气管激发试验:气道高反应性(二分类变量,是=0,否=1)。
1.3 分析方法使用逻辑回归分析、支持向量机和深度神经网络3种算法评估哮喘诊断的准确性。使用Keras代码结合谷歌的Tensor Flow。在张量流显式初始化变量的处理中,输入是用数据相关初始化来衡量标准化。随机分出80%的数据做为训练数据,其余20%的数据作为每个系统的测试数据。机器学习技术有调整参数,例如深度学习中的神经元数量、批量大小、激活函数等,也称为超参数。由于使用所有的数据样本对超参数进行调优可能会导致过拟合,因此,使用训练数据对超参数进行调优。Talos软件包的数据库用于自动模型调整超参数学习。
逻辑回归分析通过使用sigmoid型函数估计概率将数据集分类,它被构造为一个单层的简单神经网络。在进行逻辑回归分析时,网络层分为输入层、隐藏层和输出层。输入层是线性的,只负责从网络内部结构传输数据。隐藏层和出口层是sigmoid类型,并在网络上执行计算。
在支持向量机模型中,对于二值分类支持向量机,使用了线性或辐射基函数(radial basis function,RBF)核,未进行其他特征提取或特征量选择,因此,匹配深度学习训练中使用的输入数据的标准。网格搜索的评分是根据评分数据的10倍交叉验证获得的平均AUC接收器工作特征进行的。训练和验证中使用的数据集与深度学习模型中使用的数据集相同。
另外,构建了一个深度学习模型,在分类系统中使用图1所示的深度神经网络。深度神经网络是由多个隐藏非线性层组成的前馈神经网络。它以一组权重矩阵、偏置向量和一个非线性激活函数为特征。超参数优化选择哪个参数是激活函数、网络结构、批量大小和周期数的最佳学习方式。在正向传播中,激活网络的激活函数为隐藏层的整流线性单元(relu)或正切双曲函数(tanh),输出层的激活函数为sigmoid型。在所有因素都输入的情况下,网络结构示例如图1所示。其结构为22-18-18-18-1,其中输入层22个节点,隐藏层18个节点,随后隐藏层重复2次,输出层1个节点(哮喘,是=1,非=0)。在传播过程中,选择“relu”作为调优超参数的激活函数。
图1 深度神经网络结构
2 结果
2.1 逻辑回归分析当输入因素仅为症状-身体特征时,诊断准确率为65%;当输入因素为症状-身体特征+生化检测结果时,诊断准确率为68%;当输入因素为症状-身体特征+生化检测+肺功能检测时,诊断准确率为82%;当输入全部因素时,诊断准确率提升至94%。
2.2 支持向量机当输入因素仅为症状-身体特征时,诊断准确率为62%;当输入因素为症状-身体特征+生化检测结果时,诊断准确率为64%;当输入因素为症状-身体特征+生化检测+肺功能检测时,诊断准确率为75%;当输入全部因素时,诊断准确率提升至82%。
2.3 深度神经网络当输入因素仅为症状-身体特征时,诊断准确率为68%;当输入因素为症状-身体特征+生化检测结果时,诊断准确率为70%;当输入因素为症状-身体特征+生化检测+肺功能检测时,诊断准确率为88%;当输入全部因素时,诊断准确率提升至98%。
2.4 3种方法的AUC比较逻辑回归分析、支持向量机、深度神经网络3种方法的ROC曲线如图2所示。3种模型对所有22个输入进行了训练,其中逻辑回归分析的AUC为0.97;支持向量机的AUC为0.83;深度神经网络的AUC为0.99。见图2。为了评估分类模型之间的AUC差异,DeLong法检测ROC曲线显示,深度神经网络与支持向量机之间以及深度神经网络与逻辑分析之间差异有统计学意义(P<0.05)。
图2 3种分析方法的ROC曲线
3 讨论
本研究的目的是开发一个智能系统来诊断哮喘,将临床特征作为输出,用机器学习方法诊断是否为哮喘,结果可以看出,使用深度神经网络诊断哮喘,如果输入了完整的患者信息,其诊断准确率达到98%。
计算机辅助诊断是提高诊断准确性的一种有用方法,它涉及到将专家提供的信息与机器学习方法相结合。机器学习可以利用完整的临床信息准确地诊断哮喘。Zolnoori等[10]研究表明,一个用于检测儿童哮喘的计算机智能系统被称为预测哮喘的模糊智能系统,是100%正确的。另一项研究比较了用于预测儿童哮喘持续时间的统计方法,发现贝叶斯分析的准确性可达86%,而人工神经网络的准确率约81%[11]。人工神经网络有潜力成为一种更广泛使用的分类算法,但由于参数调整过程耗时,可选择的神经网络结构类型众多,以及用于训练人工神经网络的算法数量多,所以它的使用频率较低。在这项研究中,确定深度神经网络可以高效准确地诊断成人哮喘。
使用神经网络的模型往往难以分析大量输入的系统,这是因为系统训练所需的时间较长,并且在训练期间模型可能会过拟合。在本研究中,为了避免过拟合,对超参数进行了调整,从而在准确率和丢失率上都可以确定训练和验证进度的收敛性。
在比较3种算法诊断成人哮喘的准确率时,本研究发现深度神经网络的检测准确率最好,总体准确率为98%。目前,深度神经网络的应用在准确性和数据处理方面都比支持向量机算法有很大的优势。支持向量机算法是一种非常流行的并且研究的比较深入的监督学习模型,它不适用深度学习的计算能力。与支持向量机相比,深度神经网络能够更准确地对数据进行分类。本研究中逻辑回归分析模型与深度神经网络在诊断哮喘时准确性相似,可能是因为该逻辑分析模型是一个简单的神经网络,无隐藏层,并且有监督机器学习。
在深度神经网络发展中最重要的因素之一是选择合适的结构和使用最优的数据输入。本研究使用一种带超参数调优的深度神经网络算法,使用超参数优化了模型架构。并用十倍交叉验证方法测试了任务分类器的性能。评价结果表明,该分类器具有较高的查准率和查全率。通过统计方法选择最优的数据作为网络的输入,可以选择在网点中效率最高的数据量。本研究的结果与以前的一些报告一致,发现30%的哮喘患者被医生诊断为哮喘时,未使用客观测试。相比之下,本研究发现基于症状体征作为输入数据,深度神经网络模型诊断成人哮喘的准确率约为70%。
不过本研究得出的结果也说明,疾病诊断要根据具体情况进行分析,在特定情况下,有可能证明其中一种技术优于其他技术,这种技术可能比其他技术更适合于分析这种特定情况。在某些情况下,支持向量机在诊断准确率上优于深度学习算法[12]。
综上,深度神经网络能够根据所有临床数据准确预测疾病。深度神经网络的方法比传统的机器学习方法更准确,可以用于医生诊断哮喘时的助理服务,这一研究可以提高医生诊断时的准确性。该技术值得在临床推广应用。