30组徐康仪、沈舒林、刘靖宇
心脏病的判别
摘要
本文主要解决的是如何通过对250个就诊者的各项生理指标数据进行分析得出一套能够预测就诊者是否患心脏病程度的函数和准则,并确定哪些生理指标是判断就诊者患心脏病程度的关键因数,从而减少化验指标。
首先,我们对题目提供的数据进行了分类和归一化处理,并对异常数据做出了合理的猜测和替换。
对于问题一:我们分别建立了BP人工神经网络模型和多元Fisher模型,然后利用SPSS软件和MATLAB软件对数据进行处理和求解,得出了判断心脏病患病程度的判别函数,并将两种模型得出的结果进行了比较。两种模型判断患病程度正确率如图: Fisher判别BP人工神经网 模型 络模型 正确率 67.4% 88.2% 对于问题二:在问题一中得到的判别函数的基础上,运用MATLAB软件,我们将44名就诊人员13项数据代入判别函数,得出各自患病情况。
对于问题三:题目要求找出判断心脏病患病程度的关键因素。根据主因子分析法,我们将BP神经网络分析中重要性较低的因素逐一剔除,结合SPSS软件,观察剔除单一各因素后函数判断患心脏病程度正确率的变化,得出关键因素为A、C、E、G、H 、I、J 、K。
对于问题四:我们结合在问题三中提取的关键因素,运用SPSS软件,修改了在问题一中得到的Fisher判别函数,并重新将44名就诊人员的13项指标数据代入判别式中得出了各自患病程度结果。在将得出结果与问题二中结果进行比较,我们发现只有5个就诊者的判别结果稍有误差,并且他们的患病程度很接近。这说明我们提取的关键因素是准确的。
本文最后对所建模型优缺点进行了分析与评价,并提出了改进与推广。
关键词 BP人工神经网络 多元Fisher判别模型 主因子分析法
1、问题重述
1.1问题背景
心脏是维持全身血液循环的最重要器官。由于现代人不正确的饮食和运动习惯等因素,心脏病患者人数逐年上升,心脏病已经成为威胁人类生命的十大疾病之一,除了老年人,中青年也成为心脏病猝死的高危人群。年轻人的心脏病突发往往没有明显先兆,突然发作时很危险,心脏病的病因很多,有时很难判断一个人是否患有心脏病。
附录二是到某医院做心脏病检测的一些确诊者的生理指标数据。(指标A,B,…M的含义见附录一,指标N表示是否确诊为心脏病以及患病的程度)
1.2需解决问题
问题一:根据附录二中的数据,提出判别心脏病以及患病程度的方法,并检验你提出方法的正确性。
问题二:按照问题一提出的方法,判断附录三中的44名就诊人员的患病情况。 问题三:能否根据附录二的数据特征,确定哪些指标是影响人们患心脏病的关键或主因素,以便减少化验的指标。
问题四:根据问题三的结果,重复问题二的工作,并与问题二的结果对比作进一步分析。
2、模型假设
假设一:通过题目已给的十三个指标就可以判断心脏病的患病情况。 假设二:不考虑就诊人员其他身体因素对其患心脏病的影响。
假设三:附录表二中异常数据-9均为指标正常情况值缺失的代替值。
3、符号说明 符号 x' n 符号说明 归一化后得到的数据 总的样本数目 抽取样本的数目 指标数目 对应神经元的激发函数 分别表示指标A,B,C,...,M m?1,2,3,...,13,从神经元i到j的连接权 分区变量 学习速率 动量系数 指标因素的最小值 p m fj xm wji O ? ? xmin
xmax 指标因素的最大值 Fisher判别函数 m?1,2,3,...,13,Fisher判别式系数 y cm I 组间离方差Q和组内离方差F的比值
4、问题分析
4.1问题一:要求我们根据附录二中的数据,提出判别心脏病以及患病程度的方法。并检查该方法的正确性。针对这样一个判别性问题,我们首先对多种可以使用的判别方法进行了分析,分别是传统的距离判别法,非线性fisher判别法,朴素bayes算法,Logistic回归判别法以及BP神经网络的分层网络判别法。 (1)距离判别法:
该方法不能考虑各总体本身在出现的可能性和无法克服错误数据造成的损失。由于本题附录中有大量异常数据的存在,所以距离判别法不适用于本题。 (2)Logistic回归判别法:
因变量与自变量是通过一种已知或未知非线性函数关系相关联,尽管我们可以通过logit函数在一定范围内将它们转化为线性关系,但这种转换必将导致更大的计算量和结果误差,所以我们也放弃了Logistic回归判别法。 (3)BP神经网络:
BP神经网络拥有强大的容错能力,较符合本问题提供的数据情况,同时神经网络具有通过学习逼近任意非线性映射的能力,用BP神经网络法来发别心脏病以及患病程度有着明显的优越性。
BP神经网络虽有诸多益处,但现阶段我们所掌握的知识还不能使我们从已运行的BP网络结果中提取相关参数并用MATLAB软件建立simulink仿真函数来预测不含心脏病诊断结果N值结果的独立数据,为弥补这一缺陷,我们同时建立了BP神经网络和多总体Fisher判别模型来进行求解。
4.2问题二:在问题一的基础上,我们对附录表三的数据进行处理,然后运用第一问得到的Fisher判别函数,将处理后44名待诊断者的数据代入判别式中,即可得到判别结果。
4.3问题三:该问题需要找出患心脏病的主要因数,我们先运用BP神经网络中的自变量重要性分析得出各因数的初步重要性结果,然后按照主因子分析法的思想在Fisher判别式中逐一剔除一些重要性偏低的因素并观察剔除后的判断患病程度的正确率,若正确率浮动比较小择可以确定该因素为非主要因素。
4.4问题四:只需根据问题三中主要因素建立修改后的Fisher判别式,重复第二问操纵即可。
5、数据的分析与处理
附录表二中给出了250组心脏病检测的样本 , 通过观察易知250组数据中包含大量异常数据。如血清中胆固醇含量mg/dl不可能出现-9,ST坡段值-9超界等,基于BP神经网络拥有强大的容错能力,我们仍保留这些异常数据以保证样本的多样性。为了提高神经神经网络的训练效率,我们需要对样本数据输入和目标数据归一化处理,使其均落在[0,1]之间。处理方法如下:
x'?x?xminxmax?xmin
其中,xmin与xmax分别表示每一项指标因素中最小和最大的值。处理后数据如表5.1:
表5.1:250组心脏病检测的样本数据归一化处理后的数据表
序号 1 2 3 4 … 247 248 249 250 A B C D E F G H I J K L M 0.3158 1 0.3333 0.4444 0.4869 0.9 0.8182 0.8333 0 0 0 0 0 0.5526 0 0.6667 0.6296 0.3088 0.9 0.8182 0.6852 0 0.2 0.9167 0 0 0.2368 1 0.3333 0.3519 0.4771 0.9 0.9091 0.1481 0 0 0 0 0 0.5263 0 1.0000 0.4259 0.3644 0.9 0.8182 0.2407 1 0.3 0.9167 0 0 … … … … … … … … … … … … … 0.6842 1 0.2593 0.2941 0.9 0.8182 0.5093 0 0.4 0.8330 0 0 0.6842 1 0.6667 0.2593 0.4020 0.9 0.8182 0.6296 1 0.3 0 0 1 0.5263 1 1.0000 0.2778 0.4641 0.9 0.9091 0.6296 1 0.4 1 0 0 0.4474 1 1.0000 0.3519 0.3725 0.9 0.9091 0.4444 1 0.2 0.9167 0 0 用Fisher模型求解则需要人工剔除和改动一些数据。觉察到因素中的异常数据均为-9,我们假设-9为因素缺失值的代替,然后对异常数据进行处理,将指标E中有-9的样本剔除;将指标FGKM中的-9替换为正常值(将F、G中的-9换成0;K中的-9换成2;M中的-9换成3)。并预测出现-9较频繁的因素为非主要因素。如图5.2
5.2:对250组样本数据进行剔除和改动后得到的数据表 A 40 49 37 B C D E F G H I J K L M N 序号 1 2 3 1 0 1 2 3 2 140 289 160 180 130 283 0 0 0 0 0 1 172 156 98 0 0 0 0 1 0 2 2 2 -9 -9 -9 3 3 3 0 1 0 … … … … … … … … … … … … … … … 230 48 1 4 106 263 1 0 110 0 0 2 -9 3 1
231 232 233 55 55 48 1 1 1 2 2 4 120 256 160 292 122 275 1 1 1 0 0 1 137 143 150 0 1 1 0 2 2 2 2 3 -9 -9 -9 7 3 3 0 3 2 我们将经过数据处理后的250个案例根据N值分成两组,然后对其13项指标求平均值结果如表5.3:
表5.3::正常人和患者13项生理指标的平均值 指标 1.A 2.B 3.C 4.D 5.E 6.F 7.G 8.H 9.I 10.J 11.K 12.L 13.M 正常人 46.28 0.657 2.61 131 237 0.042 0.210 145 0.105 0.196 1.97 -8.8 3.17 患者 49.18 0.867 3.59 136 270 0.144 0.233 130 0.656 1.261 2.01 -8.9 3.51 131197531-100%-50%0P0%正常人患者
从上表我们很容易发现,心脏病判别的13项指标对样本是患病的影响区别很大。如患者的第7、9、10项指标的值比正常人大很多。我们搜索了相关资料来逐一查询附录表一中列举的各种因素与患心脏病之间的关系。查阅后发现年龄A、性别B、地中海贫血M、静息时心电图结果G、血清中胆固醇含量E、运动时是否诱发心绞痛I与患心脏病有很大关系。据此可初步判断静息时心电图结果G、运动是否诱发心绞痛I和运动心电图ST下降程度J为判断心脏的关键因素。
6、模型的建立与求解
6.1问题一的模型与求解: 6.1.1BP人工神经网络模型
神经网络系统是迄今为止功能最强、效率最高的最完美的信息处理系统,它所具有的非线性映射及并行处理能力在非线性系统的辨识和控制中发挥了独特作用,成为研究非线性预测控制的一种新工具,且BP(Back propagation)神经网
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数学建模心脏病判别在线全文阅读。
相关推荐: