全国数学建模优秀获奖论文.doc_第1页
全国数学建模优秀获奖论文.doc_第2页
全国数学建模优秀获奖论文.doc_第3页
全国数学建模优秀获奖论文.doc_第4页
全国数学建模优秀获奖论文.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

2007053A肾炎问题模型摘要在充分理解题意的基础上,我们提出了合理的假设。通过对问题的深入分析,我们将本题归结为预测问题,建立了BP神经网络模型。通过对的诊断问题,应用神经网络与模糊数学的理论,给出了肾炎的量化诊断方案首先,建立了BP神经网络模型,使用60组数据的1-25和31-55组作为训练样本,用余下的10组数据对网络性能进行检测进一步考虑到神经网络与模糊数学各自的特点,将二者有机结合构造了神经模糊系统,并用以上的6个特征对系统进行训练本文构造的模型具有良好的稳定性,对于模式识别问题具有很强的实用价值,其次本文提出了神经网络和模糊数学深层次结合的方向接着我们结合现实生活,并对我们的论文进行了优缺点评价。最后在附录中列出了运算数据和主要程序的代码问题的重述 就诊人员可以通过元素分析可以确定其为肾炎或健康有表1可以知道肾炎病人和健康人之间的元素差异,并建立相关模型进行预测。另外,要对其结果通过表2进行检验。为了更好的节约时间,把问题合理的简单化,并按上述步骤建模求解。最后,就是对模型的评价和对比。二 、符号说明与问题假设2.1 问题假设1.是否患肾炎仅由该七种元素的含量决定。2所给的60组病例具有广泛的代表性360组诊断所反映的元素分布符合病例的自然分布2.2符号说明a输入的训练样本的矩阵;n输入的训练样本数量;k输入的训练样本的输出结果;f输入的待测样本;X输入的待测样本的输出结果;(其他符号在文中均附有说明)。三、 问题分析3.1 问题分析和建模思路考虑问题的题设和要求,我们要解决的是诊断人员的诊断预测问题。首先,我们要利用已知的信息及其假设,建立BP神经网络模型。然后通过对已知数据的训练,并通过检验来预测第二组数据。其次,由前面可得问题的主要指标,来改进模型和预测。最后,进行模型的对比,模型的评价。3.2 思路流程图下面的思路流程图是我们文章结构的一个缩影,它完整而形象的反映了我们文章的建模思路健康人的诊断分析肾炎病人的诊断分析假设条件BP神经网络模型模型的检验及其预测模型的改进及其预测模型的对比模型的评价及其推广本文的建模思路流程模型的图四、模型的建立和求解4.1 模型I:人工神经网络(ANN)模型算法简述人工神经网络模拟了生物神经网络的一系列运行机理,它能够像人脑一样处理大量数据,并且输出一个想要的结果。对于任意一组随机的、正态的数据,都可以利用人工神经网络算法进行统计分析,作出拟合和预测。它的拓扑结构如图3所示:图1人工神经网络拓扑结构BP算法是ANN中最常用的算法,我们首先将肾炎病人和健康人的数据视作一个样本集,在训练标本上控制输入(两尅人的的化验数据),在神经元上控制输出(到底是否是病人,是设为1否为0);接下来的训练过程可以分为向前传输和向后传输两个阶段:向前传输阶段: 从样本集中取一个样本,将输入网络;计算出误差测度和实际输出;对权重值各做一次调整,重复这个循环,直到。向后传播阶段误差传播阶段: 计算实际输出与理想输出的差;用输出层的误差调整输出层权矩阵;用此误差估计输出层的直接前导层的误差,再用输出层前导层误差估计更前一层的误差。如此获得所有其他各层的误差估计; 并用这些估计实现对权矩阵的修改。形成将输出端表现出的误差沿着与输出信号相反的方向逐级向输出端传递的过程。网络关于整个样本集的误差测度:42模型I的建立和求解求解神经网络模型是根据人体内神经元之间信息的传递及反馈而建立的模型。具体而言他是通过将神经元进行分层即:不同的层次分配不同的神经元,一般将层次分为输入层、中间层和输出层。通过给不同的层的神经元赋一定的值来将整个神经网络模型进行训练得到模型。最后将待预测的值输入到模型当中直接得出最终结果。在本题中给出了30组肾炎病人和30组健康人的化验结果, 目的是让我们设计方法根据某人的化验结果判断他是否为肾炎病人,可以从30组肾炎病人和30组健康人的化验结果中选择一部分作为输入样本,建立BP神经网络模型。然后利用剩余的化验结果对模型进行检验,进而对模型作改进。在表B2中应用模型,对30就诊人员的化验结果作出判断。 神经网络模型模型的简介我们为何要利用神经网络模型:神经网络模型是根据人体内神经元之间信息的传递及反馈而建立的模型。具体而言他是通过将神经元进行分层即:不同的层次分配不同的神经元,一般将层次分为输入层、中间层和输出层。通过给不同的层的神经元赋一定的值来将整个神经网络模型进行训练得到模型。最后将待预测的值输入到模型当中直接得出最终结果。在本题中给出了30组肾炎病人和30组健康人的化验结果, 目的是让我们设计方法根据某人的化验结果判断他是否为肾炎病人,可以从30组肾炎病人和30组健康人的化验结果中选择一部分作为输入样本,建立BP神经网络模型。然后利用剩余的化验结果对模型进行检验,进而对模型作改进。在表B2中应用模型,对30就诊人员的化验结果作出判断。我们是如何利用中的神经网络模型的:利用MATLAB 的NNxx 提供的建立神经网络模型专用函数 newff()可以建立神经网络模型。newff()函数是用来确定网络层数、每层的神经元个数和传递函数的,其语法为: 模型假设:a输入的训练样本的矩阵;n输入的训练样本数量;k输入的训练样本的输出结果;f输入的待测样本;X输入的待测样本的输出结果;模型的建立:套用上述函数,分别针对肾炎病人和健康人在下编写程序,下面将其中一部分拿出来做分析其余见附录。%* net=newff(minmax(a),5,15,1,tansig,tansig,purelin,traingd);%设定模型参数 net.trainParam.show=100;%100轮回显示一次结果 net.trainParam.Lr=0.05;%学习速度0.05 net.trainParam.goal=500;%最大训练轮回为5000 net.trainParam.epochs=1e-4;%均方误差为0.0001 net=train(net,a,k);%对模型进行训练 X=sim(net,f);%利用模型对待测样本进行判断%*faluse关于模型的几点说明:在编程序的过程中,最难把握的就是,各层神经元的数目。其确定方法大致有以下几种:在以肾炎病人为输入样本的模型中: a是一个的矩阵;因为每一个病人都有7项化验结果; k是一个且每项元素为0.5(或-0.5) 的矩阵;因为函数返回的是一个在的值;模型的求解:将编好的程序在下运行,可以得到模型的解。在数据处理的过程中我们是这样做的:将所有的数据都复制粘贴到一个Excel表中;在中定义一个矩阵并在打开盖矩阵;将表B1中的数据,前n行从Excel表复制,粘贴到该矩阵中并对其进行转置运算. 就会得到矩阵;同样道理可以得到其它矩阵;在下运行程序可以输出一下结果:对肾炎病人进行检验:X =0.4929 0.4929 0.4929 0.4929 0.4929 0.4929 0.4929 对健康人进行检验:X = -0.5088 -0.5088 -0.5088 -0.5088 -0.5088 -0.5088 -0.5088 从上述计算结果可以看出,该模型在将肾炎病人和健康人分类进行验证时,其结果是可以满足需求的。但是如果利用上述模型,对表2的化验结果进行预测就会出现,所有的解都是一样的。无法区别肾炎病人与健康人的化验结果。因此模型需要改进。可以将程序代码该写成如下形式:net=newff(minmax(fff),6,15,1,tansig,tansig,tansig,traingd);%设定模型参数net.trainParam.show=100;%100轮回显示一次结果net.trainParam.Lr=0.05;%学习速度0.05net.trainParam.goal=1e-4;%最大训练轮回为5000net.trainParam.epochs=500;%均方误差为0.0001net=train(net,fff,ffff);%对模型进行训练X=sim(net,xx);其中:肾炎病人和健康人组成的样本;的0矩阵;待测样本;在模型求解过程中,先输入肾炎病人的化验结果,得到如下结果:X =0.0073 0.0073 0.0073 0.0073 0.0073X = 0.0088 0.0088 0.0088 0.0088 0.0088X = 0.0083 0.0083 0.0083 0.0083 0.0083X = 0.0085 0.0085 0.0085 0.0085 0.0085X = 0.0080 0.0080 0.0080 0.0080 0.0080输入健康人的化验结果,经过对模型进行训练可得到如下结果:X = -0.0081 -0.0081 -0.0081 -0.0081 -0.0081 -0.0081X = -0.0026 -0.0026 -0.0026 -0.0026 -0.0026 -0.0026X = -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047X = -0.0097 -0.0097 -0.0097 -0.0097 -0.0097 -0.0097X = -0.0085 -0.0085 -0.0085 -0.0085 -0.0085 -0.0085通过对上述试验结果的分析,可以知道,肾炎病人的实验结果主要分布在,靠近0 的+侧,健康人的实验结果主要分布在靠近0 的-侧。于是我们利用,新的模型对表2进行了预测部分实验结果如下。X = 0.0132 0.0132 0.0132 0.0132 0.0132 0.0082 0.0127 0.0132 0.0132 -0.0072 0.0132 0.0132 0.0132 -0.0072 -0.0072 0.0132 -0.0072 -0.0072 -0.0072 -0.0072 -0.0072 -0.0072 0.0132 -0.0072 0.0132 -0.0072 0.0132 -0.0072 -0.0072 -0.0072X =-0.0134 -0.0134 -0.0134 -0.0134 -0.0425 0.0067 0.0067 -0.0134 -0.0134 0.0067 -0.0134 -0.0134 -0.0134 0.0067 0.0067 -0.0587 0.0067 0.0067 0.0067 0.0067 0.0067 0.0067 -0.0134 0.0067 -0.0134 0.0067 -0.0134 0.0067 0.0067 0.0067这种方法仍然,难以将表2的数据进行处理。原因是得出的结果非常复杂,难以找出什么规律。对于分析问题带来了很大的麻烦,在这样的情况下。我们利用编写了一个程序用来求解整个问题。这就是监督分类模型.监督分类法是应用在遥感图像处理中的一种分析方法,又叫“先学习后分类”法,即在图像中选取有代表性的训练区域进行训练,找出规律然后再分类,这种思想同“神经网络法”。对于本题目,我们也可以用这种简便方法处理数据。监督分类的步骤:1) 确定类别的数目并为每一类选择训练样本;2) 计算每一类训练样本的特征向量均值向量、协方差矩阵;3) 判别待测样本的类别归属;a) 计算每一待测样本与训练样本之间的距离;b) 将待测样本划分到距离它最近的类别中去;4) 判别结果检验;本题给出了30组肾炎病人和30组健康人的化验结果, 目的是让我们设计方法根据某人的化验结果判断他是否为肾炎病人。在此可以应用遥感图像处理中的监督分类法,将待测人样本进行分类分为肾炎病人和健康人两类。从理论上说应用监督分类的方法,现随机取一定量的肾炎病人和健康人的化验结果作为训练样本,再将待测人样本区分为肾炎病人和健康人是可行的。一、基本模型:1、首先我们得从表一给出的60组数据中随机选出部分作为训练的样本,在本题中我们分别选肾炎病人和健康人各20个。2、分别算出肾炎病人和健康人要检验的7中元素的均值即数学期望Mij(i=1,2;j=1,2,3,4,5,6,7)。3、再输入待检验人的数据根据公式一: (i=1,2;j=1,2,3,4,5,6,7) (公式一)计算出绝对值距离,即待检验样本与两类训练样本之间的差异程度。4、如果D1D2则是肾炎病人,否则是健康人。以上简述的思想我们均是用C+程序实现的,运用此思想我们对30组待测数据的分类如下: 健康人:肾炎病人:二、简化:由于以上的模型是用所选样本的7中元素各自的均值作为一个样本向量的指标,计算起来有些繁琐。所以我们想可不可以用一个数字就可以代表一个样本向量的指标。通过各种元素对患病的影响程度,我对各种元素附一个权值(通过比较30组患者和健康人的数据,用期望值绘出一个点值图就可以看出各种元素的权重)。然后用每个人的数据乘以各个元素的权向量得出一个数,这个数就可以作为每个样本向量的指标。用此简化算法就可以简化计算的复杂程度,提高程序的运行速度。(具体的C+程序见附录)通过我们对算法的编程实现得如下结果:肾炎病人:健康人:五、 模型评价每一个模型都是通过与近似方法的对比而择优选取的。对其优缺点简要评述如下:模型的优点模型简洁,所有算法都可以行之有效的解决问题,而不是盲目的追求高深晦涩。经假设检验和残差分析,证明了我们得到该回归分析表达式的可行性和精确性。模型的缺点由于选择的容量有限,所以它不能完全反应所有的病人数据的特征,即进行训练的样本不完全有代表性。其次是神经网络模型中中间层个数的选取没有一个理论的依据,我们是通过经验公式计算在检验的方法选取的,所以训练后的网络还不是很好。三、模型改进方案对问题一模型的改进方向神经网络-模糊控制结合法我们的模型一使用的人工神经网络算法没有得到很好的训练效果。不排除实验数据选取对神经元学习的影响。但如果可以用神经网络和模糊控制相结合的预测方法,利用二者的并行性,充分发挥模糊控制系统鲁棒性强、模仿人的思维的优点,应该可以得到更好的拟合结果,并且可以适应于常规控制难以解决的非线形、时变及滞后系统。提高回归分析假设检验的精确性。回归神经网络我们使用的是常用的BP神经网络算法,除此之外还存在一种回归神经网络算法,也是一种不错的改进方向附录:代码:/-/逐一输入各种(训练,待测)样本/-void SuperDlg:OnButIonce() / TODO: Add your control notification handler code here UpdateData();if(Sample=1)/表示肾炎病人样本/-/对样本进行赋权运算并计算最终结果,+=表示当输入样本组数较多时/最终求他们的均值作为最后的处理结果/-m_nRA+=(m_qZn*m_IZn+m_qCu*m_ICu+m_qFe*m_IFe+m_qGa*m_IGa+m_qMg*m_IMg+m_qK+m_IK+m_qNa*m_INa);else if(Sample=2)/表示健康人样本m_nRB+=(m_qZn*m_IZn+m_qCu*m_ICu+m_qFe*m_IFe+m_qGa*m_IGa+m_qMg*m_IMg+m_qK+m_IK+m_qNa*m_INa); else if(Sample=3)/待测人样本m_nRC+=(m_qZn*m_IZn+m_qCu*m_ICu+m_qFe*m_IFe+m_qGa*m_IGa+m_qMg*m_IMg+m_qK+m_IK+m_qNa*m_INa);UpdateData(FALSE);void SuperDlg:OnButExA() / TODO: Add your control notification handler code hereSample=1;GetDlgItem(IDC_STATIC_EX1)-SetWindowText(肾炎病人样本);void SuperDlg:OnButExB() / TODO:

温馨提示

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

评论

0/150

提交评论