,
(浙江理工大學 信息學院,杭州 245000)
基于ABC-NB的慢性病診斷分類研究
王尚哲,張云華
(浙江理工大學信息學院,杭州245000)
在醫療領域,醫生做出有效正確的決策非常重要,為了提高醫生診斷的準確性,避免診斷結果受到醫生的直覺、潛意識和自身知識不全面等因素的干擾而造成誤判;提出了將改進的ABC-NB算法應用于慢性病診斷領域,以提高診斷效率,減少誤判幾率;將基于改進尺度因子的人工蜂群算法應用于慢性病特征的選擇,對數據進行降維,剔除冗余、無關的特征,提高收斂速度,增強算法搜索全局最優解的能力;接著將預處理后的數據各特征值進行訓練和學習生成貝葉斯分類器,構建預測模型;預測模塊將診斷結果顯示出來供醫護人員參考,輔助進行診斷和決策;實驗表明該模型具有很好的柔性和魯棒性,能夠穩定的計算出慢性病的概率,有效的輔助醫護人員進行診斷。
慢性病診斷;特征選擇;人工蜂群算法;樸素貝葉斯分類器
長時間以來,慢性病一直是危害居民健康的因素之一,其具有病程長且無法治愈的特點,因此慢性病的提前發現與預防已逐漸成為我國乃至世界醫護人員最關心的問題之一[1]。近些年,隨著“互聯網+”浪潮的不斷推進,越來越多的醫療衛生信息系統在醫院被使用,大量臨床數據被存儲在醫療數據庫中,醫療數據呈現爆炸式的增長,各系統數據庫所存儲的相關醫療數據顯得越發重要。但由于數據多以分散、不連續的形式存在,僅憑人工閱讀的方式不足以從海量數據中分析出更多有用的信息。若能夠運用現代計算機技術對各種數據進行篩選、分析,并提取出醫生的臨床經驗以及疾病的診斷知識,構造一個輔助診斷模型,為醫務人員提供服務和協助,則可以避免傳統診斷過程中的主觀判斷,提高慢性病診斷的效率與準確率。
由于醫院的醫療數據為海量的,其中存在很多不相關的特征屬性,從大量的歷史臨床數據中發現有價值的信息為今后的疾病預測與診斷提供依據便成了首要任務[2]。特征選擇是指選擇產生最多預測結果的相關特征的問題,通過特征選擇能剔除不相關或冗余的特征,保留有效特征,從而達到從原始數據集中得到最優子集的目的。在很多實際問題中,搜索和篩選特征變量并沒有普適的方法,常見的算法啟發式搜索的序列前向選擇算法,其缺點是只增加特征值,不減少特征值;還有類似隨機搜索策略的特征選擇算法,缺點是當存在較多的特征數量時,算法在執行的過程中會耗用大量時間,實用性不高[3]。本文提出了一種人工蜂群優化算法進行特征搜索和選擇。實驗表明,該模型整體診斷率穩定在81%左右,有效提高了診斷效率。
人工蜂群算法(artificial bee colony, ABC)是由Karaboga于2005年提出的一種新穎的基于群智能的全局優化算法,是近幾年比較熱門的智能算法。蜂群算法是一種非數值優化算法,其直觀背景來源于蜂群的采蜜行為,建立在蜜蜂自組織型與群體智能基礎之上,蜜蜂通過蜂群的分工進行不同的行為,對傳回蜂群的信息進行共享與交流,從而找到最優的蜜源[4-5]。
在一個真正的蜜蜂群落中,不同的任務有不同的專職蜜蜂執行,這些專門的蜜蜂嘗試通過執行有效的分工以及對信息進行共享和交流,力求最大限度的找到最優解,即蜂蜜含量最高的蜜源。人工蜂群算法通過模擬自然界蜜蜂實際采蜜的行為將人工蜂群分為引領蜂、觀察蜂和偵察蜂,引領蜂和觀察蜂之間會根據蜜源的質量等因素進行角色切換,當引領蜂多次搜尋未找到質量有所改善的蜜源時,其角色變成偵察蜂放棄現有的蜜源,在蜂巢周圍繼續搜索新的蜜源。當尋找到質量有所改善的蜜源時,便切換角色又變為引領蜂。在人工蜂群算法中,蜂群分為數量相等而角色不同的兩個群體,一半的蜂群為偵查蜂,另一半為觀察蜂。被雇用的蜜蜂利用先前的蜜源信息尋找新的蜜源并與以前搜尋到的蜜源質量進行對比,然后向其他的觀者蜂提供關于他們正在搜尋的蜜源質量以及位置的信息。等候在蜂巢周圍的觀察蜂根據偵查蜂傳回的蜜源信息來決定一個蜜源是否開采。
(1)
在搜索的階段,引領蜂在相對應的第i個蜜源周圍依據如下公式(2)尋找新的蜜源:
wid=xid+φ(xid+xkd);
(2)
(3)
如果觀察蜂依據引領蜂分享的信息去選擇了蜜源i,同樣也會據公式(2)在蜜源i周圍產生一個新的蜜源,并根據貪婪選擇法選擇蜜源。在搜索過程中,fiti是可能解Xi的適應值。當在經過t次迭代后,所有的引領蜂和觀察蜂都已搜索完整個空間,如果在到達閾值limit而蜜源的適應值沒有被提高時,則丟棄該蜜源,而與該蜜源相對應的引領蜂切換角色變為偵查蜂,偵查蜂在搜索空間隨機產生一個新的蜜源代替Xi,m為迭代次數,過程如公式(4)所示:
(4)
為保持普遍性和不失去一般性,解的適應度在蜂群算法中根據公式(5)進行評價計算。
fiti=1+abs(fi),fi<0
(5)
將蜂群算法和其他的群體智能算法進行對比,根據蜜源的信息進行角色切換是其獨有的機制[7]。蜂群在偵察蜂、跟隨蜂和引領蜂3 類不同角色之間進行轉換,通過共享信息協作尋找最優的蜜源。在 ABC 算法尋優的過程中,不同角色蜜蜂作用有所差別: 引領蜂用于維持優良解; 跟隨蜂用于提高收斂速度; 偵察蜂用于增大跳出局部最優解的能力。蜂群搜尋最優蜜源的過程就是目標函數尋找全局最優解的過程。人工蜂群算法流程如圖1所示。
圖1 人工蜂群算法流程
樸素貝葉斯分類是分類算法中較為簡單且誤差率很低的一種,貝葉斯是指基于貝葉斯定理,樸素指的是特征條件獨立[8]。樸素貝葉斯的思想基礎是這樣的:求解給出的待分類項在各個類別中的概率,所得概率最大的類別就被認為是此待分類項所屬的類別[9]。
對于一個求解分類的問題,根據貝葉斯定理,待分類樣本x屬于類別y的概率公式為:
(6)
在這里,x是一個特征向量,將x維度設為M。由于樸素貝葉斯分類算法中特征條件獨立,上述公式可根據全概率公式展開表達為:
(7)
其中:yi∈{c1,c2…ck}屬于K中的一類,類別分為兩類(患病和不患病),只要分別估計出醫院樣本數據特征xi對應每一類上的條件概率就可以了。類別yi在所有類別中的概率可根據訓練集計算得出,數據特征對應每個類別的條件獨立概率向量同樣可通過訓練集統計得出。
生成分類器是本階段的主要工作,該階段是機械性的,通過輸入特征屬性和訓練樣本,計算訓練樣本中每個類別出現的概率以及在不同的類別下各個特征屬性對應的條件概率估計,并根據記錄下的計算結果生成和輸出分類器。程序可根據上述討論的公式對類別概率和條件概率完成自動計算。
構建訓練集:
1)首先,計算公式(7)中的p(y=ck|x):
(8)
其中:I(x)為指示函數,若括號內成立,則計1,否則為0。
2)隨后計算分子中的條件概率,設M維特征的第j維有L個取值,則在給定分類ck下某維特征的某個取值ajl的條件概率為:
(9)
經過以上步驟便完成了學習的任務,也得到了診斷模型的基本概率。
根據訓練得到的診斷模型,就可以通過上述概率公式(9)進行計算未分類實例X屬于各類的后驗概率p(y=ck|X),在公式(7)中對所有的類別來說,其分母的值都相等,故只需計算分子部分即可,具體計算步驟如下:
1)計算該實例屬于y=ck類的概率:
(10)
2)確定該實例所屬的分類y:
y=argmaxp(y=ck|X)
(11)
基于蜂群算法(ABC)和樸素貝葉斯的慢性病推理預測的ABC-NB整體模型如圖2所示。
圖2 ABC-NB整體模型圖
本文選取了杭州某醫院高血壓患者的檢驗數據作為數據集,首先為樸素貝葉斯分類做準備,根據具體情況確定特征屬性,輸入是所有待分類樣本數據,輸出與分類器質量相關的特征屬性和訓練樣本。根據公式(1)隨機初始化一個蜜源,蜜群中每一個蜜源代表了一個特征子集,對特征子集進行特征選擇。
蜂群算法特征選擇的偽碼如下:
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 每進行一次迭代,根據公式(4)、(5)判斷算法是否滿足最優解的條件,如果滿足,則輸出最優解;反之則進入公式(2)繼續進行迭代,在此我們通過公式(12)引進尺度調節因子改進公式(2)尋找蜜源,使之更加接近蜜源自然的尋蜜過程。 φi+1=φ,otherwise (12) 對于人工蜂群算法求最優解的終止條件,本文通過設定全局最大迭代次數和閾值為limit的局部最大迭代次數,用以保證算法終止。迭代完畢之后,輸出最優解的蜜源,該蜜源所代表的特征子集即為最優特征子集。輸出的該特征子集包含15個特征屬性,分別為年齡、體質指數、胸圍、腰臀比、總膽固醇、有無甲狀腺功能亢進性突眼征或下肢水腫、血鉀、血脂、高密度脂蛋白膽固醇、尿酸、性別、尿糖、胸主動脈、腹部動脈和股動脈有無雜音、高血壓家族史、有無神經纖維瘤性皮膚斑。 在機器訓練和學習的過程中會遇到從樣本中算出的概率值為0的情況,這時需要引入拉普拉斯平滑方法,給學習步驟中兩個概率計算公式(8) 、(9)的分子和分母都分別加上一個常數。更新過后的公式如下: (13) 其中:K是類的個數,該模型中類的個數為2,患病和不患病。 引入維度之后公式如下: (14) Lj是第j維特征的最大取值,平滑因子λ=0為公式(8)、(9)實現的最大似然估計,這時會出現剛剛提到的概率值為0的問題,而λ=1則避免了概率為0問題。引入平滑因子解決0概率之后,根據上述蜂群算法得出的最優特征子集,將包含特征屬性的訓練樣本數據集進行樸素貝葉斯分類器訓練,按照改進后的公式(14)機器計算出某維下各個特征的取值ajl在給定某分類ck下的條件概率,其中以年齡對慢性病患病的影響最大,作用效應為23.62%。 根據訓練得到的條件概率,從15個特征屬性中選擇了8個作為最為最優的特征屬性。分別為Age、Sex、BMI、URA、WHR、TC、BF、FHBP。因此樸素貝葉斯網絡的特征屬性就由這8個因素組成,類變量則為患病和不患病。根據上述選出的8個特征屬性構建診斷模型的樸素貝葉斯結構如圖3所示。 圖3 慢性病診斷模型的樸素貝葉斯結構圖 完成訓練以及確定診斷模型的NB圖后,根據上述的8個特征屬性的值通過分類公式(10)進行機器計算和的概率,按照公式(11)選出最大的概率值,確定該樣本所屬的分類是患病還是不患病。 選取1 000個樣本數據做為測試,其中700個樣本為換高血壓類別,300個位非高血壓類別。作為參照試驗,采用GA-NB算法同樣對測試樣本進行分類,評價標準如下所示: (15) 其中Y和N分別為患高血壓和不換高血壓數量,YR和YF為在患病樣本中分類為患病和不患病的數量,NR和NF為在不患病的樣本中分類為不患病和患病的數量。 樣本的待分類項:E={e1,e2,…,e8},e1,e2,…,e8分別為E的一個特征屬性,代表相關的高血壓影響因子。 類別集合:C={yes,no},yes,no代表患病和不患病類別。進行機器計算類別概率分別為: 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) 將實驗樣本數據分別按照本文模型以及GA-NB參照模型進行分類,實驗結果如圖4所示。 圖4 GA-NB與ABC-NB的準確率對比 試驗結果表明,隨著數據集百分比的增加,GA算法更容易產生早熟收斂的問題,而ABC算法在迭代的過程中不斷的更新尺度調節因子,使得在空間搜索蜜源的過程更接近蜂群在自然界采蜜的行為,可以引導蜂群按照更好的方向收斂到最優解,降低了特征子集的維度,從而優化了在分類訓練階段輸入的特征屬性,提高了模型分類的準確率。 隨著當今互聯網的快速發展,醫療領域產生了海量的臨床數據,雖然醫生可以直觀的去查看和分析每一條臨床數據進行診斷,但是一方面由于數據量巨大,超出了時間和精力所能接受的范圍,只能看其中的一部分;另一方面醫生根據臨床經驗和專業知識可能會造成診斷的不準確[10-11]。本文在分析蜂群算法原理和樸素貝葉斯分類器的基礎上,提出了基于改進尺度因子的蜂群算法與樸素貝葉斯分類器結合的慢性病診斷模型,具有很好的柔性和魯棒性,而且提高了模型的分類性能,減少了訓練時間。醫生可以根據模型分類的結果,將其和自己的臨床經驗以及專業知識相結合,這樣不僅節省了時間,也能夠提高診斷的準確率。再后續的研究中,將會在繼續提高診斷分類準確率的同時研究將模型應用于不同的疾病領域。 [1] 王臨虹. 慢性病防控要高度重視導致慢性病的社會決定因素[J]. 中國健康教育, 2013,29(5):388-389. [2] 許 騰. 基于甲狀腺疾病的臨床數據挖掘與分析研究[D]. 上海:東華大學, 2016. [3] 計智偉, 胡 珉, 尹建新. 特征選擇算法綜述[J]. 電子設計工程, 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]. 計算機測量與控制, 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模型及其在范例推理中的應用[J]. 計算機技術與發展, 2003, 13(5):23-25. [10] 滕 琪, 樊小毛, 何晨光, 等. 醫療大數據特征挖掘及重大突發疾病早期預警[J]. 網絡新媒體技術, 2014 (1): 50-54. [11] 竇 強, 劉鴻齊, 晉曉強,等. 基于全程管理的“互聯網+”慢性病管理模式[J]. 中華醫學圖書情報雜志, 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 結果與分析
5 結束語