程遙 萬遂人
(東南大學(xué)生物醫(yī)學(xué)工程學(xué)院,江蘇南京 210000)
基于BP神經(jīng)網(wǎng)絡(luò)的高血壓診療預(yù)測分析
程遙 萬遂人
(東南大學(xué)生物醫(yī)學(xué)工程學(xué)院,江蘇南京 210000)
本文對72例高血壓臨床數(shù)據(jù)展開研究,通過BP神經(jīng)網(wǎng)絡(luò)結(jié)合臨床數(shù)據(jù)中包含的中醫(yī)西醫(yī)的檢查結(jié)果,對高血壓病診斷結(jié)果的等級分層和用藥情況進行預(yù)測分析,通過對10例預(yù)測樣本分析,達到了88%的準確度,并對不同的BP神經(jīng)網(wǎng)絡(luò)函數(shù)進行比較,找到效果更優(yōu)的函數(shù)設(shè)置。
BP人工神經(jīng)網(wǎng)絡(luò) 高血壓 診斷 預(yù)測
BP人工神經(jīng)網(wǎng)絡(luò)也叫反向傳播算法(Back-Propagation)是一種監(jiān)督式的學(xué)習(xí)方法,其主要思想為輸入向量,已知與其對應(yīng)的輸出樣本為,學(xué)習(xí)的目的是用網(wǎng)絡(luò)的實際輸出和實際值之間的誤差來修改權(quán)值,使得它們之間的誤差平方和達到最小,盡可能的接近[1]。
2.1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)處理是建模過程的重要的步驟,數(shù)據(jù)處理的主要目標是針對數(shù)據(jù)源中數(shù)據(jù)的不規(guī)范性、二義性、重復(fù)性和不完整性等問題進行修正[2]。本文所采用的高血壓臨床數(shù)據(jù)樣本主要存在數(shù)據(jù)缺失和錯誤的問題,對出現(xiàn)缺失和錯誤的樣本采取刪除處理,92例數(shù)據(jù)中共處理20例數(shù)據(jù)。
2.2 數(shù)據(jù)選擇和轉(zhuǎn)換
原始數(shù)據(jù)庫包含200多個數(shù)據(jù)項,但我們并不需要使用所有的數(shù)據(jù)項,并不是所有的數(shù)據(jù)都直接影響我們的輸出結(jié)果,我們需要能夠直接影響輸出結(jié)果的數(shù)據(jù)項。最終確定了年齡、性別、飲酒、食鹽量、既往病史、頭暈、胸痛、血糖、血壓、尿酸、高血壓分級、危險分層、用藥種類等37個項目作為建模分析所需的數(shù)據(jù)項。其中32個為BP人工神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)項,5個為輸出數(shù)據(jù)項,輸入數(shù)據(jù)項包含基本信息、中醫(yī)望聞問切檢查項、西醫(yī)實驗室指標和生活習(xí)慣等數(shù)據(jù)項,輸出項為高血壓分級和高血壓危險等級分層以及藥品種類。
數(shù)據(jù)轉(zhuǎn)換工作是對原始數(shù)據(jù)進行二次處理的過程,把原始分布的數(shù)據(jù)進行分層、編號、轉(zhuǎn)換處理。數(shù)據(jù)轉(zhuǎn)換的工作有兩個目的,首先轉(zhuǎn)換數(shù)據(jù)使得數(shù)據(jù)特性更加適合建模,其次在一定程度上可以優(yōu)化模型,使結(jié)果更加準確和穩(wěn)定。例如:對年齡進行分層并進行編號,對身高體重參數(shù)采用BMI體重指數(shù)代替并進行分層編號處理等。本文對37個數(shù)據(jù)項中的13個進行了轉(zhuǎn)換處理,包括年齡、身高體重、實驗室檢查指標以及用藥種類。
2.3 模型建立
本文的數(shù)據(jù)樣本經(jīng)過處理之后一共有72組數(shù)據(jù),其中62組作為訓(xùn)練數(shù)據(jù),10組作為預(yù)測數(shù)據(jù)。每一組數(shù)據(jù)都有32個BP人工神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù)項,5個輸出數(shù)據(jù)項。相對應(yīng)的BP神經(jīng)網(wǎng)絡(luò)的輸入層有32個節(jié)點,輸出層有5個節(jié)點。實驗中采用MATLAB平臺建立模型, MATLAB提供了神經(jīng)網(wǎng)絡(luò)的基本函數(shù),可直接利用函數(shù)進行建模。實驗通過newff函數(shù)可以對網(wǎng)絡(luò)進行創(chuàng)建,在newff中需要對四類參數(shù)進行設(shè)定,分別是:輸入數(shù)據(jù)的最大最小值,層節(jié)點數(shù),轉(zhuǎn)移函數(shù)和BP人工神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)。網(wǎng)絡(luò)創(chuàng)建之后,要通過TRAIN函數(shù)對網(wǎng)絡(luò)進行訓(xùn)練,本文采用62訓(xùn)練樣本,訓(xùn)練次數(shù)設(shè)定為20000,訓(xùn)練步長為0.05,全局最小誤差為0.0001。
圖1 第1、2、3輸出項誤差分析圖
圖2 第4、5輸出項誤差分析圖
我們通過對10組數(shù)據(jù)進行預(yù)測,每一組數(shù)據(jù)有5個輸出項,分別為高血壓診斷分類(3項),用藥種類(2項)。在給出結(jié)果之前,本文創(chuàng)新的針對newff函數(shù)的參數(shù)進行了比對分析,發(fā)現(xiàn)訓(xùn)練函數(shù)為trainscg,轉(zhuǎn)移函數(shù)為(tansig,tansig,purelin)的設(shè)置效果更優(yōu)。圖1和圖2為輸出誤差分析圖,分別對應(yīng)5個輸出項,圖中0刻度代表0誤差,越接近0刻度說明預(yù)測結(jié)果越準確。
從圖1和圖2中我們可以發(fā)現(xiàn),相比于其他函數(shù)組合的網(wǎng)絡(luò)模型誤差分析,此模型的誤差輸出總體上更優(yōu),統(tǒng)計得出預(yù)測結(jié)果達到88%的準確度,全局最小誤差為0.0001的情況下,網(wǎng)絡(luò)用時19秒。
本文的研究對人工神經(jīng)網(wǎng)絡(luò)在高血壓診療方面的成功應(yīng)用提供了有力的支持。對于醫(yī)學(xué)數(shù)據(jù)來說,通過數(shù)據(jù)形式的轉(zhuǎn)換,把原始的指標值通過歸一化、分類編號等處理所建立的網(wǎng)絡(luò)模型性能更好。對于BP人工神經(jīng)網(wǎng)絡(luò)中不同的訓(xùn)練函數(shù)設(shè)定會對網(wǎng)絡(luò)模型的性能產(chǎn)生影響,通過實驗發(fā)現(xiàn)共軛梯度trainscg訓(xùn)練函數(shù)在網(wǎng)絡(luò)預(yù)測表現(xiàn)更好。對于BP人工神經(jīng)網(wǎng)絡(luò)中不同的轉(zhuǎn)移函數(shù)設(shè)定會對網(wǎng)絡(luò)模型的性能產(chǎn)生影響,通過實驗發(fā)現(xiàn)(tansig,tansig,purelin)的函數(shù)組合在網(wǎng)絡(luò)模型預(yù)測中表現(xiàn)更好。
[1]醫(yī)學(xué)數(shù)據(jù)挖掘[M].高等教育出版社,2006.
[2]蘇新寧.數(shù)據(jù)倉庫和數(shù)據(jù)挖掘[M].清華大學(xué)出版社,2006.
Hypertension is a very common disease, but reasons that cause the disease is complicated, this paper focus on classification and prediction of the hypertension. We also do the compare between different function sets to find a much better way.
BP Artificial neural network Hypertension Diagnose Predict