分布式计算、云计算与大数据 第2版 课件 第10章 实时医疗大数据分析案例_第1页
分布式计算、云计算与大数据 第2版 课件 第10章 实时医疗大数据分析案例_第2页
分布式计算、云计算与大数据 第2版 课件 第10章 实时医疗大数据分析案例_第3页
分布式计算、云计算与大数据 第2版 课件 第10章 实时医疗大数据分析案例_第4页
分布式计算、云计算与大数据 第2版 课件 第10章 实时医疗大数据分析案例_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

第10章实时医疗大数据分析案例提纲案例背景与需求概述设计方案环境准备实现方法不足与扩展习题与参考文献案例背景与需求概述目前我国的医疗行业现状是,优质医疗资源集中在大城市,地方以及偏远地区医疗条件较差,医疗资源的配置不合理,导致了大量的长尾需求,催生了广阔的互联网医疗市场。在此背景下,互联网的“连接”属性得以发挥,有效提高了长尾市场的信息流通,降低了产品扩大受众群的成本,而大数据技术的应用能够使得医疗服务更加完善和精准。医疗大数据的应用主要指的是将各个层次的医疗信息和数据,利用互联网以及大数据技术进行挖掘和分析,为医疗服务的提升提供有价值的依据,使医疗行业运营更高效,服务更精准,最终降低患者的医疗支出。本案例将先介绍某中医院的医疗大数据分析需求,然后采用多种大数据技术组件,形成一套从ETL、非格式化存储、大数据挖掘分析以及可视化等一系列数据解决方案。

案例背景与需求概述以心脏病临床诊断数据为处理对象通过对以往的病例进行归类打标签,预先评估出一些用以模型训练的病理数据利用大数据分析引擎(Hadoop、Spark等)计算出病理分类决策模型,再利用实时大数据平台建立实时大数据处理原型,对前端数据源传送过来的新病例,加以预测评估,演示包括平台建立、模型训练及评估等多项内容分类模型选择随机森林算法,心脏病临床诊断数据包括十三个医疗诊断属性案例背景与需求概述数据来源:/ml/machine-learning-databases/heart-disease/本实例使用的是processed.cleveland.data文档中的数据,先将数据保存到本地桌面data.txt文件以待后用,数据的部分截图如下:案例背景与需求概述案例背景与需求概述案例目标需要实现如下几个功能:(1)使用ETL工具将病理数据导入HDFS,作为训练数据;(2)基于SparkMLlib的RandomForests算法从病理数据中训练分类模型;(3)模拟数据源向Kafka传送测试实例;(4)通过SparkStreaming从Kafka中接收该实例,并交给分类模型做出决策,预测结果。整个流程以HDFS为中心存储、中间结果存储,中间输出结果以及最终结果都存储在HDFS,由ETL工具转存到其他存储系统中。提纲案例背景与需求概述设计方案环境准备实现方法不足与扩展习题与参考文献实时医疗大数据分析方案设计案例流程图设计方案实时医疗大数据分析方案设计ETL流程图ETL实时医疗大数据分析方案设计非格式化存储以HDFS、HBase等分布式存储系统为核心存储,通过ETL传输工具,例如Sqoop、Kettle等将非格式化数据,如网站日志、服务器日志等从磁盘存储直接导入到HDFS,并通过Hive等查询工具建立基本的格式化结构;也能将原关系数据库中存储的格式化数据,以文本形式或以Sequence结构的二进制数据存储在HDFS中。实时医疗大数据分析方案设计流处理流处理流程图实时医疗大数据分析方案设计训练模型与结果预测基于心脏病临床数据的检测模型,以RandomForests为分类模型,从病例数据中训练出病理预估模型,并通过错误率,MSE等指标量化模型评估。然后根据训练好的模型对测试数据进行分析与评估,并给出预测的结果。提纲案例背景与需求概述设计方案环境准备实现方法不足与扩展习题与参考文献实时医疗大数据分析环境准备

