楊宇
(貴州電子信息職業(yè)技術學院,貴州凱里,556000)
隨著信息技術的不斷發(fā)展,大數(shù)據(jù)和人工智能技術已經滲透到醫(yī)療行業(yè)有關信息系統(tǒng)和智能化平臺,智慧醫(yī)療、醫(yī)療大數(shù)據(jù)也開啟了新一輪的研究浪潮[1],如何利用大數(shù)據(jù)及人工智能技術輔助醫(yī)生對有關病例實施智能化診斷、決策成為主要的研究領域。心臟病是人類健康的頭號殺手,通過對人體的有關體測指標的挖掘分析,實現(xiàn)輔助病理醫(yī)生進行心臟病預測具有重要作用[2]。本文采用spark大數(shù)據(jù)處理技術[3],結合HDFS分布式數(shù)據(jù)存儲技術[4],設計一種心臟病預測平臺。利用SpringBoot技術搭建Web服務器[5],結合Mysql數(shù)據(jù)庫實現(xiàn)心臟病預測模型與Web服務器的數(shù)據(jù)實時交互[6]。
本系統(tǒng)的整體實現(xiàn)構架如圖1所示。
圖1 系統(tǒng)整體構架圖
整個系統(tǒng)主要由分布式集群服務器、Web服務器、客戶端三個部分組成,其中分布式集群服務器主要負責對心臟病體測數(shù)據(jù)分析建模,其內部組成結構如圖2所示。
在圖2中,HDFS分布式文件存儲系統(tǒng)用于存儲心臟病體測數(shù)據(jù),Spark大數(shù)據(jù)處理平臺主要提供SparkMllib機器學習庫[7],用于心臟病預測模型的建模分析,MSQL數(shù)據(jù)庫主要用于存儲Web前端提交的待測試數(shù)據(jù)及預測結果。
圖1中的Web服務器及客戶端的基本構成如圖3所示。
在圖2中,spark集群的sparkMllib庫中的機器學習算法的預測結果被寫入MYSQL數(shù)據(jù)庫。在圖3中Web服務器主要采用SpringBoot+Vue技術進行搭建[8],主要負責與客戶端進行數(shù)據(jù)交互,為預測數(shù)據(jù)提供提交平臺與結果反饋平臺,以提供良好的用戶體驗,完成系統(tǒng)閉環(huán)設計??蛻舳酥饕蒔C機瀏覽器、手機瀏覽器及微信入口三個部分構成,Web服務器同時支持以上三種訪問模式。
圖2 分布式集群服務器結構圖
圖3 Web服務器及客戶端
由于心臟病預測屬于二分類任務,因此模型主要采用Spark大數(shù)據(jù)處理平臺下的機器學習算法模塊Mllib中的決策樹算法進行實現(xiàn)。
(1)決策樹算法實現(xiàn)預測模型
決策樹是一種經典的分類算法,已經在許多分類任務上取得了良好的效果。決策樹算法的模型結構呈現(xiàn)樹狀結構,每一個節(jié)點代表一個屬性,每一個輸出代表一個測試輸出,每個葉子節(jié)點代表一個輸出類別。模型訓練時,以損失函數(shù)最小化為學習目標,通過不斷迭代優(yōu)化,即可得到預測模型[9]。決策樹構建過程就是把數(shù)據(jù)按照其特征分布劃分到不同的區(qū)域,該區(qū)域就屬于一個類別標簽。在決策樹的構建過程中,需要根據(jù)信息熵作為劃分標準,信息熵的計算公式下[10]:
其中p表示當前節(jié)點的正樣本比例,E表示該節(jié)點的信息熵,E的值越小越好。決策樹算法訓練心臟病預測模型流程圖如圖4所示。
圖4 決策樹訓練心臟病預測模型
(2)心臟病預測流程設計
Web前端提交的心臟病預測數(shù)據(jù)通過web服務器中的MSQL數(shù)據(jù)庫和spark平臺進行交互,從而達到疾病的預測,預測流程如圖5所示。
圖5 心臟病預測設計流程
本文美國某區(qū)域ICU開源體測數(shù)據(jù)為數(shù)據(jù)源,實驗數(shù)據(jù)用到的字信息如表1所示。
表1 實驗數(shù)據(jù)字段信息
本文實驗環(huán)境采用1臺管理節(jié)點服務器與4臺計算節(jié)點服務器,搭建Hadoop+spark集群,其中集群共有5個節(jié)點,一個Master節(jié)點及4個Worker節(jié)點,每個節(jié)點的配置如表2所示。
表2 每個節(jié)點配置
數(shù)據(jù)集中80%作為訓練集、10%作為驗證集、10%作為測試集利用訓練集數(shù)據(jù),采用決策樹算法進行訓練,然后再用驗證集對模型進行測試,通過20個epoch,模型準確率變化曲線如圖6所示。
圖6 心臟病預測模型準確率
如圖6得知,當訓練學習到15個epoch時,預測準確率達到89.%,隨著迭代次數(shù)的不斷增加,準確率變化不大,整個模型最終的預測準確率為89.2%。
Web前端的預測界面如圖7所示。
圖7 預測結果界面
在圖7的左側輸入需要提交的體側參數(shù),點擊提交分析預測按鈕,即可在右側得到是否患心臟病的預測結果。
本文主要闡述了基于spark技術的心臟病預測平臺的系統(tǒng)整體設計、模型設計及測試結果,通過閉環(huán)的系統(tǒng),將spark數(shù)據(jù)分析平臺和JavaWeb進行整合,實現(xiàn)了對指定體側數(shù)據(jù)是否患心臟病的預測。測試結果表明:該系統(tǒng)穩(wěn)定可靠、操作簡單、實時性……具有一定的社會意義及參考價值。