楊宇
(貴州電子信息職業(yè)技術(shù)學(xué)院,貴州凱里,556000)
隨著信息技術(shù)的不斷發(fā)展,大數(shù)據(jù)和人工智能技術(shù)已經(jīng)滲透到醫(yī)療行業(yè)有關(guān)信息系統(tǒng)和智能化平臺(tái),智慧醫(yī)療、醫(yī)療大數(shù)據(jù)也開(kāi)啟了新一輪的研究浪潮[1],如何利用大數(shù)據(jù)及人工智能技術(shù)輔助醫(yī)生對(duì)有關(guān)病例實(shí)施智能化診斷、決策成為主要的研究領(lǐng)域。心臟病是人類(lèi)健康的頭號(hào)殺手,通過(guò)對(duì)人體的有關(guān)體測(cè)指標(biāo)的挖掘分析,實(shí)現(xiàn)輔助病理醫(yī)生進(jìn)行心臟病預(yù)測(cè)具有重要作用[2]。本文采用spark大數(shù)據(jù)處理技術(shù)[3],結(jié)合HDFS分布式數(shù)據(jù)存儲(chǔ)技術(shù)[4],設(shè)計(jì)一種心臟病預(yù)測(cè)平臺(tái)。利用SpringBoot技術(shù)搭建Web服務(wù)器[5],結(jié)合Mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)心臟病預(yù)測(cè)模型與Web服務(wù)器的數(shù)據(jù)實(shí)時(shí)交互[6]。
本系統(tǒng)的整體實(shí)現(xiàn)構(gòu)架如圖1所示。

圖1 系統(tǒng)整體構(gòu)架圖
整個(gè)系統(tǒng)主要由分布式集群服務(wù)器、Web服務(wù)器、客戶(hù)端三個(gè)部分組成,其中分布式集群服務(wù)器主要負(fù)責(zé)對(duì)心臟病體測(cè)數(shù)據(jù)分析建模,其內(nèi)部組成結(jié)構(gòu)如圖2所示。
在圖2中,HDFS分布式文件存儲(chǔ)系統(tǒng)用于存儲(chǔ)心臟病體測(cè)數(shù)據(jù),Spark大數(shù)據(jù)處理平臺(tái)主要提供SparkMllib機(jī)器學(xué)習(xí)庫(kù)[7],用于心臟病預(yù)測(cè)模型的建模分析,MSQL數(shù)據(jù)庫(kù)主要用于存儲(chǔ)Web前端提交的待測(cè)試數(shù)據(jù)及預(yù)測(cè)結(jié)果。
圖1中的Web服務(wù)器及客戶(hù)端的基本構(gòu)成如圖3所示。
在圖2中,spark集群的sparkMllib庫(kù)中的機(jī)器學(xué)習(xí)算法的預(yù)測(cè)結(jié)果被寫(xiě)入MYSQL數(shù)據(jù)庫(kù)。在圖3中Web服務(wù)器主要采用SpringBoot+Vue技術(shù)進(jìn)行搭建[8],主要負(fù)責(zé)與客戶(hù)端進(jìn)行數(shù)據(jù)交互,為預(yù)測(cè)數(shù)據(jù)提供提交平臺(tái)與結(jié)果反饋平臺(tái),以提供良好的用戶(hù)體驗(yàn),完成系統(tǒng)閉環(huán)設(shè)計(jì)。客戶(hù)端主要由PC機(jī)瀏覽器、手機(jī)瀏覽器及微信入口三個(gè)部分構(gòu)成,Web服務(wù)器同時(shí)支持以上三種訪(fǎng)問(wèn)模式。

圖2 分布式集群服務(wù)器結(jié)構(gòu)圖

圖3 Web服務(wù)器及客戶(hù)端
由于心臟病預(yù)測(cè)屬于二分類(lèi)任務(wù),因此模型主要采用Spark大數(shù)據(jù)處理平臺(tái)下的機(jī)器學(xué)習(xí)算法模塊Mllib中的決策樹(shù)算法進(jìn)行實(shí)現(xiàn)。
(1)決策樹(shù)算法實(shí)現(xiàn)預(yù)測(cè)模型
決策樹(shù)是一種經(jīng)典的分類(lèi)算法,已經(jīng)在許多分類(lèi)任務(wù)上取得了良好的效果。決策樹(shù)算法的模型結(jié)構(gòu)呈現(xiàn)樹(shù)狀結(jié)構(gòu),每一個(gè)節(jié)點(diǎn)代表一個(gè)屬性,每一個(gè)輸出代表一個(gè)測(cè)試輸出,每個(gè)葉子節(jié)點(diǎn)代表一個(gè)輸出類(lèi)別。模型訓(xùn)練時(shí),以損失函數(shù)最小化為學(xué)習(xí)目標(biāo),通過(guò)不斷迭代優(yōu)化,即可得到預(yù)測(cè)模型[9]。決策樹(shù)構(gòu)建過(guò)程就是把數(shù)據(jù)按照其特征分布劃分到不同的區(qū)域,該區(qū)域就屬于一個(gè)類(lèi)別標(biāo)簽。在決策樹(shù)的構(gòu)建過(guò)程中,需要根據(jù)信息熵作為劃分標(biāo)準(zhǔn),信息熵的計(jì)算公式下[10]:

其中p表示當(dāng)前節(jié)點(diǎn)的正樣本比例,E表示該節(jié)點(diǎn)的信息熵,E的值越小越好。決策樹(shù)算法訓(xùn)練心臟病預(yù)測(cè)模型流程圖如圖4所示。

圖4 決策樹(shù)訓(xùn)練心臟病預(yù)測(cè)模型
(2)心臟病預(yù)測(cè)流程設(shè)計(jì)
Web前端提交的心臟病預(yù)測(cè)數(shù)據(jù)通過(guò)web服務(wù)器中的MSQL數(shù)據(jù)庫(kù)和spark平臺(tái)進(jìn)行交互,從而達(dá)到疾病的預(yù)測(cè),預(yù)測(cè)流程如圖5所示。

圖5 心臟病預(yù)測(cè)設(shè)計(jì)流程
本文美國(guó)某區(qū)域ICU開(kāi)源體測(cè)數(shù)據(jù)為數(shù)據(jù)源,實(shí)驗(yàn)數(shù)據(jù)用到的字信息如表1所示。

表1 實(shí)驗(yàn)數(shù)據(jù)字段信息
本文實(shí)驗(yàn)環(huán)境采用1臺(tái)管理節(jié)點(diǎn)服務(wù)器與4臺(tái)計(jì)算節(jié)點(diǎn)服務(wù)器,搭建Hadoop+spark集群,其中集群共有5個(gè)節(jié)點(diǎn),一個(gè)Master節(jié)點(diǎn)及4個(gè)Worker節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的配置如表2所示。

表2 每個(gè)節(jié)點(diǎn)配置
數(shù)據(jù)集中80%作為訓(xùn)練集、10%作為驗(yàn)證集、10%作為測(cè)試集利用訓(xùn)練集數(shù)據(jù),采用決策樹(shù)算法進(jìn)行訓(xùn)練,然后再用驗(yàn)證集對(duì)模型進(jìn)行測(cè)試,通過(guò)20個(gè)epoch,模型準(zhǔn)確率變化曲線(xiàn)如圖6所示。

圖6 心臟病預(yù)測(cè)模型準(zhǔn)確率
如圖6得知,當(dāng)訓(xùn)練學(xué)習(xí)到15個(gè)epoch時(shí),預(yù)測(cè)準(zhǔn)確率達(dá)到89.%,隨著迭代次數(shù)的不斷增加,準(zhǔn)確率變化不大,整個(gè)模型最終的預(yù)測(cè)準(zhǔn)確率為89.2%。
Web前端的預(yù)測(cè)界面如圖7所示。

圖7 預(yù)測(cè)結(jié)果界面
在圖7的左側(cè)輸入需要提交的體側(cè)參數(shù),點(diǎn)擊提交分析預(yù)測(cè)按鈕,即可在右側(cè)得到是否患心臟病的預(yù)測(cè)結(jié)果。
本文主要闡述了基于spark技術(shù)的心臟病預(yù)測(cè)平臺(tái)的系統(tǒng)整體設(shè)計(jì)、模型設(shè)計(jì)及測(cè)試結(jié)果,通過(guò)閉環(huán)的系統(tǒng),將spark數(shù)據(jù)分析平臺(tái)和JavaWeb進(jìn)行整合,實(shí)現(xiàn)了對(duì)指定體側(cè)數(shù)據(jù)是否患心臟病的預(yù)測(cè)。測(cè)試結(jié)果表明:該系統(tǒng)穩(wěn)定可靠、操作簡(jiǎn)單、實(shí)時(shí)性……具有一定的社會(huì)意義及參考價(jià)值。