,
(浙江理工大學(xué) 信息學(xué)院,杭州 245000)
基于ABC-NB的慢性病診斷分類研究
王尚哲,張云華
(浙江理工大學(xué)信息學(xué)院,杭州245000)
在醫(yī)療領(lǐng)域,醫(yī)生做出有效正確的決策非常重要,為了提高醫(yī)生診斷的準(zhǔn)確性,避免診斷結(jié)果受到醫(yī)生的直覺、潛意識和自身知識不全面等因素的干擾而造成誤判;提出了將改進(jìn)的ABC-NB算法應(yīng)用于慢性病診斷領(lǐng)域,以提高診斷效率,減少誤判幾率;將基于改進(jìn)尺度因子的人工蜂群算法應(yīng)用于慢性病特征的選擇,對數(shù)據(jù)進(jìn)行降維,剔除冗余、無關(guān)的特征,提高收斂速度,增強算法搜索全局最優(yōu)解的能力;接著將預(yù)處理后的數(shù)據(jù)各特征值進(jìn)行訓(xùn)練和學(xué)習(xí)生成貝葉斯分類器,構(gòu)建預(yù)測模型;預(yù)測模塊將診斷結(jié)果顯示出來供醫(yī)護(hù)人員參考,輔助進(jìn)行診斷和決策;實驗表明該模型具有很好的柔性和魯棒性,能夠穩(wěn)定的計算出慢性病的概率,有效的輔助醫(yī)護(hù)人員進(jìn)行診斷。
慢性病診斷;特征選擇;人工蜂群算法;樸素貝葉斯分類器
長時間以來,慢性病一直是危害居民健康的因素之一,其具有病程長且無法治愈的特點,因此慢性病的提前發(fā)現(xiàn)與預(yù)防已逐漸成為我國乃至世界醫(yī)護(hù)人員最關(guān)心的問題之一[1]。近些年,隨著“互聯(lián)網(wǎng)+”浪潮的不斷推進(jìn),越來越多的醫(yī)療衛(wèi)生信息系統(tǒng)在醫(yī)院被使用,大量臨床數(shù)據(jù)被存儲在醫(yī)療數(shù)據(jù)庫中,醫(yī)療數(shù)據(jù)呈現(xiàn)爆炸式的增長,各系統(tǒng)數(shù)據(jù)庫所存儲的相關(guān)醫(yī)療數(shù)據(jù)顯得越發(fā)重要。但由于數(shù)據(jù)多以分散、不連續(xù)的形式存在,僅憑人工閱讀的方式不足以從海量數(shù)據(jù)中分析出更多有用的信息。若能夠運用現(xiàn)代計算機技術(shù)對各種數(shù)據(jù)進(jìn)行篩選、分析,并提取出醫(yī)生的臨床經(jīng)驗以及疾病的診斷知識,構(gòu)造一個輔助診斷模型,為醫(yī)務(wù)人員提供服務(wù)和協(xié)助,則可以避免傳統(tǒng)診斷過程中的主觀判斷,提高慢性病診斷的效率與準(zhǔn)確率。
由于醫(yī)院的醫(yī)療數(shù)據(jù)為海量的,其中存在很多不相關(guān)的特征屬性,從大量的歷史臨床數(shù)據(jù)中發(fā)現(xiàn)有價值的信息為今后的疾病預(yù)測與診斷提供依據(jù)便成了首要任務(wù)[2]。特征選擇是指選擇產(chǎn)生最多預(yù)測結(jié)果的相關(guān)特征的問題,通過特征選擇能剔除不相關(guān)或冗余的特征,保留有效特征,從而達(dá)到從原始數(shù)據(jù)集中得到最優(yōu)子集的目的。在很多實際問題中,搜索和篩選特征變量并沒有普適的方法,常見的算法啟發(fā)式搜索的序列前向選擇算法,其缺點是只增加特征值,不減少特征值;還有類似隨機搜索策略的特征選擇算法,缺點是當(dāng)存在較多的特征數(shù)量時,算法在執(zhí)行的過程中會耗用大量時間,實用性不高[3]。本文提出了一種人工蜂群優(yōu)化算法進(jìn)行特征搜索和選擇。實驗表明,該模型整體診斷率穩(wěn)定在81%左右,有效提高了診斷效率。
人工蜂群算法(artificial bee colony, ABC)是由Karaboga于2005年提出的一種新穎的基于群智能的全局優(yōu)化算法,是近幾年比較熱門的智能算法。蜂群算法是一種非數(shù)值優(yōu)化算法,其直觀背景來源于蜂群的采蜜行為,建立在蜜蜂自組織型與群體智能基礎(chǔ)之上,蜜蜂通過蜂群的分工進(jìn)行不同的行為,對傳回蜂群的信息進(jìn)行共享與交流,從而找到最優(yōu)的蜜源[4-5]。
在一個真正的蜜蜂群落中,不同的任務(wù)有不同的專職蜜蜂執(zhí)行,這些專門的蜜蜂嘗試通過執(zhí)行有效的分工以及對信息進(jìn)行共享和交流,力求最大限度的找到最優(yōu)解,即蜂蜜含量最高的蜜源。人工蜂群算法通過模擬自然界蜜蜂實際采蜜的行為將人工蜂群分為引領(lǐng)蜂、觀察蜂和偵察蜂,引領(lǐng)蜂和觀察蜂之間會根據(jù)蜜源的質(zhì)量等因素進(jìn)行角色切換,當(dāng)引領(lǐng)蜂多次搜尋未找到質(zhì)量有所改善的蜜源時,其角色變成偵察蜂放棄現(xiàn)有的蜜源,在蜂巢周圍繼續(xù)搜索新的蜜源。當(dāng)尋找到質(zhì)量有所改善的蜜源時,便切換角色又變?yōu)橐I(lǐng)蜂。在人工蜂群算法中,蜂群分為數(shù)量相等而角色不同的兩個群體,一半的蜂群為偵查蜂,另一半為觀察蜂。被雇用的蜜蜂利用先前的蜜源信息尋找新的蜜源并與以前搜尋到的蜜源質(zhì)量進(jìn)行對比,然后向其他的觀者蜂提供關(guān)于他們正在搜尋的蜜源質(zhì)量以及位置的信息。等候在蜂巢周圍的觀察蜂根據(jù)偵查蜂傳回的蜜源信息來決定一個蜜源是否開采。
(1)
在搜索的階段,引領(lǐng)蜂在相對應(yīng)的第i個蜜源周圍依據(jù)如下公式(2)尋找新的蜜源:
wid=xid+φ(xid+xkd);
(2)
(3)
如果觀察蜂依據(jù)引領(lǐng)蜂分享的信息去選擇了蜜源i,同樣也會據(jù)公式(2)在蜜源i周圍產(chǎn)生一個新的蜜源,并根據(jù)貪婪選擇法選擇蜜源。在搜索過程中,fiti是可能解Xi的適應(yīng)值。當(dāng)在經(jīng)過t次迭代后,所有的引領(lǐng)蜂和觀察蜂都已搜索完整個空間,如果在到達(dá)閾值limit而蜜源的適應(yīng)值沒有被提高時,則丟棄該蜜源,而與該蜜源相對應(yīng)的引領(lǐng)蜂切換角色變?yōu)閭刹榉洌瑐刹榉湓谒阉骺臻g隨機產(chǎn)生一個新的蜜源代替Xi,m為迭代次數(shù),過程如公式(4)所示:
(4)
為保持普遍性和不失去一般性,解的適應(yīng)度在蜂群算法中根據(jù)公式(5)進(jìn)行評價計算。
fiti=1+abs(fi),fi<0
(5)
將蜂群算法和其他的群體智能算法進(jìn)行對比,根據(jù)蜜源的信息進(jìn)行角色切換是其獨有的機制[7]。蜂群在偵察蜂、跟隨蜂和引領(lǐng)蜂3 類不同角色之間進(jìn)行轉(zhuǎn)換,通過共享信息協(xié)作尋找最優(yōu)的蜜源。在 ABC 算法尋優(yōu)的過程中,不同角色蜜蜂作用有所差別: 引領(lǐng)蜂用于維持優(yōu)良解; 跟隨蜂用于提高收斂速度; 偵察蜂用于增大跳出局部最優(yōu)解的能力。蜂群搜尋最優(yōu)蜜源的過程就是目標(biāo)函數(shù)尋找全局最優(yōu)解的過程。人工蜂群算法流程如圖1所示。
圖1 人工蜂群算法流程
樸素貝葉斯分類是分類算法中較為簡單且誤差率很低的一種,貝葉斯是指基于貝葉斯定理,樸素指的是特征條件獨立[8]。樸素貝葉斯的思想基礎(chǔ)是這樣的:求解給出的待分類項在各個類別中的概率,所得概率最大的類別就被認(rèn)為是此待分類項所屬的類別[9]。
對于一個求解分類的問題,根據(jù)貝葉斯定理,待分類樣本x屬于類別y的概率公式為:
(6)
在這里,x是一個特征向量,將x維度設(shè)為M。由于樸素貝葉斯分類算法中特征條件獨立,上述公式可根據(jù)全概率公式展開表達(dá)為:
(7)
其中:yi∈{c1,c2…ck}屬于K中的一類,類別分為兩類(患病和不患病),只要分別估計出醫(yī)院樣本數(shù)據(jù)特征xi對應(yīng)每一類上的條件概率就可以了。類別yi在所有類別中的概率可根據(jù)訓(xùn)練集計算得出,數(shù)據(jù)特征對應(yīng)每個類別的條件獨立概率向量同樣可通過訓(xùn)練集統(tǒng)計得出。
生成分類器是本階段的主要工作,該階段是機械性的,通過輸入特征屬性和訓(xùn)練樣本,計算訓(xùn)練樣本中每個類別出現(xiàn)的概率以及在不同的類別下各個特征屬性對應(yīng)的條件概率估計,并根據(jù)記錄下的計算結(jié)果生成和輸出分類器。程序可根據(jù)上述討論的公式對類別概率和條件概率完成自動計算。
構(gòu)建訓(xùn)練集:
1)首先,計算公式(7)中的p(y=ck|x):
(8)
其中:I(x)為指示函數(shù),若括號內(nèi)成立,則計1,否則為0。
2)隨后計算分子中的條件概率,設(shè)M維特征的第j維有L個取值,則在給定分類ck下某維特征的某個取值ajl的條件概率為:
(9)
經(jīng)過以上步驟便完成了學(xué)習(xí)的任務(wù),也得到了診斷模型的基本概率。
根據(jù)訓(xùn)練得到的診斷模型,就可以通過上述概率公式(9)進(jìn)行計算未分類實例X屬于各類的后驗概率p(y=ck|X),在公式(7)中對所有的類別來說,其分母的值都相等,故只需計算分子部分即可,具體計算步驟如下:
1)計算該實例屬于y=ck類的概率:
(10)
2)確定該實例所屬的分類y:
y=argmaxp(y=ck|X)
(11)
基于蜂群算法(ABC)和樸素貝葉斯的慢性病推理預(yù)測的ABC-NB整體模型如圖2所示。
圖2 ABC-NB整體模型圖
本文選取了杭州某醫(yī)院高血壓患者的檢驗數(shù)據(jù)作為數(shù)據(jù)集,首先為樸素貝葉斯分類做準(zhǔn)備,根據(jù)具體情況確定特征屬性,輸入是所有待分類樣本數(shù)據(jù),輸出與分類器質(zhì)量相關(guān)的特征屬性和訓(xùn)練樣本。根據(jù)公式(1)隨機初始化一個蜜源,蜜群中每一個蜜源代表了一個特征子集,對特征子集進(jìn)行特征選擇。
蜂群算法特征選擇的偽碼如下:
Initialize the population of food sources N;
Evaluate the fitness;
Repeat(terminate criterion not satisfied)
Generate new food source using the equation:
wid=xid+φ(xid+xkd);
IFfit(wid) ELSE generate new food sources using the equation IF d>limit then ELSE d End 每進(jìn)行一次迭代,根據(jù)公式(4)、(5)判斷算法是否滿足最優(yōu)解的條件,如果滿足,則輸出最優(yōu)解;反之則進(jìn)入公式(2)繼續(xù)進(jìn)行迭代,在此我們通過公式(12)引進(jìn)尺度調(diào)節(jié)因子改進(jìn)公式(2)尋找蜜源,使之更加接近蜜源自然的尋蜜過程。 φi+1=φ,otherwise (12) 對于人工蜂群算法求最優(yōu)解的終止條件,本文通過設(shè)定全局最大迭代次數(shù)和閾值為limit的局部最大迭代次數(shù),用以保證算法終止。迭代完畢之后,輸出最優(yōu)解的蜜源,該蜜源所代表的特征子集即為最優(yōu)特征子集。輸出的該特征子集包含15個特征屬性,分別為年齡、體質(zhì)指數(shù)、胸圍、腰臀比、總膽固醇、有無甲狀腺功能亢進(jìn)性突眼征或下肢水腫、血鉀、血脂、高密度脂蛋白膽固醇、尿酸、性別、尿糖、胸主動脈、腹部動脈和股動脈有無雜音、高血壓家族史、有無神經(jīng)纖維瘤性皮膚斑。 在機器訓(xùn)練和學(xué)習(xí)的過程中會遇到從樣本中算出的概率值為0的情況,這時需要引入拉普拉斯平滑方法,給學(xué)習(xí)步驟中兩個概率計算公式(8) 、(9)的分子和分母都分別加上一個常數(shù)。更新過后的公式如下: (13) 其中:K是類的個數(shù),該模型中類的個數(shù)為2,患病和不患病。 引入維度之后公式如下: (14) Lj是第j維特征的最大取值,平滑因子λ=0為公式(8)、(9)實現(xiàn)的最大似然估計,這時會出現(xiàn)剛剛提到的概率值為0的問題,而λ=1則避免了概率為0問題。引入平滑因子解決0概率之后,根據(jù)上述蜂群算法得出的最優(yōu)特征子集,將包含特征屬性的訓(xùn)練樣本數(shù)據(jù)集進(jìn)行樸素貝葉斯分類器訓(xùn)練,按照改進(jìn)后的公式(14)機器計算出某維下各個特征的取值ajl在給定某分類ck下的條件概率,其中以年齡對慢性病患病的影響最大,作用效應(yīng)為23.62%。 根據(jù)訓(xùn)練得到的條件概率,從15個特征屬性中選擇了8個作為最為最優(yōu)的特征屬性。分別為Age、Sex、BMI、URA、WHR、TC、BF、FHBP。因此樸素貝葉斯網(wǎng)絡(luò)的特征屬性就由這8個因素組成,類變量則為患病和不患病。根據(jù)上述選出的8個特征屬性構(gòu)建診斷模型的樸素貝葉斯結(jié)構(gòu)如圖3所示。 圖3 慢性病診斷模型的樸素貝葉斯結(jié)構(gòu)圖 完成訓(xùn)練以及確定診斷模型的NB圖后,根據(jù)上述的8個特征屬性的值通過分類公式(10)進(jìn)行機器計算和的概率,按照公式(11)選出最大的概率值,確定該樣本所屬的分類是患病還是不患病。 選取1 000個樣本數(shù)據(jù)做為測試,其中700個樣本為換高血壓類別,300個位非高血壓類別。作為參照試驗,采用GA-NB算法同樣對測試樣本進(jìn)行分類,評價標(biāo)準(zhǔn)如下所示: (15) 其中Y和N分別為患高血壓和不換高血壓數(shù)量,YR和YF為在患病樣本中分類為患病和不患病的數(shù)量,NR和NF為在不患病的樣本中分類為不患病和患病的數(shù)量。 樣本的待分類項:E={e1,e2,…,e8},e1,e2,…,e8分別為E的一個特征屬性,代表相關(guān)的高血壓影響因子。 類別集合:C={yes,no},yes,no代表患病和不患病類別。進(jìn)行機器計算類別概率分別為: p(y=yes)=p(E1|yes)p(E2|yes)…p(E8|yes)p(E) (16) p(y=no)=p(E1|no)p(E2|no)…p(E8|no)p(E) (17) 將實驗樣本數(shù)據(jù)分別按照本文模型以及GA-NB參照模型進(jìn)行分類,實驗結(jié)果如圖4所示。 圖4 GA-NB與ABC-NB的準(zhǔn)確率對比 試驗結(jié)果表明,隨著數(shù)據(jù)集百分比的增加,GA算法更容易產(chǎn)生早熟收斂的問題,而ABC算法在迭代的過程中不斷的更新尺度調(diào)節(jié)因子,使得在空間搜索蜜源的過程更接近蜂群在自然界采蜜的行為,可以引導(dǎo)蜂群按照更好的方向收斂到最優(yōu)解,降低了特征子集的維度,從而優(yōu)化了在分類訓(xùn)練階段輸入的特征屬性,提高了模型分類的準(zhǔn)確率。 隨著當(dāng)今互聯(lián)網(wǎng)的快速發(fā)展,醫(yī)療領(lǐng)域產(chǎn)生了海量的臨床數(shù)據(jù),雖然醫(yī)生可以直觀的去查看和分析每一條臨床數(shù)據(jù)進(jìn)行診斷,但是一方面由于數(shù)據(jù)量巨大,超出了時間和精力所能接受的范圍,只能看其中的一部分;另一方面醫(yī)生根據(jù)臨床經(jīng)驗和專業(yè)知識可能會造成診斷的不準(zhǔn)確[10-11]。本文在分析蜂群算法原理和樸素貝葉斯分類器的基礎(chǔ)上,提出了基于改進(jìn)尺度因子的蜂群算法與樸素貝葉斯分類器結(jié)合的慢性病診斷模型,具有很好的柔性和魯棒性,而且提高了模型的分類性能,減少了訓(xùn)練時間。醫(yī)生可以根據(jù)模型分類的結(jié)果,將其和自己的臨床經(jīng)驗以及專業(yè)知識相結(jié)合,這樣不僅節(jié)省了時間,也能夠提高診斷的準(zhǔn)確率。再后續(xù)的研究中,將會在繼續(xù)提高診斷分類準(zhǔn)確率的同時研究將模型應(yīng)用于不同的疾病領(lǐng)域。 [1] 王臨虹. 慢性病防控要高度重視導(dǎo)致慢性病的社會決定因素[J]. 中國健康教育, 2013,29(5):388-389. [2] 許 騰. 基于甲狀腺疾病的臨床數(shù)據(jù)挖掘與分析研究[D]. 上海:東華大學(xué), 2016. [3] 計智偉, 胡 珉, 尹建新. 特征選擇算法綜述[J]. 電子設(shè)計工程, 2011, 19(9):46-51. [4] Suguna N, Thanushkodi K. A Novel Rough Set Reduct Algorithm for Medical Domain Based on Bee Colony Optimization[J]. Computer Science, 2010. [5] 徐 晨, 曹 莉, 梁小曉,等. 基于ABC—BP神經(jīng)網(wǎng)絡(luò)的用電量預(yù)測研究[J]. 計算機測量與控制, 2014, 22(3):912-914. [6] Uzer M S, Yilmaz N, Inan O. Feature selection method based on artificial bee colony algorithm and support vector machines for medical datasets classification[J]. Scientific World Journal, 2013, 2013(11):419187. [7] Karaboga D, Basturk B. A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm[M]. Kluwer Academic Publishers, 2007. [8] Rish I. An empirical study of the naive Bayes classifier[J]. Journal of Universal Computer Science, 2001, 1(2):127. [9] 胡彩平, 倪志偉, 盧亦娟. Naive—Bayes模型及其在范例推理中的應(yīng)用[J]. 計算機技術(shù)與發(fā)展, 2003, 13(5):23-25. [10] 滕 琪, 樊小毛, 何晨光, 等. 醫(yī)療大數(shù)據(jù)特征挖掘及重大突發(fā)疾病早期預(yù)警[J]. 網(wǎng)絡(luò)新媒體技術(shù), 2014 (1): 50-54. [11] 竇 強, 劉鴻齊, 晉曉強,等. 基于全程管理的“互聯(lián)網(wǎng)+”慢性病管理模式[J]. 中華醫(yī)學(xué)圖書情報雜志, 2016, 25(7):22-26. ResearchonDiagnosticClassificationofChronicDiseasesBasedonABC-NB Wang Shangzhe,Zhang Yunhua (Zhejiang Sci-Tech University,Hangzhou 245000,China) In the medical field, it is very important for doctors to make effective and correct decision-making. In order to improve the accuracy of doctors' diagnosis and avoid the misdiagnosis of doctors' intuition, subconscious and incomplete knowledge. ABC-NB algorithm is used in the field of chronic disease diagnosis to improve the diagnostic efficiency and reduce the chance of misjudgment. The artificial bee colony algorithm based on improved scale factor is applied to the selection of chronic disease characteristics, and the data are dimensioned, the redundant and irrelevant features are removed, the convergence speed is improved, and the algorithm is applied to search the global optimal solution. Then, the eigenvalues of the pre-processed data are trained and learned to generate the Bayesian classifier to construct the prediction model. The prediction module displays the diagnostic results for medical staff to assist in the diagnosis and decision making. Experiments show that the model has good flexibility and robustness, can have a stable calculation of the probability of diagnosis of chronic diseases,and it is effective for the diagnosis of medical staff. diagnosis of chronic diseases;feature selection;ABC;naive Bayesian classifier 2017-05-02; 2017-05-26。 王尚哲(1991-),男,河南周口人,碩士研究生,主要從事智能信息處理方向的研究。 1671-4598(2017)11-0197-04 10.16526/j.cnki.11-4762/tp.2017.11.050 TP181 A4 模型的實例計算
4.1 計算過程
4.2 結(jié)果與分析
5 結(jié)束語