本例使用Ambari进行整个大数据平台的搭建。正如其官网介绍而言,ApacheAmbari项目旨在通过开发用于配置,管理和监控ApacheHadoop集群的软件,使管理Hadoop集群更方便简单。Ambari供了一个直观的,易于使用的Hadoop管理WebUI,在此之上,可以创建、管理、监视Hadoop的集群,这里的Hadoop是广义的,指的是Hadoop整个生态圈(例如Hive,Hbase,Sqoop,Zookeeper,Spark等),而并不仅是特指Hadoop。用一句话来说,Ambari就是为了让Hadoop以及相关的大数据软件更容易使用的一个工具。建议:安装Ambari时建议自行搭建一个本地库(localrepository)进行安装,官方文档中有介绍,这里就不再详述。实时医疗大数据分析环境准备

集群架构图实时医疗大数据分析环境准备

节点规划实时医疗大数据分析环境准备

节点规划实时医疗大数据分析环境准备

软件选型提纲案例背景与需求概述设计方案环境准备实现方法不足与扩展习题与参考文献实时医疗大数据分析实现方法

经过上面三个部分的说明,相信都已经明白了本案例的基本设计方案以及完成了整体环境的搭建,那么这一节就将脱离“纸上谈兵”,开始最关键的实践部分。首先,我们将一开始下载并保存好的data.txt病理数据经过ETL工具处理,最终将数据存储到HDFS中,作为训练数据集。接着,通过实现一个程序,模拟Kafka与SparkStreaming的交互,SparkStreaming将从Kafka处读取数据并最终存储到HDFS中,作为测试数据集。最后,通过使用SparkMLlib,根据训练数据集进行模型训练,然后利用训练好的模型对测试数据集进行预测,并将最终预测结果存储到HDFS中。这就是我们整个实现的流程,将分为3个环节进行,具体可见下文。实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS本环节是ETL环节,即使用ETL工具对原始数据(data.txt)进行清理并导入到HDFS中,所以这个环节的内容可以概括为两点:(1)清理:源病理数据中有些记录的某个字段含有“?”,会对后面的模型训练产生影响,因而需要把这部分数据清理掉;(2)导入:将清理后的数据导入到HDFS中,作为训练数据集。流行的ETL工具有很多,这里我们将使用Kettle。实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(1)新建“转换”实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(2)配置Hadoop集群信息

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(3)配置“输入”与“输出”

在核心对象-->输入这个地方拖出一个“文本文件输入”,在“BigData”目录下拖出“HadoopFileOutput”,如图:实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(3)配置“输入”与“输出”

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(3)配置“输入”与“输出”

(3)配置“输入”与“输出”

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(3)配置“输入”与“输出”

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(3)配置“输入”与“输出”

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(3)配置“输入”与“输出”

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(4)执行“转换”

实时医疗大数据分析实现方法

使用Kettle/Sqoop等ETL工具,将数据导入HDFS(5)查看导入后的结果

前面我们把数据导入到了路径/data/test/data.txt中,现在来看一下HDFS中的这个文件是否存在,如下:可见确实有一个data.txt文件,继续看一下文件的内容:实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件本环节是Kafka与SparkStreaming交互的环节,我们将实现一个程序,实现SparkStreaming从Kafka处读取数据并最终存储到HDFS中,作为测试数据集,以便最后的预测使用。在这个环节中,我们将会有两大部分内容:(1)测试前面到的环境搭建时安装的Kafka集群是否能够正常运作;(2)创建Kafkaproducer,输入测试数据,SparkStreaming从Kafka处读取数据并最终存储到HDFS,模拟读取“医疗数据”的过程。实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(1)下载用例程序相关jar包

本实例用到的jar包为:spark-streaming-kafka_2.10-1.5.2.jar,

kafka_2.10-.3.4.51-1.jar,metrics-core-2.2.0.jar,zkclient-0.7.jar实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(2)程序代码解析

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(3)测试Kafka集群

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(3)测试Kafka集群

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(3)测试Kafka集群

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(3)测试Kafka集群

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

