基于Tensorflow的阿尔兹海默症数据分析毕业论文.docx
《基于Tensorflow的阿尔兹海默症数据分析毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Tensorflow的阿尔兹海默症数据分析毕业论文.docx(22页珍藏版)》请在冰豆网上搜索。
基于Tensorflow的阿尔兹海默症数据分析毕业论文
题目:
基于Tensorflow的阿尔兹海默症数据分析
摘要
阿尔兹海默症(Alzheimerdisease,AD),又常被称为老年痴呆,是一种很常见的,起病很难发觉的,进行性发展的神经系统退化疾病。
该病的临床症状主要有:
记忆、语言、认知、运用障碍,以及人格和行为等的全面性痴呆,发病的原因至今无人知晓。
国内外人们对该疾病的病因探求已久,在影响该疾病发病的因素上早已做了很多数据分析,但近年来计算机领域的进步,尤其是机器学习的出现,为疾病分析提供了一条新的途径。
Python作为一种面向对象的解释型脚本语言,近年来大量被用于人工智能领域,并随着人工智能的大热,该语言热度也逐年上升。
Python拥有大量功能完善的模块,比如Tensorflow模块、Numpy模块、Pandas模块、Matplotlib模块等等,这些功能强大的模块,在本次毕业设计中,能帮助我们进行数据的导入、筛选、处理、分析、对比以及可视化,直到最后的结果分析,都有着极其重要的作用。
本课题旨在利用TensorFlow工具和机器学习对数据的表征学习方法对居民对阿尔兹海默症的认知情况的调查数据进行分析,得出具体结论并提出相关建议,这对在临床医学上治疗和预防阿尔兹海默症有着相当大的辅助和参考作用。
关键词:
阿尔兹海默症;Python语言;Tensorflow;机器学习;数据分析
Abstract
Alzheimerdisease(AD),alsoknownasAlzheimer'sdisease,isaverycommon,degenerativeneurologicaldegenerativediseasethatisdifficulttodetectonset.Themainclinicalsymptomsofthediseaseincludememory,language,cognition,andmanagementdisorders,aswellascomprehensivedementiasuchaspersonalityandbehavior.Thecauseofthediseaseisstillunknown.Peopleathomeandabroadhavebeensearchingforthecauseofthediseaseforalongtime.Manydataanalyseshavebeendoneonthefactorsaffectingthedisease.However,inrecentyears,advancesinthecomputerfield,especiallytheemergenceofmachinelearning,haveprovidedanewway.
Asanobject-orientedinterpretedscriptinglanguage,Pythonhasbeenwidelyusedinthefieldofartificialintelligenceinrecentyears,andwiththepopularityofartificialintelligence,thepopularityofthislanguagehasalsoincreasedyearbyyear.Pythonhasalargenumberofwell-functioningmodules,suchasTensorflowmodule,Numpymodule,Pandasmodule,Matplotlibmodule,etc.Thesepowerfulmodulescanhelpusimport,filter,process,analyze,andanalyzedatainthisgraduationproject.Contrastandvisualization,untilthefinalanalysisoftheresults,haveanextremelyimportantrole.
ThisprojectaimstousetheTensorFlowtoolandmachinelearningtoanalyzethedataoftheresidents'knowledgeofAlzheimer'sdisease,anddrawspecificconclusionsandrecommendations.Thisisforthetreatmentofclinicalmedicine.AndhasaconsiderableauxiliaryandreferenceroleinthepreventionofAlzheimer'sdisease.
Keywords:
Alzheimer'sdisease;ThePythonlanguage;Tensorflow;Machinelearning;Dataanalysis
1前言
1.1研究背景与意义
近年来,随着我国的经济增长和人民生活品质的提高,我国已逐步迈入老年化社会。
而阿尔兹海默症,又称老年痴呆,作为一种高发于高龄段的疾病,也越来越多的进入人们的视野,越来越多的影响着人们的生活。
虽然阿尔兹海默症已经影响和困扰了我们许久,但目前对该病的病因还没有彻底的了解,也没有有效的治愈手段,只能配合药物和物理疗法,来减少患者痛苦和延缓病情的发展。
所以,与其事后诸葛,不如提前做好预防工作[4]。
所以,这次我从学校医学院处得到了居民阿尔兹海默症相关认知的调查数据,再结合科学的数据分析手段,旨在得出阿尔兹海默症相关预防的重点和方向,分析出各属性间的相关性,希望能对阿尔兹海默症的预防提供一定帮助,并为该病的研究提供一个可能的方向。
在计算机行业,近些年来,人工智能、大数据的发展可谓突飞猛进,大量的数据与精确的分析,让人们面对以往堆积如山的数据不再不知所措。
我们能找出大量数据间隐藏的联系,从而为后续的研究指明方向。
借助计算机,对庞大数据进行分析并得出结论,是一条捷径,而拥有大量功能完善模块的Python语言,又作为广泛运用于该领域的工具,便是打开这条捷径的钥匙[1]。
为了得出阿尔兹海默症相关影响因素的结论,对数据中不同属性进行统计对比和相关性分析,并做可视化处理和决策树展示,最后得到更为准确和全面的分析结果。
1.2本文的研究内容
本文的研究内容主要有以下三个方面:
1)数据分析的内容
主要对阿尔兹海默症的相关知识做一定的了解,阿尔兹海默症的病因,临床表现,诊断,预防和康复,从而对后面的分析才能有一个大致的方向,不至于从一开始就走歪。
2)数据分析的过程
对该病的相关知识有了一定的了解以后,对获得的数据进行一系列的处理分析,经过数据的导入,统计描述,数据的处理,统计分析,可视化处理等步骤,展现出不同属性间的影响。
3)数据结果与分析
由上一步得出的结论,对数据进行具体分析,如分析影响因素,得到线性回归方程式并做可视化处理,以及风险决策树的展示,并提出相关建议。
1.3本文的结构安排
本论文一共分为五个章节。
第一章节:
前言。
主要介绍了研究的背景与意义,论文的研究内容和结构安排等。
第二章节:
数据分析内容。
主要介绍了阿尔兹海默症的相关知识内容,如阿尔兹海默症的病因,阿尔兹海默症的临床表现,阿尔兹海默症的诊断,阿尔兹海默症的预防与康复。
第三章节:
数据分析过程。
主要对数据进行筛选,统计和分析,并用图表的形式展现出来,更加直观。
主要步骤有:
导入数据,统计描述,数据处理,统计分析,可视化处理等。
第四章节:
数据结果与分析。
本章节主要是对数据属性间的关系做分析,并做相关建议。
主要包括:
分析影响因素,线性回归分析,患病风险决策树分析及相关建议。
第五章节:
总结与展望。
主要是对论文内容做一个总结,并未来工作做一个展望。
2数据分析内容
2.1阿尔兹海默症的病因
阿尔兹海默症的病因包含了多种因素,包括了生物和社会心理等多种因素,目前的研究结果和假说表明影响发病的因素多达三十多种,例如:
家族病史,性别,受教育水平,不健康生活习惯等等。
其中主要病因有以下几点:
1)家族病史
大量研究表明,家族病史是影响阿尔兹海默症发病的最重要因素。
直系亲属中有患者的人,患病概率高于一般人。
进一步的研究表明,在遗传学看来,阿尔兹海默症概系常染色体显性遗传基因所导致的。
可见,阿尔兹海默症与遗传因素有关。
2)躯体疾病
一些其他的病史,很可能会增加患阿尔兹海默症的概率。
如甲状腺疾病,癫痫等,还有一些精神疾病,金属中毒和金属元素在体内的积累所导致的并发症也会影响该病的患病率。
3)头部外伤
统计表明,头部外伤的人群,患病概率高于一般人群。
4)其他
其他影响因素还包括免疫系统疾病,病毒感染,生活压力带来的抑郁症和心理因素等等,这些都可能成为病因。
2.2阿尔兹海默症的临床表现
阿尔兹海默症的起病较为缓慢,最初只体现为轻微的记忆力衰退或失认,后面才逐步严重,所以早期很难发觉和干预。
该病多发于六十到七十岁以上的老人,且在患者中女性明显多于男性(约为1:
3的男女比例)[16]。
根据病情的恶化程度,阿尔兹海默症可以大致分为三个阶段:
1)第一个阶段:
轻度痴呆期
主要表现为记忆力衰退;短期记忆力下降;判断力出现下滑,对复杂事件的的处理出现一定困难;不定期出现失认情况;情绪逐渐变得焦躁,不安;出现对时间,空间,地理位置的判断障碍;出现轻度语言障碍等。
这种状态一般持续一到三年。
2)第二个阶段:
中度痴呆期
主要表现为短期记忆力严重下降;对时间,空间,地理位置的判断出现严重障碍;无法独自完成个人的基本生活活动;出现严重的失语,失认;情绪变得极为焦躁不安,好动;尿失禁等。
这种状态可持续长达两到十年。
3)第三个阶段:
重度痴呆期
此阶段中,患者以完全无法独立生活,其一切生活活动完全要依赖于照顾者;大部分记忆完全丧失;生活完全无法自理,大小便完全失禁;本能反应占据主导;最后患者会昏迷,一般死于各种并发症。
这个阶段一般可持续长达八到十二年之久。
2.3阿尔兹海默症的预防与治疗
由于阿尔兹海默症目前并没有非常有效的治疗手段和特效药物,所以防患于未然显得尤为重要,但对于阿尔兹海默症的病因却又没有一致的结论,所以预防手段也没有特别的方法。
所以,我们只能对于高危人群,比如有家族病史的,受教育程度很低的,年龄较大的人群,做一系列预防性的措施[11]。
预防性措施有很多,认同度比较大的有以下几条:
第一,近半数患者在早期会出现不同程度的抑郁症状,情绪低落,过度忧虑等,尤其是老年人,这时我们一定要主动帮助他们走出阴霾,维持一个好的心情尤为重要;第二,减少糖,油,盐的摄入,不要酗酒或吸烟,及时补充维生素,这也就是所谓的“养生”,保持营养均衡,身体健康,患痴呆的概率自然大大降低;第三,要勤动脑,多锻炼,积极参与体育运动,这不仅是锻炼身体,还是愉悦身心的有效方法[10]。
对于没患病的人,要多加防范,而对于已经患病的人,一定不能歧视或忽视他们,要多加体谅和照顾,充分的关爱和爱护,也能很好的缓解病情,作为患者更是不能灰心丧气,不要对生活失去信心,积极配合医生的治疗,保持良好的心态。
2.4我国阿尔兹海默症的现状
我国是人口大国,而且随着社会人口老龄化的日益严重,目前中国的痴呆症患者数超过一千万人,而其中六成为阿尔兹海默症,八十岁以上老人的发病率约为百分之三十,预计到2050年,我国的痴呆症患者或将超过两千万人。
在发病以后,患者的平均存活年限仅为五年半。
在我国疾病死亡率排名上,阿尔兹海默症高居第四名,仅次于心脏病,癌症和中风。
与我国高患病率截然相反的是,我国阿尔兹海默症的就诊率极低。
很多地方认为得这种病很丢人,很被人瞧不起,这种糟糕的群众认知,严重影响了我国阿尔兹海默症患者的就诊率,耽误的患者接收治疗的最佳时机,或者很多患者宁愿待在家里也不愿去医院接受治疗。
在发达国家,如美国,因为阿尔兹海默症的花费就高达2950亿美金,而我国花费在该病上每年有200亿美元,这与我国人民对阿尔兹海默症的了解不足和重视度不够有很大关系,这也是阻碍患者及时接收治疗的最大阻碍[5]。
所以,人们观念的改变和资金的投入,是刻不容缓需要解决的事情。
2.5本章小结
本章节这要介绍了阿尔兹海默症的几条可能的病因,不同阶段的临床表现,阿尔兹海默症的几条预防方法和治疗手段,介绍和分析了我国阿尔兹海默症的现状和亟需解决的问题。
3数据分析过程
数据的分析过程,包含了数据的导入,统计描述,数据处理,统计分析,可视化处理等步骤。
其中用到了多种Python的工具包,例如:
1)Numpy工具包。
它是Python中用于科学计算的一种工具包,可以方便的实现各种科学计算,如线性代数,傅里叶变换和随机数生成等,功能强大,方便快捷。
2)TensorFlow,是一个广泛用于各种机器学习算法中的基于数据流的符号数学系统,由谷歌公司开发维护,目前已开源,具有架构灵活和可移植性强等多重优势,现已被众多的人工智能开发者所使用的[13]。
3)Pandas,是一种基于Numpy的数据分析工具,给我们提供了大量实用高效的数据分析工具,和操作处理大型数据的方法,包含有很多简单实用的针对数据处理和分析的函数供我们使用。
4)Matplotlib,它是Python的一个二维绘图库,用于绘制各种实用的图表,为我们实现数据可视化提供了帮助[3]。
3.1导入数据
导入数据是进行数据分析的第一步,数据有很多种类型,每种的导入方式各不相同。
这里我们使用的是医学院提供的调查数据,为csv文件,并已经经过了简单的处理,这为我们省去数据预处理的步骤,节省了不少时间。
代码如下:
importpandasaspd
file=pd.read_csv('C:
\\ad.csv')
df=pd.DataFrame(file)
print(df)
运行结果:
数据导入成功,并显示出目标数据文件ad.csv文件中的所有数据,等待进行下一步的操作
3.2统计描述
统计描述就是一系列用于概括和表述数据的整体状况,数据间的关联性,分布状态或数字特征的统计和描述方法。
统计描述大致可分为两种:
集中趋势分析和离中趋势分析。
前者主要用众数,中数,平均数等统计值来描述数据在集中上的趋势。
而后者则是主要用方差,标准差,平均差等统计值来研究数据在离中上的趋势。
统计描述常用图表和数学统计的方法来表示统计描述的结果。
一般使用的函数如下列所示:
df.sum()#计算和
df.mean()#计算平均值
df.var()#样本值的方差
df.std()#样本值的标准差
df.mode()#样本的众数
df.median()#样本的中位数
df.describe()#对series和dataframe列计算汇总统计
3.3数据处理
3.3.1数据排序
数据排序就是按照一定的顺序,将数据排列出来,呈现出一定的规律性,有助于数据的浏览,数据的错误纠正,还可以为数据的再次归类和分组降低难度。
另一方面,数据排序还能有助于研究者根据有序的排列,归纳总结出数据的某些本不太明显的特征属性或隐藏的变化趋势。
这里,我们使用调查时的调查问卷顺序序号来作为排序的标准。
代码如下:
df.sort_values(by='序号')
print(df)
运行结果:
输出经过按照序号排序的数据,并无错误产生,等待下一部处理
3.3.2数据转置
由于在导入数据时,我们使用了DataFrame来作为数据结构,在Pandas中Series与Numpy中的一维数组array类似,而DataFrame便可视为二维的表格数组结构,数组的每个元素便是一个Series。
所以为了让后面对数据的筛选的统计分析更为方便,我们要对数据进行转置处理。
代码如下:
df_t=df.T
print(df_t)
运行结果:
输出横纵坐标交换后的数据,即一个转置矩阵
3.4统计分析
统计分析,即分析讨论不同数据项之间不同属性的联系,通过大量的数据统计分析,研究得出不同属性间的关联,运用统计学的方法和分析有关对象的相关知识,定量和定性地分析。
统计分析是一项极为重要的工作,它既是前面工作的结果,也会它们的深刻总结,提供了一个更为系统化的,整体的分析,具有一定的深度和广度,以及数据性,时效性和目的性。
本次
3.5可视化处理
可视化(Visualization)技术,数据可视化,即是指为了方便人机交互和使数据更为直观的展示,而利用计算机图形学原理,图像处理技术,将数据或得到的数据分析结果,通过图形或图像的形式输出在屏幕上的技术或方法[2]。
这种数据的可视化技术,有时精确,有时概括,根据所需场景的不同,可以因地制宜,其概念不断演变,所涉及的领域也不断扩大,从模型建模,动画演示到这里的数据分析可视化,方法众多,技术涉及广泛[9]。
这里,我们采用二维统计图表的方式来展现和分析数据的特征。
3.5.1饼状图图表
饼状图为一个二维或三维的圆形饼状图表,故而得名,其常被用于统计学中。
饼状图中的每个数据系列都有一种独有的代表颜色或图案,并形成一个扇形区域,每个扇形区域的大小与其代表的数据系列在整体中得占比成比例,一个或多个数据系列组成一个饼状图。
data=[sum(df['年龄']==1)/len(df),sum(df['年龄']==2)/len(df),sum(df['年龄']==3)/len(df),sum(df['年龄']==4)/len(df)]
l=['20岁以下','20-40岁','40-60岁','60岁以上']
plt.axes(aspect='equal')
plt.xlim(0,4)
plt.ylim(0,4)
plt.pie(data,
explode=None,
labels=l,
colors=None,
autopct='%.1f%%',
pctdistance=0.8,
labeldistance=1.15,
startangle=180,
radius=1.0,
counterclock=False,
wedgeprops={'linewidth':
1.5,'edgecolor':
'green'},
textprops={'fontsize':
12,'color':
'k'},
center=(1.8,1.8),
frame=0)
plt.xticks(())
plt.yticks(())
plt.title('被调查者年龄分布图')
plt.show()
运行结果:
由于调查在学校附近进行,碎玉参调者近半数为20岁以下的年轻人,而占比13.4%的60岁以上的阿尔兹海默症患病高危人群才是我们的重点关注对象。
所得饼状图如图3.1所示:
图3.1不同年龄段的受调查者占比饼状图
3.5.2统计分布直方图图表
统计分布直方图(又称质量分布图),是一种用来描述数据数值的分布的图表,其精确度一般较高。
统计分布直方图也是条形图的一种,其有若干列高度不等的或横或纵的线段或条状带构成,长度代表某项数值的频数。
有点在于能够清楚地展现出不同数值频数上的大小关系。
对于数据,我做出了如下几种直方图,对于数据中反映的一些问题做了图形化展示与说明:
1)MCI相关知识得分的频数分布直方图
MCI,全称为轻度认知功能损害,是一种介于正常老年性智力衰退和阿尔兹海默症之间的过渡状态,处于MCI的人发展成为阿尔兹海默症的概率是一般人的十倍,但生活中大多数人并不知道MCI,这对阿尔兹海默症的早期发现与治疗干预是一个极大地阻碍。
此项得分越高说明对MCI了解程度越高。
这里,我对所有受调查者的MCI相关知识综合得分做了一个频数的统计,希望能从中了解到人们对于MCI的了解到底处于什么水平,能对未来的知识普及工作有一个大致了解。
代码如下:
data=df.MCI相关知识综合得分
plt.hist(data,bins=25,facecolor="red",edgecolor="black",alpha=0.7)
plt.xlabel("MCI相关知识综合得分情况")
plt.ylabel("频数")
plt.title("MCI相关知识综合得分分布直方图")
plt.show()
运行结果:
绘制出了不同MCI相关知识综合得分分布直方图,从图中可容易地得出,MCI相关知识综合得分为6分的人数是最多的,且所有受调查者的得分普遍偏低,主要集中于5到8分,可见人们对MCI相关知识的了解十分匮乏,相关知识的普及问题亟待解决。
所得的直方图如图3.2所示:
图3.2MCI相关知识综合得分分布直方图
2)不同年龄段的MCI相关知识平均得分
代码如下:
d1=df[df['年龄']==1].sum()['MCI相关知识综合得分']
d2=df[df['年龄']==2].sum()['MCI相关知识综合得分']
d3=df[df['年龄']==3].sum()['MCI相关知识综合得分']
d4=df[df['年龄']==4].sum()['MCI相关知识综合得分']
name_list=['20岁以下','20-40岁','40-60岁','60岁以上']
num_list=[d1/len(df[df['年龄']==1]),d2/len(df[df['年龄']==2]),d3/len(df[df['年龄']==3]),d4/len(df[df['年龄']==4])]
plt.bar(range(len(num_list)),num_list,color='rgby',tick_label=name_list)
plt.title('不同年龄段的MCI相关知识平均分')
plt.show()
运行结果:
绘制出了不同年龄段的MCI相关知识平均分,从图中展现出的结果来看,20到60岁的人得分较高,20岁以下的人或许是太年轻,认为自己不会患病,所以对MCI了解较少,而与自身关系最密切的60岁以上的老年人对MCI的了解竟是最少的,所谓“不知病则不治病”,帮助老年人了解MCI是以后我们需要做的事。
所得图表如图3.3所示:
图3.3不同年龄段的MCI相关知识平均分直方图
3)不同性别保护性生活方式平均得分
保护性生活方式得分直接反映了被调查者对于预防阿尔兹海默症的生活习惯的了解,也简介反映了被调查者本身的生活习惯。
代码如下:
d1=df[df['性别']==1].sum()['保护性生活方式得分']
d2=df[df['性别']==2].sum()['保护性生活方式得分']
name_list=['男性','女性']
num_list=[d1/len(df[df['性别']==1]),d2/len(df[df['性别']==2])]
plt.ylabel("保护性生活方式平均得分")
plt.bar(range(len(n