基于学习的乳腺肿瘤诊断_第1页
基于学习的乳腺肿瘤诊断_第2页
基于学习的乳腺肿瘤诊断_第3页
基于学习的乳腺肿瘤诊断_第4页
基于学习的乳腺肿瘤诊断_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于学习的乳腺肿瘤诊断【摘要】乳腺癌在众多的癌症中已成为当今世界女性病发率最高癌症,使得当今的医学不得不对其高度重视。每年新增乳腺癌患者和死亡人数一直持明显的上升趋势,对女性健康带来的危害极大。因此,仍需把解决乳腺肿瘤放在当今医学面对问题的重要位置。如果能在早期发现乳腺恶性肿瘤,在早期进行乳腺肿瘤治疗,可取的良好的效果。在过去的乳腺肿瘤诊断,专家依靠医学影像等信息进行主观判断,具有很多大的主观性,错误率较高。为了提高和改进乳腺肿瘤的诊断方法。近年来的人工智能发展,人工神经网络的思想成熟和应用,使得具有学习能力和适应环境能力的学习算法新型自动诊断方法应用到乳腺肿瘤诊断之中。可以作为医疗诊断的辅助诊断方法,来提高诊断效率,正确率,对于及早的发现和治疗早期的乳腺肿瘤的患者具有重要意义。【关键词】乳腺肿瘤诊断学习算法神经网络1.引言乳腺肿瘤已成为世界女性在癌症中并发最多的癌症。每年我国的乳腺癌症患者也持逐年上升趋势。在当前的医疗技术中,超声诊断仍然是应用最广泛的手段。依靠专业医生对图像信息进行主观判断,容易出现误判。使用新型的计算机辅助诊断可以提高乳腺肿瘤的准确率,早期发现乳腺肿瘤会对患者的治愈起到举足轻重的意义。乳腺肿瘤以计算机为载体的自动辅助诊断系统使用肿瘤的图像信息、纹理等特征来对肿瘤良恶性的进行分类。人工智能和大数据,是人类近年来快速发展的新方向。人工神经网络(artificialneuralnetworks)又称之为NN系统,是近年来发展的新的具有学习能力和适应环境能力的一种思想技术。是以大脑的组织结构和运行机构机制出发来探寻的新型思想。以生物仿生技术角度上,以模仿人脑智能,来探寻新的信息表示,存储和处理模式。寻求更具有人工智能,具有学习能力和适应环境能力的方法来解决实际工程和科学研究领中的问题。在神经网络发展中,已形成多种常用神经网络学习算法和相关理论,如BP神经网络,RBF神经网络,遗传算法,核方法和支持向量机,竞争学习的SOM,LVQ算法等等。人工神经网络在模式识别和分类中具有较广研究和成果,如BP-Adaboost强分类器,SVM分类与回归,极限学习EML预测函数elmprediict,SOM神经网络的数据分类广义神经网络的聚类算法,BP神经网络,Kohonen网络的聚类算法等。在乳腺肿瘤诊断中,可以简单看成是对肿瘤细胞的二分类。即为良性肿瘤和恶性肿瘤。目前的乳腺肿瘤的鉴别方法主要是基于形态学的,诊断具有不确定性。新型的具有应用大数据学习能力和适应环境能力的新型的用人工神经网络算法自动诊断方法可以进行辅助诊断。提高诊断效果。过去,根据乳腺肿瘤病灶组织的细胞核显微图像对乳腺肿瘤属于良性和恶性进行诊断。在以神经网络学习算法诊断中,是以细胞核图像数据进行量化特征,包括细胞核图像的细胞核的半径,质地周长,面积和光滑性等10项属性特征。建立一种学习算法模型来寻找各个量化特征与肿瘤在性质的关系,通过学习算法根据细胞核显微镜图像的量化特征来判别乳腺肿瘤是良性或者是恶性的。在已有的分类算法应用中,有不少的分类算法亦可以在乳腺肿瘤分类诊断中应用。其中学习向量量化神经网络,决策树分类器,和随机森林思想的组合分类器在乳腺癌诊断中具有良好的结果。2.基于MATLAB神经网络模型的建立:随着神经网络思想的成熟,MATLAB的版本的提高,对应的MATLAB的神经网络的工具箱的具有丰富的学习函数算法。在神经网络的工具箱中,我们可以直接调用很多的经典的神经网络学习算法,我们可以依靠这些学习算法快速的实现对我们需要解决实际的问题的建模。依靠MATLAB神经网络工具箱提供的而各种函数实现对自己问题的解决。虽然MATLAB的工具箱的函数有多种多样,建模的实际情况千秋万别,但建模设计的思路具有相似先。利用神经网络函数对乳腺肿瘤的模型建立的主要设计步骤如下。数据采集对需要进行分类的数据采集神经网络模型的创建利用MATLAB自带的神经网络工具箱中的函数或者是后来开发的工具箱调用函数。其中newlvq()函数可以创建LVQ神经网络,函数ClassificationTree.fit用于创建一个决策分类器。classRF_predict()函数可以创建一个随机森林分类器。神经网络的训练在网络创建之后,对已经调用的函数参数进行设置与修改,便可以对网络进行训练。神经网路的仿真神经网络的结果分析通过对网络仿真的结果进行分析与处理。以仿真的数据进行可行性的分析,并可对不同的神经网络算法之间结果进行对比。3.学习向量量化(LeaningVectorQuantization)神经网络学习算法在乳腺肿瘤的诊断:学习向量量化(LVQ)是一种导师训练的竞争层的方法。在有些资料中将LVQ的结构分为竞争层和线性层两层。也有一些将它分为输入层,竞争层和线性层三层。竞争层可以自动学习识别输入向量。竞争层的识别的分类只与与输入向量之间的距离有关。如果两个输入向量类似,竞争层就将它们归为一类。其中竞争层的作用就是对于输入向量进行分类:而线性层的作用是将竞争层传递过来的信息转换为使用者所需要的期望类别。通常我们将竞争层学习得到的类称之为子类,而把经由线性层的类为期望类别。Lvq的网络结构如图所示。LVQ的网络结构竞争层和线性层每一类各有一个神经元。将通过竞争层学习得到n1个子类,这些子类依次与竞争层n2个期望类别组合。(n1>n2)。子类与期望类别组合:假设竞争层的神经元a1,a2,a3都学习了输入空间内且属于线性层的期望类别的子类,即竞争神经元a1,a2,a3连接线性层n2神经元的权值LW2.1都是1,连接其他的神经元的权值都是0.在MATLAB工具箱中,LVQ神经网络的函数为newlvq()函数。用LVQ神经网络算法建模时,都需要事先设置参数,当没有设置参数就会取默认值参数。LVQ学习算法乳腺肿瘤的诊断在MATLAB的实现:以下的实验数据是由威斯康辛大学医院数据库中下载,实验中随机以其中500组数据作为训练集,其他的为测试集,以下的决策树和随机森林法都采用这同一数据。MATLAB的实现如下:%%清空环境变量clearallclcwarningoff%%导入数据loaddata.mata=randperm(569);Train=data(a(1:500),:);Test=data(a(501:end),:);%训练数据P_train=Train(:,3:end)';Tc_train=Train(:,2)';T_train=ind2vec(Tc_train);%测试数据P_test=Test(:,3:end)';Tc_test=Test(:,2)';%%创建网络count_B=length(find(Tc_train==1));count_M=length(find(Tc_train==2));rate_B=count_B/500;rate_M=count_M/500;net=newlvq(minmax(P_train),20,[rate_Brate_M],0.01,'learnlv1');%设置网络参数net.trainParam.epochs=1000;net.trainParam.show=10;net.trainParam.lr=0.1;net.trainParam.goal=0.1;%%训练网络net=train(net,P_train,T_train);%%仿真测试T_sim=sim(net,P_test);Tc_sim=vec2ind(T_sim);result=[Tc_sim;Tc_test]%%结果显示total_B=length(find(data(:,2)==1));total_M=length(find(data(:,2)==2));number_B=length(find(Tc_test==1));number_M=length(find(Tc_test==2));number_B_sim=length(find(Tc_sim==1&Tc_test==1));number_M_sim=length(find(Tc_sim==2&Tc_test==2));disp(['病例总数:'num2str(569)...'良性:'num2str(total_B)...'恶性:'num2str(total_M)]);disp(['训练集病例总数:'num2str(500)...'良性:'num2str(count_B)...'恶性:'num2str(count_M)]);disp(['测试集病例总数:'num2str(69)...'良性:'num2str(number_B)...'恶性:'num2str(number_M)]);disp(['良性乳腺肿瘤确诊:'num2str(number_B_sim)...'误诊:'num2str(number_B-number_B_sim)...'确诊率p1='num2str(number_B_sim/number_B*100)'%']);disp(['恶性乳腺肿瘤确诊:'num2str(number_M_sim)...'误诊:'num2str(number_M-number_M_sim)...'确诊率p2='num2str(number_M_sim/number_M*100)'%']);结果分析:由于每次运行的训练集和测试集所选数据都是随机的,每次运行结果稍有偏差,以下是其中三次运行后的结果。第一次的运行结果:病例总数:569良性:357恶性:212训练集病例总数:500良性:316恶性:184测试集病例总数:69良性:41恶性:28良性乳腺肿瘤确诊:39误诊:2确诊率p1=95.122%恶性乳腺肿瘤确诊:21误诊:7确诊率p2=75%第二次运行结果:病例总数:569良性:357恶性:212训练集病例总数:500良性:314恶性:186测试集病例总数:69良性:43恶性:26良性乳腺肿瘤确诊:41误诊:2确诊率p1=95.3488%恶性乳腺肿瘤确诊:17误诊:9确诊率p2=65.3846%第三次运行结果:病例总数:569良性:357恶性:212训练集病例总数:500良性:313恶性:187测试集病例总数:69良性:44恶性:25良性乳腺肿瘤确诊:44误诊:0确诊率p1=100%恶性乳腺肿瘤确诊:22误诊:3确诊率p2=88%从以上的三组运行情况上看,LVQ学习算法的三次诊断的69组测试集的良性肿瘤正确率分别为93.3333%,92.6829%和90.6977%,恶性肿瘤的正确率为79.1667%,78.5714%和84.6154%。总的平均良性正确率为96.9%,恶性肿瘤的正确率为66.6%。实验数据表明LVQ的肿瘤诊断具有一定的正确率,但恶性肿瘤的错误率偏高。4.决策树神经网络算法在乳腺肿瘤的诊断决策树学习算法可以称作为一种归纳学习算法,是以实例为基础。决策树的思想是从一组无序,无规则的数据中推理出决策树表示形式的分类办法。一般采用自顶向下的递归方式。决策树的示意图如图所示:决策树的思想是通过样本实例从跟节点排列到某个叶子的节点来对其进行分类。树上的每个非叶子节点代表对一个属性取值的测试,分支就代表测试的每个结果。树上的每个叶子节点都代表一个分类的类别,树的最高层节点就是跟节点。简单的说是从树的跟节点开始,它在内部节点上进行属性值测试比较,按照给定的实例属性值确定对应的分支,最后在决策树的叶子节点得到结论。到至今,决策树已有多种实现算法。在国际上具有影响力的为J.R.Quinlan的ID3(IterativeDichotomicversion3)及其改进算法。相比于许多其他的学习算法,决策树分类原理简单,可以更加容易让人理解和实现,同时对数据的要求较低。不需要将数据归一化,如去掉多余的或者空白的属性。具有良好的泛化性。决策树算法乳腺肿瘤在MATLAB中的实现:%%清空环境变量clearallclcwarningoff%%导入数据loaddata.mat%随机生成训练集和测试集a=randperm(569);Train=data(a(1:500),:);Test=data(a(501:end),:);%训练数据P_train=Train(:,3:end);T_train=Train(:,2);%测试数据P_test=Test(:,3:end);T_test=Test(:,2);%%创建决策树分类器ctree=ClassificationTree.fit(P_train,T_train);%查看决策树视图view(ctree);view(ctree,'mode','graph');%%仿真测试T_sim=predict(ctree,P_test);%%结果分析count_B=length(find(T_train==1));count_M=length(find(T_train==2));rate_B=count_B/500;rate_M=count_M/500;total_B=length(find(data(:,2)==1));total_M=length(find(data(:,2)==2));number_B=length(find(T_test==1));number_M=length(find(T_test==2));number_B_sim=length(find(T_sim==1&T_test==1));number_M_sim=length(find(T_sim==2&T_test==2));disp(['病例总数:'num2str(569)...'良性:'num2str(total_B)...'恶性:'num2str(total_M)]);disp(['训练集病例总数:'num2str(500)...'良性:'num2str(count_B)...'恶性:'num2str(count_M)]);disp(['测试集病例总数:'num2str(69)...'良性:'num2str(number_B)...'恶性:'num2str(number_M)]);disp(['良性乳腺肿瘤确诊:'num2str(number_B_sim)...'误诊:'num2str(number_B-number_B_sim)...'确诊率p1='num2str(number_B_sim/number_B*100)'%']);disp(['恶性乳腺肿瘤确诊:'num2str(number_M_sim)...'误诊:'num2str(number_M-number_M_sim)...'确诊率p2='num2str(number_M_sim/number_M*100)'%']);结果分析:第一次的运行结果:病例总数:569良性:357恶性:212训练集病例总数:500良性:312恶性:188测试集病例总数:69良性:45恶性:24良性乳腺肿瘤确诊:42误诊:3确诊率p1=93.3333%恶性乳腺肿瘤确诊:19误诊:5确诊率p2=79.1667%第二次的运行结果:病例总数:569良性:357恶性:212训练集病例总数:500良性:316恶性:184测试集病例总数:69良性:41恶性:28良性乳腺肿瘤确诊:38误诊:3确诊率p1=92.6829%恶性乳腺肿瘤确诊:22误诊:6确诊率p2=78.5714%第三次的运行结果:病例总数:569良性:357恶性:212训练集病例总数:500良性:314恶性:186测试集病例总数:69良性:43恶性:26良性乳腺肿瘤确诊:39误诊:4确诊率p1=90.6977%恶性乳腺肿瘤确诊:22误诊:4确诊率p2=84.6154%从以上的三组运行情况上看,以决策树学习算法的诊断模型三次的69组测试集的良性肿瘤正确率分别为95.1%,95.3%和100%,恶性肿瘤的正确率为75%,65.%和88%。总的平均良性正确率为93.3%,恶性肿瘤的正确率为66%。该实验数据表明决策树学习算的肿瘤诊断也具有一定的正确率,同样的恶性肿瘤的错误率仍然偏高。5.随机森林神经网络算法在乳腺肿瘤的诊断一个随机森林算法中的包含多个决策树的分类器,这些决策树的形成采用了随机的办法。随机森林算法最早由LeoBreiman和AdeleCutler提出随机森林中的树之间是没有关联的。当测试数据进入随机森林是,实质是让每一颗决策树进行分类,最后取所有决策树中分类结果最多的那类为最终结果。Bagging算法的概述:Bagging算法使用了Bootstrap方法重采样,可随机生成多个训练集。输入为样本集D={(x,y1),(x2,y2),...(xm,ym)}D={(x,y1),(x2,y2),...(xm,ym)},弱学习器算法,弱分类器迭代次数T。输出为最终的强分类器f(x)f(x)(1)对于t=1,2...,T:a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集DtDtb)用采样集DtDt训练第t个弱学习器Gt(x)Gt(x)2)如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。随机森林算法(RF)算法随机森林算法是Bagging算法的改进版,它的思想基础是bagging算法,与bagging算法类似都基于Bootstrap方法重采样产生多个训练集,区别在于随机森林在构建决策树后,使用了随机选取分裂属性集的方法。1.随机森林使用了CART决策树作为弱学习器。2.在使用决策树的基础上,随机森林对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是随机森林通过随机选择节点上的一部分样本特征,这个数字小于n,假定为na,,然后在这些随机选择的假设为na个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。当na=n时,随机森林的CART决策树和普通的CART决策树没有区别。na越小,则模型越健壮,当然此时对于训练集的拟合程度会变差。na越小,模型的方差会减小,但是偏倚会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的na的值。除此之外,bagging算法与随机森林算法基本一致。以下是对随机算法的简单说明。输入为D={(x,y1),(x2,y2),...(xm,ym)}D={(x,y1),(x2,y2),...(xm,ym)},弱分类器迭代次数T。输出为最终的强分类器f(x)f(x)1)对于t=1,2...,T:a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集DtDtb)用采样集DtDt训练第t个决策树模型Gt(x)Gt(x),在训练决策树模型的节点的时候,在节点上所有的样本特征中选择一部分样本特征,在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分2)如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。MATLAB自带的工具箱中没有随机森林工具箱,需要在开源工具箱中下载并添加到MATLAB工具箱中。在MATLAB中的实现:%%清空环境变量clearallclcwarningoff%%导入数据loaddata.mat%随机生成训练集和测试集a=randperm(569);Train=data(a(1:500),:);Test=data(a(501:end),:);%训练数据P_train=Train(:,3:end);T_train=Train(:,2);%测试数据P_test=Test(:,3:end);T_test=Test(:,2);%%创建随机森林分类器model=classRF_train(P_train,T_train);%%仿真测试[T_sim,votes]=classRF_predict(P_test,model);%%结果分析count_B=length(find(T_train==1));count_M=length(find(T_train==2));total_B=length(find(data(:,2)==1));total_M=length(find(data(:,2)==2));number_B=length(find(T_test==1));number_M=length(find(T_test==2));number_B_sim=length(find(T_sim==1&T_test==1));number_M_sim=length(find(T_sim==2&T_test==2));disp(['病例总数:'num2str(569)...'良性:'num2str(total_B)...'恶性:'num2str(total_M)]);disp(['训练集病例总数:'num2str(500)...'良性:'num2str(count_B)...'恶性:'num2str(count_M)]);disp(['测试集病例总数:'num2str(69)...'良性:'num2str(number_B)...'恶性:'num2str(number_M)]);disp(['良性乳腺肿瘤确诊:'num2str(number_B_sim)...'误诊:'num2str(number_B-number_B_sim)...'确诊率p1='num2str(number_B_sim/number_B*100)'%']);disp(['恶性乳腺肿瘤确诊:'num2str(number_M_sim)...'误诊:'num2str(number_M-number_M_sim)...'确诊率p2='num2str(number_M_sim/number_M*100)'%']);结果分析第一次运行结果病例总数:569良性:357恶性:212训练集病例总数:500

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论