Spark启动好了之后,可以键入“:paste”命令,这样就可以把我们写好的程序直接复制粘贴上去,建议先在文档编辑器或IDE上先写好程序,再把代码复制到Sparkshell上运行,键入Ctrl-D后程序开始运行(当然,也可以一步一步执行代码段):实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

切回到Sparkshell中,可以看到在时间戳为1482652780000ms时,读到数据实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

实时医疗大数据分析实现方法

基于SparkStreaming开发Kafka连接器组件(4)SparkStreaming从Kafka读取数据,并存储到HDFS

实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

完成了上面两个环节的实践后,此时HDFS中已经有了两种数据集:训练数据集以及“实时医疗数据集”(即测试数据集),那么接下来就将围绕这两种数据集进行实现了。这个环节的主要内容为:

(1)利用训练数据集训练模型;(2)使用模型对测试数据集进行结果预测,最终将结果保存至HDFS中。实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(1)程序代码解析

实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(1)程序代码解析

实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(1)程序代码解析

实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(2)随机森林算法

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。随机森林算法的基本原理:由多个决策树构成的森林,算法分类结果由这些决策树投票得到,决策树在生成的过程当中分别在行方向和列方向上添加随机过程,行方向上构建决策树时采用放回抽样(bootstraping)得到训练数据,列方向上采用无放回随机抽样得到特征子集,并据此得到其最优切分点。实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(3)模型训练及预测结果

在master主机上启动Spark主节点以及从节点,接着以hdfs身份启动Spark,唯一不一样的在于无需使用参数—jars。实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(3)模型训练及预测结果

那么现在就可以开始进行模型的训练了,键入“:paste”命令后,输入训练模型代码段。实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(3)模型训练及预测结果

可以看到,模型的错误率以及MSE值分别为:0.2与0.08551619373301012,这个训练的结果的还是挺不错的。注意:这里的模型其实是可以保存起来,以后可以进行加载使用的,所以当我们觉得某次训练的模型很不错时,可以选择将其保存起来。给出参考指令:model.save(sc,"myModelPath")

valsameModel=RandomForestModel.load(sc,"myModelPath")实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(3)模型训练及预测结果

那么接下来开始使用模型对测试数据进行预测评估,并保存到HDFS上。实时医疗大数据分析实现方法

基于SparkMLlib开发数据挖掘组件

(3)模型训练及预测结果

那么接下来开始使用模型对测试数据进行预测评估,并保存到HDFS上。提纲案例背景与需求概述设计方案环境准备实现方法不足与扩展习题与参考文献实时医疗大数据分析实现方法

不足与扩展

(1)本案例中的数据集的数据量相对较小,建议读者可以尝试使用数据量更大的数据集进行实践,一般而言,训练数据集越大,训练后模型的可靠性越高。(2)读者可以自行编写程序,实现比如按时间间隔反复向Kafka“生产”数据的功能,模拟实际的生产环境,达到真正“实时”效果;(3)请尝试使用其他应用与Kafka进行交互;(4)除了随机森林算法外,思考是否还有其它方法进行数据的预测与分析;(5)案例只演示了导入数据到HDFS,同样的,可以尝试从HDFS导出数据,譬如将最后HDFS的预测结果利用ETL工具等导出到数据库或者其它文件系统中,使用用户友好的方式展示结果,比如网页展示等。提纲案例背景与需求概述设计方案环境准备实现方法不足与扩展习题与参考文献习题与参考文献习题

1.实时医疗大数据分析的核心预测模型是什么?

2.请根据教材内容重现思考实时医疗大数据分析的实现程序。3.请总结实时医疗大数据分析的现实过程。习题与参考文献参考文献

[1]李可,李昕.基于Hadoop生态集群管理系统Ambari的研究与分析[J].

温馨提示

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

评论

0/150

提交评论