




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東酒店管理職業技術學院高職單招職業技能測試近5年常考版參考題庫含答案解析
- 2025年山西藝術職業學院高職單招(數學)歷年真題考點含答案解析
- 《二十歲光陰不再來》
- T-CESA 1149-2021 人工智能芯片應用 面向病理圖像分析輔助診斷系統的技術要求
- 2020年消防知識課件
- 椅子創意畫課件
- 50618培訓課件教學課件
- 肺炎患者的護理
- 口才專項班課件
- 國際物流運輸合同范本
- 門靜脈高壓癥PPT
- 2023年運行值長題庫
- GB/T 4857.4-2008包裝運輸包裝件基本試驗第4部分:采用壓力試驗機進行的抗壓和堆碼試驗方法
- GB/T 11982.2-2015聚氯乙烯卷材地板第2部分:同質聚氯乙烯卷材地板
- 移動設備小型設備施工方案
- 臨床思維診療訓練系統參數
- 揚州市巡游出租汽車駕駛員從業資格區域科目考試題庫(含答案)
- DB37-T 3466-2018人民防空工程防護(化)設備維護保養規程
- (完整版)建筑構造課件
- 《巖石力學(含實驗)》課程教學大綱
- 中國銀行保函業務培訓(共71頁).ppt
評論
0/150
提交評論