方克邦 張云華



摘要:為避免診斷結(jié)果受醫(yī)生潛意識和自身知識不全面等因素干擾而造成誤判,提高醫(yī)生診斷準(zhǔn)確性,基于PCA-C4.5算法設(shè)計一款高血壓預(yù)診系統(tǒng)。采用PCA算法把可能具有相關(guān)性的高維變量變成線性無關(guān)的低維變量;對數(shù)據(jù)屬性缺失問題通過決策樹處理屬性值缺失樣本,對預(yù)處理后的數(shù)據(jù)特征值進行訓(xùn)練和學(xué)習(xí)生成決策樹。實驗結(jié)果表明,基于PCA-C4.5算法的分類準(zhǔn)確率平均達到了85.46%,相較傳統(tǒng)C4.5算法提高了約1.27%。該系統(tǒng)不僅能夠輔助醫(yī)護人員進行高血壓診斷,還可為用戶自診提供支持。
關(guān)鍵詞:PCA算法;高血壓診斷;決策樹;預(yù)診系統(tǒng)
DOI: 10. 11907/rjdk.191744
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP319
文獻標(biāo)識碼:A
文章編號:1672-7800(2020)004-0164-05
Hypertension Pre-diagnosis System Based on PCA-C4.5 Algorithm
FANG Ke-bang, ZHANG Yun-hua
(School 0f Information , Zhejiang kSci- Tech Univer.sity , Hangzhou 310018.Ch.ina )Abstract: In order to avoid the misjudgment caused by the doctors ' subconscious and incomplete kno,,-ledge, and improve the accura-cy of doctor' s diagnosis, a pre-diagnosis sy stem for hypertension was designed based on PCA-C4.5 algorithm. This sy stem uses thePCA algorithiu to turn the high-dimensional variables that would be related into linear-independent low-dimensional variahles. For theproblem of missing data attributes. the missing samples of the attribute values were processed by the decision tree. and the characteris-tics of' the preprocessed data were processed. Values are trained and learned to generate decision trees. The experimental results showthat the average classification accuracy rate based on PCA-C4.5 algorithm reached 85.46c7e . u-hich u-as ahout l.27% higher than thetraditional C4.5 algorithm. The pre-diagnosis system based on this design can not only assist medical staff' in the diagnosis of hyperten-sion . but also provide effective self-diagnosis f'or users.Key Words : PCA algorithm ; hy pertension ; decision tree ; pre-diagnosis system
O 引言
高血壓是世界上最常見的心血管疾病,也是最大的流行病之一,我國有大量的高血壓患者…。高血壓常引起心、腦、腎等臟器并發(fā)癥,嚴(yán)重危害人類健康。提高對高血壓病的認識,對早期預(yù)防、及時治療有極其重要意義。根據(jù)2017年統(tǒng)計,我國高血壓患病人口已超過2.7億,而且每年還有大量新增患者[2]。現(xiàn)代醫(yī)療數(shù)據(jù)呈現(xiàn)爆炸式增長,而數(shù)據(jù)多以分散、不連續(xù)的形式出現(xiàn)[3],人工閱讀根本無法滿足需求。若能應(yīng)用現(xiàn)代計算機技術(shù)及相關(guān)專業(yè)知識構(gòu)建一套系統(tǒng)供醫(yī)生和患者使用,無疑會帶來很大便利,提高診斷效率和準(zhǔn)確率。
數(shù)據(jù)處理需要建立在完備的數(shù)據(jù)上,但在數(shù)據(jù)整理收集過程中很難避免缺失和維數(shù)較高等問題[4-5],所以在進行分析之前,必須對高維數(shù)據(jù)進行降維處理。以前對數(shù)據(jù)處理時一般存在數(shù)據(jù)丟失嚴(yán)重或降維不徹底等缺陷,導(dǎo)致分類結(jié)果不準(zhǔn)確[5]。通過PCA算法,可以把高維數(shù)據(jù)降成低維數(shù)據(jù),而且新的低維數(shù)據(jù)集會盡可能保留原始數(shù)據(jù)的變量[4],這使得后面的分析更準(zhǔn)確。將預(yù)處理后的數(shù)據(jù)進行決策樹構(gòu)建,達到分類預(yù)測目的。基于此,設(shè)計一款高血壓預(yù)診分析系統(tǒng),以有效輔助醫(yī)療診斷。
1 數(shù)據(jù)降維處理
I.1 PCA算法原理
主成分分析( Principal Component Analvsi,PCA)是Pear-son[5]在1901年提出、后來自Hotelling在1933年加以發(fā)展的一種多變量統(tǒng)計方法[6],是一種探索高維數(shù)據(jù)結(jié)構(gòu)的技術(shù),也是一種較常用的降維技術(shù)。PCA的主要思想是將n維特征映射到k維上,k維全新的正交特征也稱為主成分,是在原有n維特征基礎(chǔ)上重新構(gòu)造出來的k維特征。在PCA中,數(shù)據(jù)從原來的坐標(biāo)系轉(zhuǎn)換到新的坐標(biāo)系,新的坐標(biāo)系選擇與數(shù)據(jù)本身密切相關(guān)[7]。第一個新坐標(biāo)軸選擇原始數(shù)據(jù)中方差最大的方向,第二個新坐標(biāo)軸選擇和第一個坐標(biāo)軸正交且具有最大方差的方向[8]。該過程一直重復(fù),重復(fù)次數(shù)為原始數(shù)據(jù)中的特征數(shù)目。大部分方差都包含在最前面的幾個新坐標(biāo)軸中。因此,可以忽略包含方差幾乎為0的特征維度,由此實現(xiàn)對數(shù)據(jù)的降維[9],見圖1。
主成分分析(PCA)算法是經(jīng)典的線性降維技術(shù),算法簡單,具有無線性誤差、無參數(shù)限制等優(yōu)點[10]。
1.2 PCA算法步驟
假定有n個病人樣本,每個樣本共有p個影響因素,構(gòu)成一個nXp階的疾病數(shù)據(jù)矩陣:
由于電子病歷或其它收集到的高血壓病人高危致病因素P較多,所以在P維空間中考察問題比較復(fù)雜,為克服這一困難就需要進行降維處理,即用較少的幾個綜合指標(biāo)代替原來較多的變量指標(biāo)。如將年齡階段離散化,分為青年、中年、老年3個階段;熬夜程度分為輕度和重度,這樣可以用較少的綜合指標(biāo)盡量多地反映信息。
讀人如式(1)的X矩陣。根據(jù)式(2):
計算出各個病人樣本與樣本均值差的平方和均值,即方差:
根據(jù)式(3)度量兩個變量線性相關(guān)性程度,即協(xié)方差。選取協(xié)方差和方差較好的樣本數(shù)據(jù),再計算特征值和特征向量。將計算得到的結(jié)果按值大小排序,保留需要的樣本個數(shù)用于決策樹。PCA算法流程如圖2所示。
2 決策樹C4.5算法
分類技術(shù)是數(shù)據(jù)挖掘領(lǐng)域一種非常重要的研究方法[11]。決策樹技術(shù)是數(shù)據(jù)挖掘的重要分支,由于其具有簡單直觀、易于理解、分類效率高等特點[12]而被廣泛應(yīng)用。C4.5算法構(gòu)造決策樹時選擇分支節(jié)點屬性的依據(jù)是信息增益率[13]。ID3算法中節(jié)點屬性的選擇標(biāo)準(zhǔn)是信息增益大小。因為有較多取值的屬性具有較大的信息增益特點,ID3算法節(jié)點屬性的選擇側(cè)重于取值較多的屬性[14]。C4.5算法以信息增益率為屬性節(jié)點的選擇依據(jù),克服了ID3算法傾向選擇取值較多屬性的不足[15]。
2.1 C4.5算法處理過程
由于預(yù)處理后得到的數(shù)據(jù)集中屬性值不大,所以本文采用一個閾值,當(dāng)缺失值超過樣本屬性總屬性值的2/3時則舍棄,剩下的缺失數(shù)據(jù)根據(jù)已經(jīng)存在的屬性值列出方程,根據(jù)已知求出未知。
數(shù)據(jù)降維時對維數(shù)有一定要求,降低的維數(shù)越少,原始數(shù)據(jù)就保留得越好,所以本文結(jié)合決策樹算法使分類效果達到最優(yōu)。預(yù)處理得到的數(shù)據(jù)不僅具有離散值還具有連續(xù)值。具有連續(xù)型屬性[16]的數(shù)據(jù)需要離散化處理。進行離散化數(shù)據(jù)預(yù)處理后進行根節(jié)點屬性選擇。計算數(shù)據(jù)集中所有屬性的信息增益率,選擇其中的最大值屬性作為根節(jié)點屬性。
算法相關(guān)概念定義如下:
定義1:信息熵。設(shè)S是含有n個訓(xùn)練樣本的數(shù)據(jù)集。信息熵計算公式為:
其中m為類別數(shù),P,是類別i 出現(xiàn)的概率。信息熵越大,不確定性就越大。
定義2:信息增益。對于數(shù)據(jù)集S中A的信息增益為:
其中A的取值為a.,a:,a,…,信息增益可以衡量信息的混亂度和復(fù)雜度。
定義3:信息增益率。
信息增益率使用“分裂信息”值將信息增益規(guī)范化[17-18]。
在以上基本概念的基礎(chǔ)上構(gòu)建決策樹基本步驟:①根據(jù)基本定義分別計算出訓(xùn)練數(shù)據(jù)集的信息熵、信息增益以及信息增益率。通過對這些值進行比較后進入下一步操作;②數(shù)據(jù)集中的數(shù)據(jù)不僅有連續(xù)數(shù)據(jù)還有離散數(shù)據(jù),由步驟①計算出來的信息增益確定節(jié)點屬性,然后根據(jù)節(jié)點屬性的不同建立分支,對于分支中的子數(shù)據(jù)集同樣根據(jù)這樣的規(guī)則建立新的分支,由此構(gòu)建決策樹;③獲取決策規(guī)則進行分類預(yù)測。根據(jù)各分支上屬性的取值獲取決策規(guī)則,新數(shù)據(jù)集根據(jù)決策規(guī)則進行分類預(yù)測。
通過PCA降維得到的數(shù)據(jù)是降序排序的[19],這樣在C4.5算法中可以省略計算信息增益時的多次順序查找,提高效率,節(jié)省時間。
根據(jù)上述模型進行實驗數(shù)據(jù)分析。表l是統(tǒng)計出來的簡要信息示例,用表中的年齡、是否運動、熬夜程度、體重等數(shù)據(jù)屬性分析是否患病。
由以上簡要數(shù)據(jù)屬性表構(gòu)建決策樹實例,步驟如下:
(1)根據(jù)公式(4)計算訓(xùn)練實例所選屬性的信息熵:
I=一(8/14)log(8/14)-(6/14)log(6/14) =0.76hit
(2)按照公式(5)求屬性的信息增益:Entmpy(青年)=一(3/4 )log( 3/4)一(1/4)log(1/4)=0.19hit同理求出Entropy(中年)=0.2lbit、Entropy(老年)=0.09 Gain(年齡)=1-(4/14)* Entropy(青年)-( 5/14)* Entropy
(中年)-(5/14)* Entropy(老年)=0.146bit
(3)根據(jù)公式(6)計算屬性增益率:
I(年齡)=一(4/14)log( 4/14)-(5/14)log(5/14)-
(5/14)log( 5/14=1.577hit
計算出年齡的信息增益率為:gainratio(年齡)=0.146/1.577=0.667。同理,其它屬性的信息增益率為gainratio(運動)=0.436、gainratio(熬夜)=0.376、gainratio(體重)=0.154。
根據(jù)計算出的各屬性信息增益率,選取最大的年齡信息增益率作為根節(jié)點,再根據(jù)不同節(jié)點屬性建立分支。對于各分支內(nèi)的數(shù)據(jù)集,采用遞歸方式計算每個分支內(nèi)屬性的信息增益率。根據(jù)計算的信息增益率選擇屬性20‘,構(gòu)建決策樹,如圖3所示。
通過處理得到的數(shù)據(jù)在構(gòu)建決策樹時省去了很多無意義的屬性數(shù)據(jù),提高了決策樹的構(gòu)建效率。
2.2算法分析與對比
實驗環(huán)境為:CPU Intel(R)Core(TM) i5-2450M CPU@2.50GHz.8G內(nèi)存,120G SSD固態(tài)硬盤,Windowsl0專業(yè)版操作系統(tǒng)。選取UCI標(biāo)準(zhǔn)數(shù)據(jù)庫中的醫(yī)療相關(guān)數(shù)據(jù)集。表2是所選數(shù)據(jù)集的基本信息。在相同實驗環(huán)境下進行對比試驗。為了方便,將改進的算法記為C4.5PCA,對比算法名稱不作修改。表3分別列出了實驗的分類準(zhǔn)確率和分類時間對比結(jié)果。為了避免過度擬合,實驗采用10折交叉驗證方法,其中的訓(xùn)練數(shù)據(jù)集從每個數(shù)據(jù)集中隨機選取80%的樣本,剩下的20%用于測試算法的分類性能。
通過表3的實驗結(jié)果分析可知,本文提出的新算法模型分類準(zhǔn)確率比傳統(tǒng)C4.5算法得到了提高,算法性能得到了提升。
3高血壓預(yù)診系統(tǒng)設(shè)計
3.1 系統(tǒng)總體設(shè)計
本系統(tǒng)以Java語言為主編寫,以vue-element為前端框架,后臺在業(yè)務(wù)處理上使用微服務(wù)框架Spring Boot、MvSQL關(guān)系型數(shù)據(jù)庫以及作為緩存的Redis等[21]。
從高血壓數(shù)據(jù)集選取年齡、是否運動、熬夜程度、遺傳、體重等因素,將以上因素根據(jù)數(shù)據(jù)類型分別進行布爾值標(biāo)記或數(shù)字化標(biāo)記。將這些數(shù)據(jù)整理后加人事務(wù)數(shù)據(jù)庫,便于后續(xù)挖掘。
登陸系統(tǒng)時首先進行身份權(quán)限認證,通過后進人系統(tǒng)。如果是醫(yī)生,只需輸入病人癥狀就可判斷病人的高血壓病是否嚴(yán)重,然后對癥治療。管理員則負責(zé)對系統(tǒng)進行維護、權(quán)限設(shè)置、數(shù)據(jù)整理等工作。如果數(shù)據(jù)出入很大則要刪除,以保證系統(tǒng)時刻處于正常運行狀態(tài)。普通用戶根據(jù)白己的實際情況在系統(tǒng)中錄入數(shù)據(jù),根據(jù)分析結(jié)果隨時關(guān)注身體狀況。無論以何種身份使用系統(tǒng),在錄入數(shù)據(jù)時都會進行錄入數(shù)據(jù)驗證,如果非法則不予通過并返回上一步,合法則進行下一步或保存。
前臺頁面采用時下比較熱門的elementUI設(shè)計,整個系統(tǒng)頁面美觀大方,操作方便,沒有復(fù)雜的使用邏輯,采用消息提示的形式實時提示操作步驟狀態(tài),分析結(jié)果頁面采用餅圖和柱狀圖直觀展示屬性因素對健康的影響,分析結(jié)果及建議一目了然。
系統(tǒng)設(shè)計開發(fā)采用前后端分離。前端通過調(diào)用后臺接口實現(xiàn)前后臺通信,將后臺處理的數(shù)據(jù)展示出來。后臺的分布式微服務(wù)框架分為網(wǎng)關(guān)層、服務(wù)代理層、具體服務(wù)層。網(wǎng)關(guān)層是統(tǒng)一請求人口,處理權(quán)限認證和負載均衡等問題,并向外提供RESTFul API;服務(wù)代理層提高系統(tǒng)擴展性和可復(fù)用性,抽取公用服務(wù)接口,由代理將請求路由至具體服務(wù);具體服務(wù)層實現(xiàn)數(shù)據(jù)處理、分析、挖掘等核心功能。
數(shù)據(jù)庫簡要信息如表4所示。
3.2系統(tǒng)使用頁面及分析結(jié)果
患者信息管理系統(tǒng)數(shù)據(jù)管理頁面主要用于用戶信息管理和分析。具體的用戶數(shù)據(jù)以表格形式展現(xiàn)在頁面上,包括數(shù)據(jù)唯一標(biāo)識符、姓名、年齡、性別、電話、創(chuàng)建時間等基礎(chǔ)信息以及數(shù)據(jù)是否已分析的狀態(tài)信息,另外支持?jǐn)?shù)據(jù)新增、修改、刪除、查詢等操作。數(shù)據(jù)管理頁面最重要的功能是可對勾選的數(shù)據(jù)進行一鍵分析,得到數(shù)據(jù)分析結(jié)果并在數(shù)據(jù)分析結(jié)果頁面上展示。
當(dāng)輸入患者信息后分析結(jié)果如圖5所示,分析結(jié)果頁面包括患者基本信息、分析結(jié)果、信息提示等部分。
系統(tǒng)將基本信息及癥狀屬性(屬性個數(shù)不限)錄入后,可點擊一鍵分析進行數(shù)據(jù)分析,這時系統(tǒng)將白動判斷數(shù)據(jù)錄入是否有效。若有效則進入分析步驟,無效則不進入分析并提示原因。當(dāng)進入分析步驟并完成分析后,用戶狀態(tài)將由初始錄入完成時的待分析變?yōu)橐淹瓿蔂顟B(tài),這時可到分析結(jié)果管理頁面查看分析結(jié)果,或者點擊導(dǎo)出分析結(jié)果PDF報告。對獲取的數(shù)據(jù)進行分析后得到的結(jié)果如圖6所示。顯示結(jié)果與真實的醫(yī)學(xué)診斷結(jié)果一致,表明系統(tǒng)具有實用價值,可有效輔助醫(yī)生工作和病人白查。
4 結(jié)語
針對醫(yī)療數(shù)據(jù)分類準(zhǔn)確率不高等問題,本文在進行數(shù)據(jù)分析之前,首先利用PCA算法對數(shù)據(jù)進行降維,通過設(shè)置合理的閾值將數(shù)據(jù)降到合理的維數(shù),得到質(zhì)量較高的數(shù)據(jù)。然后利用C4.5算法構(gòu)建決策樹,最終對數(shù)據(jù)進行分類。對比實驗表明,基于PCA決策樹分類算法的分類準(zhǔn)確率得到提高。本文設(shè)計的高血壓疾病診療系統(tǒng)用于輔助醫(yī)生診斷,幫助患者日常白查、預(yù)防、保健,應(yīng)用效果較好。在后續(xù)研究中將繼續(xù)對分類算法準(zhǔn)確率及分類時間進行優(yōu)化,將診療系統(tǒng)應(yīng)用于更多疾病診斷。
參考文獻:
[1]楊煥崢,楊國華,徐玲基于比值算法的物聯(lián)網(wǎng)數(shù)字血壓計系統(tǒng)設(shè)計[J]柳州職業(yè)技術(shù)學(xué)院學(xué)報,2019,19(1):76-82
[2]孫雪松,王曉麗,施天行,等我國高血壓病人就醫(yī)行為研究現(xiàn)狀與啟示[J].中國數(shù)字醫(yī)學(xué),2018,13(6):37-39.
[3]王尚哲,張云華基于ABC_NB的慢性病診斷分類研究[J].計算機測量與控制,2017(11):202-205.
[4]ZHANG T,CHEN W Z,LI M Y.Classification of inter-ictal and ictaleegs using multi-basis mndwpt, dimensionalitv reduction algorithmsand LS-SVM:A comparative studv [J]. Biomedical Signal Prncessingand Control, 2019(47): 240-251
[5]謝霖銓,畢永朋,廖龍龍.基于PCA的近鄰均值填補優(yōu)化算法[j].軟件導(dǎo)刊,2018,17(6):67-69
[6]李珩,武雪芳,基于人工智能算法的入侵檢測技術(shù)研究[J].消費電子,2013( 22):85-86.
[7] 魏汝哲,王劍平,付萍,等.基于PCA挖掘的SLE疾病的數(shù)據(jù)相關(guān)性研究[J].軟件,2017(12):95-97
[8]ZHAO X W,GLO J,NIE F P. et al. Joint principal component anddiscriminant analvsis fnr dimensionalitv reduction[J]. IEEE Transac-tions on Neural Networks and Learning Systems 2019(1):1-12
[9]陸超.PCA方法的運動軌跡檢測算法研究[J].計算機技術(shù)與發(fā)展,2017. 27(5):179-182.
[10]李蟬娟.高維數(shù)據(jù)降維處理關(guān)鍵技術(shù)研究[D].成都:電子科技大學(xué),2017.
[II]陳杰,烏春學(xué)決策樹C4.5算法改進與應(yīng)用[J].軟件導(dǎo)刊,2018,17(10):88-92
[12]HAN L, LI W J,SL Z. An assertive reasoning method for emergency
response management based on knowledge elements C4.5 decision
tree[J]. Expert SystemsWith Applic:ations. 2019(9): 122-131.
[13]THONGSOOK A. NL NTHAWARASILP T. KRAYPET P C4.5 deci-sion tree against neural network on gait phase recognition for lowerlimp exoskeleton[C] Chulalongkorn Univ. Bangkok, THAILAND:lst International Symposium on Instrumentation, Control. ArtificialIntelligence, and Robotics(ICA-SYMP), 2019: 69-72.
[14]SUZAN K S,EFEhrDI N A fuzzv id3 induction for linguistic datasets[J] International Journal of Intelligent Systems. 2018,33(4):931-942
[15]HAO H. CHEN T M, LU J,et al. The research and anah'sis in deci-sion tree algorithm hased on c4.5algorithm[C].Chongqing: The 3rdIEEE Advanced Infnrmation Technology, Electronic and AutomationCnntrol Conference( IAEAC). 2018
[16]王志春,劉麗娜.一種改進的C4.5決策樹算法[J].電子技術(shù)與軟件工程,2016(9):182-183.
[17]BUDIMAN E. HAVILUDDIl\r, DENGAN N,et al. Performance of de-cision tree c4.5 algorithm in student academic evaluation[C].Inter-national Conference on Computational Scienc.e and Technology.Springer, Singapore, 2017.
[18]陳杰,鄔春學(xué).決策樹C4.5算法改進與應(yīng)用[J].軟件導(dǎo)刊,2018,17(10):88-92
[19]WU C,YLE J, WANG L. et al. Detection and clansification of reces-sive weakness in superbuck cr)nrerter based on wpd-pca and prnba-bilistic neural network[J]Electrnnics, 2019(8):290-297.
[20]黃秀霞,孫力.基于屬性依賴度計算和PCA的C4.5算法[J]傳感器與微系統(tǒng),2017. 36(1):131-134
[21]張沖,張云華.基于改進Aprinri算法的糖尿病預(yù)診系統(tǒng)[J]計算機系統(tǒng)應(yīng)用,2019. 28(2):94-100
(責(zé)任編輯:杜能鋼)
收稿日期:2019-05-22
作者簡介:方克邦(1994-),男,浙江理工大學(xué)信息學(xué)院碩士研究生,研究方向為智能信息處理;張云華(1965-),男,博士,浙江理工大
學(xué)信息學(xué)院教授、碩士生導(dǎo)師,研究方向為智能信息處理、模式識別。本文通訊作者:方克邦。