客服电话:15682930301

医学论文

当前位置: 毕业论文>医学论文 > 正文

嵌入重采样技术的C4.5决策树集成分类算法的临床医学预测

发布时间:2020-03-20 11:42文字数:7429字

  摘要:先进的医学设备和数据采集技术产生了大量医学数据,这些医学数据对于疾病的诊断、治疗和医学研究都是非常有价值.决策树作为一种经典的分类算法,因其分类规则简单易懂而被广泛应用于医学数据分析中.然而,医学数据的样本不平衡问题,使得决策树算法的分类效果降低.数据重采样是目前解决样本不平衡问题的常见方法.其主要通过改变样本分布来提升少数类样本的分类性能.现有重采样方法往往独立于后续学习算法,采样后的数据对于弱分类器的构建不一定有效.基于此,本文提出一种基于C4.5决策树的混合采样算法.该算法以C4.5决策树为迭代采样的评价准则控制过采样和欠采样的迭代过程,同时依据数据的不平衡比动态更新过采样的采样倍率,最终以投票机制组合多个C4.5分类器预测结果.通过在9组UCI数据集上的对比实验,证明了本文所提算法有效性,同时RuSE算法也在稽留流产数据上实现了准确的预测.
 
  关键词:不平衡数据;数据重采样;决策树;集成学习;混合采样;稽留流产
 
  0引言
 
  信息技术在医疗领域的广泛应用,促进了医疗机构的信息数字化;同时,电子病历和病案在医院的普及,使得医院数据库产生了大量医学数据.这些医学数据对于疾病的诊断、治疗和医学研究都是非常有价值.分类作为数据挖掘领域中的重要技术之一,通过对医学数据中的患病样本和正常样本进行构建模型,并利用这些分类模型实现对未知医学数据的诊断.决策树作为一种经典的分类算法,因其分类精度高、计算效果高等优点而被广泛应用于医学数据分析中.然而,有研究表明医学数据的高度不平衡性极大损害了决策树的分类性能.
 
  2控制与决策
 
  数据重采样是解决数据不平衡问题的常见方法,依据采样方式不同分为欠采样、过采样以及混合采样.欠采样中以随机欠采样最为常见,通过随机删除多数类样本达到样本均衡的目的.然而,随机删除样本容易导致重要信息被舍弃,具有一定盲目性.因此,有学者提出编辑最邻(EditedNearestNeighbours,ENN)[6],通过删除那些周围为少数类样本的多数类样本,该算法虽然可以有效的删除多数类样本,但多数类样本周围往往都是多数类样本,删除的样本十分有限.因此,有学者基于k近邻中心,并依据聚类中心执行欠采样;也有学者[10]基于聚类欠采样的思想,并将其与集成学习方法结合使用,以提升对少数类样本的识别率.
 
  与欠采样相反,过采样通过合成少数类样本来提升少数类的样本数目.少数类样本合成技术(SyntheticMinorityOversamplingTechnique,SMOTE)[11]是最为经典的过采样算法,通过随机选择少数类样本和其近邻进行线性插值,生成了无重复的少数类样本,有效的避免了过拟合现象.但是,该算法容易产生噪声样本和边界样本,这对于分类算法的模型构建极为不利.为此,相继出现了一系列SMOTE的改进算法,如Borderline-SMOTE[13]和ADASYN-SMOTE[14]等.近年来,有学者[15]考虑到数据集正负类样本间的类间距离、类内距离与不平衡之间的联系进行过采样.也有学者[16]提出将聚类思想引入过采样中,即重新对数据进行聚类分簇,然后使用在簇内进行过采样.
 
  基于欠采样和过采样的方法都有各自的优缺点,为了取得良好的采样效果,可以将两种方法结合使用.首先使用过采样方法对少数类样本进行线性插值;然后再使用欠采样方法删除多数类和之前合成的噪声样本.如Batista等[17]提出了SMOTE与ENN相结合的算法,能很好的克服SMOTE的噪声问题;陶新民等提出基于SVM的ODR-BSMOTE的混合采样算法,在实现样本平衡的同时,更多的删除噪后果也是十分严重的.因而,本文在混合采样的基础上提出一种基于C4.5算法的混合采样算法(RuSE)该算法的核心原理是混合采样的多次迭代采样的过程,即首先使用改进SMOTE算法对少数类样本进行线性插值;然后再使用ENN欠采样对合成后的样本进行去噪.该算法的优势在于:针对SMOTE算法依据样本不平衡比而设置的过采样倍率,本文提出一种动态更新的过采样倍率,当两类样本差距较大时,过采样倍率依据两类不平衡设置;当两类样本差距较小时,过采样倍率依据增加一定百分率来设置.对于ENN欠采样模块,与传统的欠采样模块不同的是,本文提出使用C4.5决策树来检测每轮欠采样后样本的分类性能.为了删除更多的噪声样本,通过多轮的混合采样过程,使得两类样本的类别动态变化.此外,在RuSE混合采样的迭代过程中,增加了一种新的停止策略,即使用欠采样后的样本数目未发生改变,则停止迭代采样过程.通过在多个高度不平衡的UCI数据集与已有采样算法的对比实验,验证了本文所提混合采样算法的可靠性.最后,将本文所提采样算法应用于私有医学数据中,并实现了稽留流产的准确预测.
 
  1集成决策树
 
  1.1决策树
 
  决策树是一种以实例归纳为基础生成树状型分类规则的算法,因其分类规则简单易懂而被广泛应用于医疗领域.本文选取C4.5算法为弱分类器,从一个无次序的实例集合中归纳出分类规则,C4.5算法的模型构建过程可以定义如下:
 
  假设样本集为S,其中每个样本由一个包含m项的属性向量来表示,假设类别属性Am具有k个不同取值,那么根据的不同取值可以将样本集S划分为k个子集.因此,可以得出样本集S对分类的平均信息量:
 
  声样本和重复样本;Li等人[19]使用两个独立的粒子群优化算法,分别对样本进行过采样和欠采样,以较短的时间达到样本平衡的目的.混合采样方法有效的融合了两种采样方法的优点,但采样过程是独立于后续学习算法,混合采样的过程具有一定的盲目
 
  假设条件属性Ai中有t个不同的取值,那么根据Ai的取值,可以将样本集S划分为t个子集.此外,还可以将进一步划分为个子集,每个子集Cpq表示在Ai=aq的条件下属于第p类的样本集合.由此,对属性进行划分后,样本集S对分类的平均信息量为:
 
  2.1传统采样算法的缺点
 
  SMOTE是一种少数类样本合成技术,其核心思想是对少数类样本进行分析,并按照线性插值的方法合成少数类样本,从而解决随机过采样采取简单复制样本导致模型过拟合的问题.SMOTE算法广泛应用于不平衡医学数据中[25],如患病样本通常只有几十或几百,而正常样本却高达上万甚至数十万.设样本集为S={x1,x2,···,xn},选择为少数类样本Si_min,以欧氏距离计算Si_min与其他少数类决策树在属性分裂过程中存在较高的方差,数据集微小的波动就会产生完全不同的分裂,导致分类规则过于复杂,包含了太多的噪声,即产生过拟合现象[24].因此,有学者[2]提出使用Bagging方法组合多个决策树的集成方法,给定决策树和训练样本,通过有放回抽样k次生成k个训练子集.使用决策树对k个子集进行训练得到分类器{C1,C2,···Ck};最后通过投票机制输出预测结果C?(x).因此,本文选取Bagging方法对C4.5算法进行集成学习.因此,基于C4.5的Bagging方法的算法流程如下:
 
  (1)-(4)计算所有属性的信息增益率,选择信息增益率
 
  最大的属性为根节点的分裂属性;
 
  Step3:根据根节点属性值的不同,采取与step2一样的方法递归地建立后继分枝,选择分枝中信息增益率最大的属性进行分裂,如此训练下去,直到所有分枝节点的样本都属于同一类别;
 
  Step4:采用后剪枝策略对生成的决策树进行剪枝操作,防止生成的决策树过拟合;
 
  Step5:对生成的决策树进行剪枝,消除噪声和孤立点等随机因素的影响,以得到简化的决策树;
 
  Step6:将训练集Si生成的分类规则进行提取,并生成对应的基分类器Ci.返回step2重复进行训练,直至生成k个弱分类器{C1,C2,···Ck};
 
  Step7:将上一步得到的k个弱分类器对测试集进行组合预测,并采用投票的方法输出结果:
 
  C?(x)=argmax∑kI(C(x)=y)(5)
 
  假设多数类样本为Si_maj,以欧氏距离计算与其他多数类样本的距离,得到k个最近邻样本.然后从k个最近邻样本中找到数量最多的那个类别,并将类别标签赋Si_maj,样本类别的判别函数可定义如下:
 
  如果Si_maj与其k/2个近邻类别不同,则删除.虽然ENN算法可以删除多数类中的噪声样本和类边界样本,但是多数类样本的近邻往往都属于多数类,能删除的样本个数很少.此外,经过欠采样后的样本可能会面临新的样本边界等问题.
 
  2.2基于C4.5算法的混合采样算法
 
  单一过采样和欠采样均能使样本平衡的目的,但采样后的样本对集成学习的弱分类器构建不一定
 
  4控制与决策
 
  成的质量问题.基于此,本文提出将SMOTE和ENN相结合使用.与传统的混合采样不同的是,本文所提混合采样通过动态设置过采样倍率对数据样本进行多次迭代的混合采样,通过设置一个阈值,当欠采样后的多数类样本数目少于设定的阈值时,即停止混合采样的迭代过程.此外,在混合迭代采样的过程中,使用C4.5算法的分类性能检测最佳采样比.
 
  RuSE算法的工作原理可分为两部分:首先使用动态更新采样倍率的SMOTE算法那对少数类样本进行过采样;然后再使用ENN算法对合成后的样本进行欠采样,用于删除合成后的噪声样本和边界样本.此外,增加一种RuSE算法迭代采样的终止策略,即欠采样后多数类样本的数目未发生改变时,则终止迭代采样.为了解决ENN算法删除的多数类中的噪声样本有限,动态过采样倍率可以分为两种:1)当少数类样本远少于多数类样本时,过采样倍率使用多数类和少数类样本的数目比作为采样倍率.可以
 
  Step3:设置合成样本计数Csyn,根据欧式距离查找Si_min的k个最近邻样本,并将其索引存入Kmin[]中;
 
  Step4:随机生成一个0到1之间的实数ttap,根据公式(6)合成少数类样本,并将合成的样本加入样本集S中;
 
  Step5:Csyn=Csyn+1,如果Csyn<Ssyn,返回step2,否则继续执行.否则结束对Si_min的操作,将合成的少数类样本加入数据集S中;
 
  Step6:使用C4.5算法对过采样的样本集进行建模训练,并将其存入Eva[].比较Eva[]和Evabest[]的大小,将最大值存入Evabest[]中;
 
  Step7:设置删除样本计数Cdel=0,在多数类中查找Si_maj的k个最近邻样本,并将其索引存入Kmaj[]中;
 
  Step8:根据类别判别函数判断多数类样本
 
  由式(13)可知,当样本类别不平衡时,按照MCC的定义可知,MCC的值通常远小于Sensitivity和Specificity.因为此时,TN和FP是一个数量级,远远大于TP和FN.因此选取MCC
 
  UCI数据集和私有医学数据集进行实验.其中数据可分为验证数据和医学数据两部分.这些数据都是高度不平衡的,对于多类别数据,按照多个少数类合并为一个类别的做法.表1给出了各数据集的样本数目、属性个数、少数类样本数目以及两类样本比.
 
  排出机体,胎盘溶解产生溶血活酶进入母体血液循环,导致患者易合并凝血功能障碍,甚至危及患者生命.有研究表明[29]甲状腺功能异常是导致孕妇稽留流产的主要原因之一.因此在发病之前的检测是避免稽留流产发生的有效手段之一.因此,本文选取了某医院的孕妇的甲状腺体检样本作为应用实验数据集.
 
  3.3实验结果
 
  3.3.1RuSE算法的迭代采样
 
  本节主要是RuSE算法的迭代采样实验,通过设置程序中断来记录每一轮采样后数据样本的分类性能.其中,使用C4.5算法作为评估算法来测试采样后的样本集.实验共分为两部分,首先是使用改进SMOTE算法对少数类样本进行线性插值;然后再使用ENN算法对多数类样本进行筛选.记录了RuSE算法迭代采样过程中的数据样本的分类性能.
 
  随着迭代采样的递增,Sensitivity和Specificity指标的走势是相同的.而F?value值和MCC值变化趋势是不同的,其中F?value值随迭代次数的递增有增有减,观察发现其递减往往发生在过采样后,而在欠采样后又有所提升,这可能是由于在过采样时合成了较多的边界样本导致少数类的分类性能受到影响.MCC值随迭代次数的增加基本呈现逐步递增的趋势,因此在迭代过程中,多数类的分类性能也有所提升.综合考虑,我们选择以MCC指标作为评估标准选择迭代次数最优的采样比例.
 
  3.3.2采样算法对比实验
 
  本节主要在UCI数据集上将RuSE算法与传统算法进行对比,对比算法分别为:SMOTE(SM)[11]、Borderline-SMOTE(BSM)、ADASYN-SMOTE(ASM)[14]三种过采样算法;ENN[6]、TomekLinks(TL)[8]、InstanceHardnessThreshold(IHT)[30]三种欠采样算法。
 
  6控制与决策
 
  ENN(SM+ENN)以及TomekLinks(SM+TL)[17]相结合的混合采样算法.其中,三种过采样算法的最近邻个数统一设置为5,Borderline-SMOTE算法的参数m
 
  设置为10.此外,本文使用C4.5算法对采样后的数据进行测试.
 
  经过RuSE采样后的数据的分类性能都普遍高于对原始数据直接分类的C4.5算法.对比RuSE算法和传统采样算法可知,RuSE算法Sensitivity、Specificity和MCC在各个数据集上的平均值分别为95.67%、94.51%、91.11%,显著优于其他采样算法的平均值.在abalone数据集上不如IHT算法,主要是由于其根据实例硬度能够删除多数类样本.因此,abalone数据集存在过多的多数类噪声样本,单纯的合成少数类样本并不合适.
 
  混合采样中SMOTE+ENN算法明显优于SMOTE+TOMEK,且SMOTE+ENN在大部分数据集上的三个性能指标都很高,过采样中ADASYN算法的各项性能指标都优于其他采样算法,而ADASYN算法在SMOTE算法的基础上进行了改进,明显减少了噪声样本的合成.而欠采样中的IHT算法则相对优于ENN和TOMEK算法.通过纵向对许召召等:嵌入重采样技术的C4.5决策树集成分类算法的临床医学预测比这三类方法可知,混合采样和过采样相对优于欠采样算法,而进行多次ENN欠采样可以有效地删除样本中的噪声样本.集成方法对比实验.
 
  3.3.3集成方法对比实验
 
  通过与传统采样算法对比实验可知,RuSE算法取得了更好的效果.然而以C4.5算法为评估准则的混合采样算法可能存在一定的局限性,即采样后的数据可能只适用于C4.5决策树.因此,本文使用另外三种决策树算法进行对比验证.此外,实验中还对比了Bagging方法对决策树进行集成后的效果.四种决策树算法在9个UCI数据集上的三种性能指标的结果如表5和6所示,最后一行为算法在所有数据集上的平均值.
 
  在原始UCI数据集上,四种决策树以及Bagging算法的分类性能都是较差的,如在balance数据集上,所有算法的MCC值都是不存在的,因此数据的不平衡严重影响了算法的分类性能.观察eighthr和wpbc数据集可知,虽然Bagging方法可以有效地提升不稳定算法的分类性能,但对于不平衡数据而言,数据的不平衡度越高,Bagging方法的分类性能反而越差.此外,我们通过对比5个UCI数据集的平均值可知,C4.5算法的分类性能要好于其他算法,这也是本文选取C4.5算法为评估准则的重要原因.
 
  经过RuSE算法采样后的数据,四种决策树算法以及Bagging方法的分类性能都有了显著的提升.未进行集成学习之前,C4.5算法在大部分数据集上都取得了很好的效果,其中平均值为90.27%.而经过Bagging集成后的分类结果是REPTree算法.由此可知.选取C4.5算法作为混合采样的评估指标合成后的样本集同样适用于其他分类算法.此外,经过混合采样后的数据集在C4.5算法以及Bagging方法上有了显著的提升,分别为27.66%和25.63%.同样的,在另外三种决策树算法上具有同样的结果.
 
  3.3.4医学数据诊断预测
 
  在医学数据中,样本分布存在严重的不平衡性,正常样本往往是病例样本的几倍甚至数十倍,因此,医学数据是一种典型的不平衡数据集.本文选取了某医院近一年孕妇的甲状腺功能体检样本作为训练样本,通过专家经验和特征选择选择了甲状腺功能
 
  8控制与决策
 
  异常、临床甲减、亚临床甲减、甲状腺抗体阳性和单纯甲状腺抗体阳性等8个离散属性的稽留流产数据集.使用采样算法对稽留流产数据进行采样.
 
  RuSE算法和传统采样算法的三种性能指标都普遍高于对原始数据集进行分类的C4.5算法.对比RuSE算法和其他采样算法可知,RuSE算法采样后的稽留流产数据具有更高的分类精度,尤其是Specificity指标提升的幅度最大.与在UCI数据集上的对比实验一样,混合采样算法的性能优于其他采样算法,SMOTE+ENN的MCC值为92.7%.对比RuSE算法和SMOTE+ENN算法可知,RuSE算法显著提升了预测稽留流产检测的准确性.
 
  经过RuSE算法处理后的稽留流产数据在四种决策树算法上的Mcc值都有了显著提升.与决策树算法相比,Bagging方法提升的幅度较小,这是因为Bagging方法能够显著提升不稳定分类算法的分类性能,虽然决策树是不稳定的学习算法,但经过RuSE算法处理后的激流数据变得更加稳定.
 
  4结论
 
  医学数据挖掘是数据挖掘领域的重要研究方向,对于发现疾病发病规律、疾病危险因素以及寻找治疗方案具有十分重要的研究价值.传统的决策树算法以总体分类精度为优化目标,往往会倾向于比例较大的类,从而淹没了少数类样本的信息.然而,医学数据往往是不平衡的.因此,本文提出了一种基于C4.5的混合采样算法(RuSE),该算法主要分为两个部分,首先对不平衡数据进行过采样,使用SMOTE算法合成少数类样本;然后再使用ENN算法对合成的噪声样本进行删除.以决策树算法的分类性能作为混合采样的迭代停止准则.此外,针对决策树存在的不稳定现象,我们提出使用Bagging算法对C4.5决策树进行集成.通过在多个UCI数据集上的对比验证,得出本文所提混合采样算法的有效性和优越性.最后,将我们提出的算法应用于真实医学数据集上,取得了很好的效果.

移动版:嵌入重采样技术的C4.5决策树集成分类算法的临床医学预测

本文标签: