沈 海,王黎光
(西京學(xué)院計(jì)算機(jī)學(xué)院,西安 710123)
貝葉斯網(wǎng)絡(luò)(Bayesian Network)是一種圖形推理技術(shù),用于表達(dá)變量之間的因果關(guān)系,是為了解決不定性和不完整性問(wèn)題而提出的數(shù)學(xué)圖論模型。貝葉斯網(wǎng)絡(luò)對(duì)于不確定知識(shí)的開(kāi)發(fā)具有很大的優(yōu)勢(shì)[1]。在醫(yī)學(xué)領(lǐng)域中,貝葉斯網(wǎng)絡(luò)也常應(yīng)用于癲癇?。?]、乳腺癌[3]等常見(jiàn)疾病的診治工作中。因此,本文將貝葉斯網(wǎng)絡(luò)應(yīng)用到診治前列腺疾病案例中。
貝葉斯網(wǎng)絡(luò)軟件GeNIe2.3為匹茲堡大學(xué)決策系統(tǒng)實(shí)驗(yàn)室所開(kāi)發(fā)的貝葉斯網(wǎng)絡(luò)建模軟件,其初始界面如圖1所示。貝葉斯網(wǎng)絡(luò)的建立包含結(jié)構(gòu)學(xué)習(xí)及參數(shù)訓(xùn)練兩大板塊,診治前列腺疾病貝葉斯網(wǎng)絡(luò)模型建立過(guò)程如下。
圖1 貝葉斯網(wǎng)絡(luò)軟件GeNIe2.3初始界面
貝葉斯網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)表示變量之間定性的影響關(guān)系。貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)旨在利用結(jié)構(gòu)學(xué)習(xí)算法從大量的歷史樣本數(shù)據(jù)中挖掘一種有向無(wú)環(huán)圖結(jié)構(gòu),其能表現(xiàn)變量之間的相關(guān)性。針對(duì)多變量、多樣本數(shù)據(jù),利用結(jié)構(gòu)學(xué)習(xí)算法進(jìn)行結(jié)構(gòu)建模容易導(dǎo)致變量的結(jié)構(gòu)變得過(guò)于復(fù)雜,不利于后續(xù)進(jìn)行分析和診治[4],因此本研究通過(guò)咨詢前列腺疾病領(lǐng)域的專家來(lái)獲取先驗(yàn)知識(shí),結(jié)合文獻(xiàn)查詢調(diào)研,再進(jìn)一步利用相關(guān)結(jié)構(gòu)學(xué)習(xí)算法,構(gòu)建診治前列腺疾病貝葉斯網(wǎng)絡(luò)的基本模型結(jié)構(gòu)。
利用GeNIe軟件進(jìn)行結(jié)構(gòu)學(xué)習(xí)前,首先利用文獻(xiàn)調(diào)研及專家經(jīng)驗(yàn)確定部分變量之間的獨(dú)立關(guān)系。本研究所利用的樣本數(shù)據(jù)中,同類型變量之間保持為條件獨(dú)立,不同類型變量可能存在條件相關(guān)性。基于獨(dú)立關(guān)系,將所收集的81個(gè)變量、2607個(gè)前列腺疾病樣本數(shù)據(jù)導(dǎo)入GeNIe軟件中,使用軟件中的K2學(xué)習(xí)算法進(jìn)行數(shù)據(jù)挖掘。進(jìn)行數(shù)據(jù)挖掘建立結(jié)構(gòu)前,將樣本變量劃分為三大類,分別是疾病類型、誘因和癥狀,如表1和表2所示。其中,可以看出前列腺疾病類型與癥狀、誘因之間存在關(guān)聯(lián)關(guān)系。站在醫(yī)學(xué)科學(xué)的角度講,誘因能導(dǎo)致前列腺疾病的發(fā)生,不同的前列腺疾病類型表現(xiàn)為特有的前列腺疾病癥狀。通過(guò)上述關(guān)系,可以初步確定診治前列腺疾病貝葉斯網(wǎng)絡(luò)的初始結(jié)構(gòu)。
表1 前列腺疾病類型與誘因的對(duì)應(yīng)關(guān)系
表2 前列腺疾病類型與癥狀的對(duì)應(yīng)關(guān)系
在上述基于醫(yī)學(xué)科學(xué)的基礎(chǔ)上,利用所導(dǎo)入的樣本案例數(shù)據(jù),結(jié)合GeNIe軟件中經(jīng)典的K2算法進(jìn)行結(jié)構(gòu)學(xué)習(xí)。該算法為K2評(píng)分函數(shù)和爬山搜索算法的融合算法,利用爬山算法搜索可能存在的結(jié)構(gòu),并利用K2評(píng)分函數(shù)進(jìn)行打分,得分最高的結(jié)構(gòu)即是最優(yōu)結(jié)構(gòu)。該算法的啟動(dòng)界面如圖2所示,由于貝葉斯網(wǎng)絡(luò)中各節(jié)點(diǎn)的條件概率表隨著父節(jié)點(diǎn)數(shù)量的增加而增加,因此設(shè)置最大父節(jié)點(diǎn)數(shù)量為15個(gè),任意節(jié)點(diǎn)的父節(jié)點(diǎn)數(shù)量不超過(guò)15個(gè),避免條件概率表大而影響后續(xù)建模分析。
圖2 貝葉斯網(wǎng)絡(luò)K2結(jié)構(gòu)學(xué)習(xí)算法初始界面
最終獲得的診治前列腺疾病貝葉斯網(wǎng)絡(luò)拓?fù)鋱D初始結(jié)構(gòu)如圖3所示。其中,紅色節(jié)點(diǎn)為前列腺疾病類型,指向紅色節(jié)點(diǎn)的前列腺疾病類型的父節(jié)點(diǎn)——誘因,從紅色節(jié)點(diǎn)出發(fā)指向的節(jié)點(diǎn)為前列腺疾病類型的子節(jié)點(diǎn)——癥狀。該結(jié)構(gòu)清晰地呈現(xiàn)了前列腺疾病類型、誘因和病癥之間的關(guān)系。
圖3 診治前列腺疾病貝葉斯網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
貝葉斯網(wǎng)絡(luò)中的參數(shù)主要為非根節(jié)點(diǎn)(中間節(jié)點(diǎn)和葉節(jié)點(diǎn))的條件概率表(Conditional prob?ability table),進(jìn)而獲得貝葉斯網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的狀態(tài)概率分布。一般而言,在數(shù)據(jù)樣本量充足的情況下,可以通過(guò)機(jī)器學(xué)習(xí)算法進(jìn)行數(shù)據(jù)挖掘以確定貝葉斯網(wǎng)絡(luò)參數(shù)。貝葉斯估計(jì)算法、極大似然估計(jì)算法、梯度下降算法和極大期望值算法為比較常用的參數(shù)學(xué)習(xí)算法;當(dāng)數(shù)據(jù)集合完整可用時(shí),極大似然估計(jì)算法能很好地挖掘樣本數(shù)據(jù)的相關(guān)性,有利于得到最優(yōu)參數(shù)。在樣本數(shù)據(jù)不完整、有缺失時(shí),需采用EM算法進(jìn)行參數(shù)訓(xùn)練。
鑒于本工作所獲得的前列腺診斷數(shù)據(jù)樣本完整可用,并未存在缺失,本工作使用了GeNIe軟件中自帶的極大似然估計(jì)算法進(jìn)行參數(shù)學(xué)習(xí)。該算法不斷模擬條件概率表的可能性情況,直到該條件概率表能使得中間節(jié)點(diǎn)和葉節(jié)點(diǎn)的后驗(yàn)概率接近樣本數(shù)據(jù)的實(shí)際情況,該算法界面如圖4所示。
圖4 診治前列腺疾病貝葉斯網(wǎng)絡(luò)參數(shù)學(xué)習(xí)界面
將樣本數(shù)據(jù)與上述模型結(jié)構(gòu)進(jìn)行匹配,使用極大似然估計(jì)算法來(lái)捕獲該模型中的條件概率表,最終獲得一個(gè)完整的且?guī)в懈怕史植嫉脑\治前列腺疾病的貝葉斯網(wǎng)絡(luò)模型。因?yàn)楸竟ぷ魉鶚?gòu)建的貝葉斯網(wǎng)絡(luò)模型結(jié)構(gòu)較為復(fù)雜,條件概率表亦較為龐大,通過(guò)參數(shù)訓(xùn)練獲取的條件概率表示例如表3所示,0.8993表示當(dāng)父節(jié)點(diǎn)“前列腺癌”和“前列腺增生”同時(shí)處于“State0”(不出現(xiàn))狀態(tài)時(shí),子節(jié)點(diǎn)“下肢無(wú)力”處于“State0”(不出現(xiàn))狀態(tài)的概率為0.8993,其它以此類推。根據(jù)貝葉斯網(wǎng)絡(luò)正向推理理論,貝葉斯網(wǎng)絡(luò)正向推理計(jì)算方法如式(1)和(2)所示:
表3 “下肢無(wú)力”及其父節(jié)點(diǎn)“前列腺癌”和“前列腺增生”之間的條件概率表
式中:P(U)表示為一組節(jié)點(diǎn)U= {B1,B2,…,Bn}的聯(lián)合概率分布,Pa(Bi)為貝葉斯網(wǎng)絡(luò)中節(jié)點(diǎn)Bi的父節(jié)點(diǎn)集合,P(Bi)表示目標(biāo)節(jié)點(diǎn)Bi的先驗(yàn)概率。
運(yùn)行模型進(jìn)行正向推理后各節(jié)點(diǎn)的狀態(tài)概率分布結(jié)果如圖5所示。
如圖5可知,病人患上“急性細(xì)菌性前列腺炎”“急性非細(xì)菌性前列腺炎”“慢性非細(xì)菌性前列腺炎”“慢性細(xì)菌性前列腺炎”“前列腺癌”和“前列腺增生”的概率依次為26%、18%、10%、19%、23%和32%??芍∪嘶忌稀扒傲邢僭錾痹谇傲邢偌膊≈凶顬槌R?jiàn)。
圖5 診治前列腺疾病貝葉斯網(wǎng)絡(luò)模型
貝葉斯網(wǎng)絡(luò)模型能否通過(guò)案例數(shù)據(jù)準(zhǔn)確預(yù)測(cè)目標(biāo)節(jié)點(diǎn)的狀態(tài)概率分布,是判斷模型有效性和可靠性的重要特征。常用的模型檢驗(yàn)方法包括樣本黃金分割法、逐一驗(yàn)證法和K折交叉驗(yàn)證法[5]。樣本黃金分割法要求提前將數(shù)據(jù)樣本按照一定的比例分為參數(shù)訓(xùn)練集和驗(yàn)證集,一般合適的比例為60%訓(xùn)練集,40%驗(yàn)證集,但該方法存在一定的偶然性,受到劃分比例和劃分者的主觀影響更大。逐一驗(yàn)證法要求將n個(gè)數(shù)據(jù)樣本中的n-1個(gè)樣本案例作為參數(shù)學(xué)習(xí)集,剩余1個(gè)作為驗(yàn)證案例驗(yàn)證模型的準(zhǔn)確性,該方法能全面覆蓋樣本進(jìn)行驗(yàn)證,但對(duì)于數(shù)據(jù)量大的樣本案例,運(yùn)算速度過(guò)慢,不利于進(jìn)行模型驗(yàn)證。
本工作使用了K折交叉驗(yàn)證法構(gòu)建混淆矩陣,以驗(yàn)證上述模型的準(zhǔn)確性。首先設(shè)置K折的數(shù)量,由于本工作樣本數(shù)據(jù)量大,設(shè)置K為5促進(jìn)驗(yàn)證過(guò)程快速運(yùn)行,即將2607份樣本數(shù)據(jù)平均分成5份;其次設(shè)置驗(yàn)證節(jié)點(diǎn)為“急性細(xì)菌性前列腺炎”“急性非細(xì)菌性前列腺炎”“慢性非細(xì)菌性前列腺炎”“慢性細(xì)菌性前列腺炎”“前列腺癌”和“前列腺增生”等5個(gè)前列腺疾病節(jié)點(diǎn),將其中4份作為網(wǎng)絡(luò)的參數(shù)訓(xùn)練集,剩余1份作為網(wǎng)絡(luò)的模型驗(yàn)證集檢驗(yàn)?zāi)P皖A(yù)測(cè)驗(yàn)證節(jié)點(diǎn)的準(zhǔn)確性,重復(fù)迭代5次,直至5個(gè)樣本數(shù)據(jù)集合均已完全覆蓋完畢。最終獲得混淆矩陣如圖6所示,矩陣對(duì)角線中的數(shù)值即為預(yù)測(cè)準(zhǔn)確的案例數(shù)量。由圖6可知,急性細(xì)菌性前列腺炎”“急性非細(xì)菌性前列腺炎”“慢性非細(xì)菌性前列腺炎”“慢性細(xì)菌性前列腺炎”“前列腺癌”和“前列腺增生”等5個(gè)前列腺疾病節(jié)點(diǎn)的案例驗(yàn)證準(zhǔn)確性依次高達(dá)88.34%、91.04%、89.96%、85.61%、94.26%、90.01%,其中,對(duì)前列腺癌的預(yù)測(cè)準(zhǔn)確率高達(dá)94.26%??芍撃P蛯?duì)于醫(yī)院診治前列腺疾病具有極高的有效性和實(shí)用性,可用于臨床診治前列腺疾病。
圖6 各驗(yàn)證節(jié)點(diǎn)的準(zhǔn)確率
本研究以前列腺疾病為例,構(gòu)建了診治前列腺疾病的靜態(tài)貝葉斯網(wǎng)絡(luò)模型,通過(guò)參數(shù)學(xué)習(xí)獲取了條件概率表,量化了不同誘因、疾病類型、癥狀之間的影響關(guān)系。通過(guò)K折交叉驗(yàn)證法,驗(yàn)證了模型是否能夠準(zhǔn)確識(shí)別和預(yù)測(cè)不同誘因及癥狀情況下的前列腺疾病類型,充分融合了大數(shù)據(jù)算法和醫(yī)學(xué)專家經(jīng)驗(yàn)的優(yōu)勢(shì)[6]。最終驗(yàn)證得出模型預(yù)測(cè)及識(shí)別前列腺炎的綜合準(zhǔn)確率高達(dá)91.7%,說(shuō)明該模型可用于診治前列腺疾病類型,為醫(yī)護(hù)人員提供更加符合辯證論治的理念以及臨床實(shí)際應(yīng)用模型,進(jìn)而為醫(yī)護(hù)人員提供決策支持。未來(lái),還可以通過(guò)引入診療方案的理念搭建診治前列腺疾病的貝葉斯網(wǎng)絡(luò)模型,從識(shí)別到療養(yǎng)方法著手,不斷推進(jìn)模型的迭代升級(jí)。