李妍池
關(guān)鍵詞:細(xì)菌性肺炎;貝葉斯網(wǎng)絡(luò);醫(yī)療診斷;無(wú)監(jiān)督學(xué)習(xí)
1引言
近年來(lái),受環(huán)境污染、汽車尾氣等因素影響,加之飲食衛(wèi)生問(wèn)題頻出,人們患細(xì)菌性肺炎的概率越來(lái)越高。這種肺炎主要是由金葡菌、肺炎鏈球菌引起的[1],感染后常常表現(xiàn)出干咳、發(fā)燒、呼吸困難等臨床癥狀,常見(jiàn)于兒童及65歲老人群體,致死率高達(dá)60%[2],嚴(yán)重時(shí)極有可能導(dǎo)致肺癌。目前,大多數(shù)醫(yī)院會(huì)對(duì)患者進(jìn)行經(jīng)驗(yàn)性療法,如使用抗生素,但這種醫(yī)療手段的成本較高。如果抗生素選擇不當(dāng),或治療措施不全面,很有可能加大患者死亡的風(fēng)險(xiǎn)。此外,用藥前必須明確病原菌及其耐藥性,這給合理用藥造成了極大的困難[3]。
為了更準(zhǔn)確地診斷細(xì)菌性肺炎,快速評(píng)估病情嚴(yán)重程度,降低檢測(cè)成本,當(dāng)前,基于計(jì)算機(jī)斷層掃描技術(shù)的檢測(cè)方法受到了廣大醫(yī)療人員的一致歡迎。通常來(lái)說(shuō),細(xì)菌性肺炎患者的肺部具有典型的影像學(xué)特征,包括毛玻璃結(jié)節(jié)、肺硬化、肺纖維化和多發(fā)性病變等[4]。近年來(lái),有許多基于深度學(xué)習(xí)的患者肺部CT影像病灶分割的方法應(yīng)運(yùn)而生,但深度學(xué)習(xí)模型必須訓(xùn)練海量的數(shù)據(jù)集才能在準(zhǔn)確率上有所提升,訓(xùn)練過(guò)程漫長(zhǎng)。本文規(guī)避了傳統(tǒng)深度學(xué)習(xí)模型的不足,采用貝葉斯網(wǎng)絡(luò)這一概率模型計(jì)算患病的概率,根據(jù)概率高低幫助醫(yī)護(hù)人員迅速鎖定潛在患者并將之列為重點(diǎn)觀察對(duì)象,實(shí)施服藥、轉(zhuǎn)入重癥病房等一系列后續(xù)措施,從而避免盲目進(jìn)行CT影像檢測(cè),大大減輕醫(yī)療人員的工作壓力。
2貝葉斯網(wǎng)絡(luò)理論基礎(chǔ)
2.1貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)
貝葉斯網(wǎng)絡(luò)(Bayesian
Network)是一種描述基于概率推理的數(shù)學(xué)模型,是一個(gè)有向無(wú)環(huán)圖,它通過(guò)不確定性因果關(guān)系構(gòu)建網(wǎng)絡(luò),并且能夠在已知有限的、不確定的以及不完整的環(huán)境下進(jìn)行模擬推理[5]。貝葉斯網(wǎng)絡(luò)因具有強(qiáng)大的數(shù)學(xué)性能,近年來(lái)越來(lái)越受到研究人員的重視,其在知識(shí)學(xué)習(xí)、醫(yī)療診斷、故障診斷、數(shù)據(jù)分析、視頻跟蹤、智能控制等領(lǐng)域被廣泛應(yīng)用[6]。其結(jié)構(gòu)如圖1所示。
當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)較為復(fù)雜時(shí),可結(jié)合式(1)(2)的變體,計(jì)算出網(wǎng)絡(luò)中各節(jié)點(diǎn)的條件概率。
2.2貝葉斯網(wǎng)絡(luò)的構(gòu)建
利用貝葉斯網(wǎng)絡(luò)進(jìn)行醫(yī)療診斷時(shí),首先需要構(gòu)建出結(jié)構(gòu)合理的網(wǎng)絡(luò)模型。通常來(lái)講,模型構(gòu)建分為以下步驟。
(1)確定構(gòu)建網(wǎng)絡(luò)所需要的變量以及變量的含義。
(2)進(jìn)一步確定變量之間的相互關(guān)系,根據(jù)約束條件確定變量間是否有依賴關(guān)系,從而確定節(jié)點(diǎn)之間的父子層級(jí)關(guān)系以及連接關(guān)系,作出有向無(wú)環(huán)圖。
(3)根據(jù)變量關(guān)系計(jì)算出網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的條件概率,交叉并反復(fù)多次進(jìn)行上述過(guò)程,該步驟需要進(jìn)行結(jié)構(gòu)學(xué)習(xí)和參數(shù)學(xué)習(xí)。
3應(yīng)用于肺炎診斷的貝葉斯網(wǎng)絡(luò)模型建立
3.1變量的選取
本文使用的數(shù)據(jù)集來(lái)自飛槳AI studio提供的癥狀檢測(cè)器,包含兩張CSV表格,列舉了以下變量。
(1)Country:受訪者的國(guó)家列表。
(2)Age:受訪者年齡,分為0~9歲、10~19歲、20~24歲、25~59歲、60歲及以上五個(gè)區(qū)間。
(3)Symptom:受訪者的臨床癥狀,具體為發(fā)燒、疲倦、干咳、呼吸困難、喉嚨痛、癥狀疼痛、鼻塞、流涕、腹瀉。
(4)Severity:患病嚴(yán)重程度,分為輕度、中度、重度三個(gè)等級(jí)。
(5)Contact:此人是否與其他確診細(xì)菌性肺炎患者接觸過(guò),分為接觸、未接觸兩類。
由于數(shù)據(jù)過(guò)多,直接使用上述變量構(gòu)建貝葉斯網(wǎng)絡(luò)會(huì)導(dǎo)致計(jì)算機(jī)負(fù)載過(guò)大、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,不利于后續(xù)計(jì)算,為了降低模型復(fù)雜度,將一些變量合并,得到整合后的表格,如表1所列。
表1中,列表示具體病例,行表示該病例的癥狀、年齡、性別、是否感染等。
3.2變量相關(guān)性分析
利用SPSS Statistics對(duì)變量相關(guān)性進(jìn)行分析,將原始數(shù)據(jù)表格輸入該軟件,可得表2。
由表2可知,癥狀對(duì)于是否感染肺炎具有最大的影響,其中發(fā)燒(Fev)、疲憊(Tir)、喉嚨痛(Sor)、干咳(Dry)、流鼻涕(Run)五個(gè)變量對(duì)感染肺炎具有最大的影響。另外,受訪者的年齡、性別對(duì)患病都有一定的影響。按照各變量對(duì)感染肺炎的影響大小排序,可以得出以下節(jié)點(diǎn)順序:1-發(fā)熱,2一呼吸困難,3一疲憊,4一喉嚨痛,5一干咳,6一疼痛,7一腹瀉,8一流鼻涕,9一鼻塞,10-age 0~9,11-age 60+,12-age 10~19,13-age 20~24,14-age 25~59,15-男性,16-女性。
利用K2搜索算法[7]構(gòu)建網(wǎng)絡(luò)模型,在定義評(píng)分函數(shù)后,該算法可確定出各節(jié)點(diǎn)之間的父子關(guān)系,評(píng)分函數(shù)值高的為父節(jié)點(diǎn),反之則為子節(jié)點(diǎn),從而自動(dòng)學(xué)習(xí)出最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。
3.3貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)
明確節(jié)點(diǎn)的父子層級(jí)關(guān)系和順序后,利用Matlab中自帶的full-BNT工具箱構(gòu)建貝葉斯網(wǎng)絡(luò)。網(wǎng)絡(luò)結(jié)構(gòu)的生成是基于貪心算法的,即以某一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)為初始模型,每次學(xué)習(xí)調(diào)整一條邊,計(jì)算評(píng)分函數(shù),直到函數(shù)值不再減小。輸入節(jié)點(diǎn)名稱后,軟件自動(dòng)生成的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2中,節(jié)點(diǎn)1~16為按照K2算法計(jì)算出的順序排列的癥狀、年齡及性別,節(jié)點(diǎn)17為感染肺炎。該結(jié)構(gòu)圖直觀地反映出節(jié)點(diǎn)之間的關(guān)聯(lián)。由圖2可知,各種癥狀之間存在相互依賴關(guān)系,受訪者是否感染肺炎受多種因素影響,除表現(xiàn)出的臨床癥狀外,受訪者的年齡、性別都會(huì)影響最終結(jié)果。例如,老年人因身體機(jī)能衰退、抵抗力變差,患病的概率大于年輕人。若受訪者表現(xiàn)出疲憊的癥狀,則其發(fā)熱的概率就會(huì)增大。該網(wǎng)絡(luò)結(jié)構(gòu)可以反映出節(jié)點(diǎn)之間的條件約束關(guān)系。
3.4貝葉斯網(wǎng)絡(luò)參數(shù)學(xué)習(xí)
構(gòu)建完整的貝葉斯網(wǎng)絡(luò)最關(guān)鍵的一步是利用樣本數(shù)據(jù)集學(xué)習(xí)每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的條件概率,概率值越準(zhǔn)確,后續(xù)的診斷結(jié)果就越精確.因此需要進(jìn)行貝葉斯網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)。在原始數(shù)據(jù)集較為完整、沒(méi)有缺失值的情況下,通常采用最大似然法進(jìn)行參數(shù)學(xué)習(xí)。計(jì)算各節(jié)點(diǎn)的條件概率時(shí),先根據(jù)專家經(jīng)驗(yàn)粗略地計(jì)算出先驗(yàn)概率分布,再對(duì)數(shù)據(jù)集進(jìn)行分析學(xué)習(xí),計(jì)算出后驗(yàn)概率分布,以此計(jì)算出每個(gè)節(jié)點(diǎn)的條件概率分布表。
4貝葉斯網(wǎng)絡(luò)診斷結(jié)果分析
貝葉斯網(wǎng)絡(luò)訓(xùn)練好之后即可進(jìn)行診斷,診斷的過(guò)程即通過(guò)一些屬性或變量的觀測(cè)值推導(dǎo)出待查詢的屬性與變量的取值。例如,對(duì)于一個(gè)60歲男性受訪者,觀測(cè)到此人表現(xiàn)出了發(fā)熱、流涕、干咳等癥狀,通過(guò)其性別、年齡、臨床癥狀等信息計(jì)算出網(wǎng)絡(luò)中節(jié)點(diǎn)17(感染肺炎)對(duì)應(yīng)的聯(lián)合概率分布表,根據(jù)計(jì)算值判斷此受訪者感染肺炎的概率,從而確定是否需要將此人列為重點(diǎn)觀察對(duì)象,并采取用藥、CT觀測(cè)等后續(xù)一系列醫(yī)療措施。
在Matlab自帶的Full-BNT工具箱中,提供了功能強(qiáng)大的推理引擎。使用聯(lián)合樹(shù)推理引擎jtree_inf_engine(),將原始數(shù)據(jù)集中的1000條樣本輸入圖2網(wǎng)絡(luò)模型中,每一輪訓(xùn)練都增加1000條樣本,直到將10000條樣本全部訓(xùn)練完。模型訓(xùn)練完成后,將測(cè)試集輸入模型中,即輸入受訪者的癥狀、年齡、性別等信息,輸出該受訪者患病的概率。輸人數(shù)據(jù)的格式為:datal=[1;1;1;1;1;1;1;1;2;2;2;1;2;2;1;2;1],即一個(gè)1x17的向量,若表現(xiàn)出某種臨床癥狀,則相應(yīng)位置用1表示,若無(wú)此癥狀用2表示。上述示例中的datal表示一位臨床表現(xiàn)為發(fā)熱、呼吸困難、疲憊、喉嚨痛、干咳、疼痛、腹瀉、流鼻涕的10~19歲的男性,根據(jù)后續(xù)的肺部CT檢測(cè)結(jié)果綜合判斷為確診病例,而網(wǎng)絡(luò)給出的診斷結(jié)果也是患病,說(shuō)明網(wǎng)絡(luò)很好地判斷出了該患者的患病情況。
對(duì)模型準(zhǔn)確率進(jìn)行測(cè)試時(shí),在10000條樣本中,模型診斷出的感染肺炎病例數(shù)量為7533條,診斷準(zhǔn)確率為73.8385%。
當(dāng)輸入新的測(cè)試數(shù)據(jù)時(shí),模型給出的預(yù)測(cè)結(jié)果如表3所列。
表3中,感染概率<50%為低風(fēng)險(xiǎn),50%~70%為中風(fēng)險(xiǎn),高于70%為高風(fēng)險(xiǎn)。對(duì)于中低風(fēng)險(xiǎn)人群,可采取自行去醫(yī)院取藥等措施,而高風(fēng)險(xiǎn)人群則需要后續(xù)進(jìn)行CT影像檢測(cè),根據(jù)檢測(cè)結(jié)果進(jìn)一步確定是否確診。在后續(xù)的測(cè)試過(guò)程中,對(duì)100條受訪者的樣本進(jìn)行了測(cè)試,將網(wǎng)絡(luò)給出的測(cè)試結(jié)果與受訪者真實(shí)的患病情況進(jìn)行對(duì)比后,發(fā)現(xiàn)患病概率為70%以上的受訪者的診斷結(jié)果最接近真實(shí)數(shù)據(jù),即處在這一概率區(qū)間的受訪者的診斷準(zhǔn)確率最高。這一結(jié)果對(duì)于醫(yī)療人員快速辨別潛在患者具有一定的指導(dǎo)意義。
5結(jié)束語(yǔ)
本文提出一種基于貝葉斯網(wǎng)絡(luò)的診斷模型,貝葉斯網(wǎng)絡(luò)是一種有向無(wú)環(huán)圖,可以詳細(xì)地刻畫(huà)變量之間的依賴關(guān)系,并使用條件概率來(lái)描述變量的聯(lián)合概率分布,非常適合應(yīng)用于醫(yī)療診斷領(lǐng)域。本文首先使用Matlab中的Full-BNT工具箱,結(jié)合K2搜索算法得到網(wǎng)絡(luò)的最優(yōu)結(jié)構(gòu),再利用聯(lián)合樹(shù)推理引擎得到各節(jié)點(diǎn)的條件概率分布,求出最終模型,最后選取了多條樣本數(shù)據(jù)進(jìn)行測(cè)試,將網(wǎng)絡(luò)計(jì)算出的患病概率與患者真實(shí)的患病情況進(jìn)行對(duì)比,可以幫助醫(yī)療人員快速排查出需要重點(diǎn)觀察以及進(jìn)一步檢測(cè)的人員,從而避免了大規(guī)模CT影像檢測(cè)造成的資源浪費(fèi)。
本文提出的模型適用于處理沒(méi)有缺失值的樣本,但在實(shí)際生活中受到數(shù)據(jù)搜集技術(shù)手段、患者瞞報(bào)信息等因素影響,搜集到的數(shù)據(jù)往往有較多缺失值。未來(lái)應(yīng)著重研究如何優(yōu)化模型的結(jié)構(gòu),從而更好地應(yīng)用在缺失值的處理上。同時(shí),該模型對(duì)于數(shù)據(jù)集較大的情況還不能很好地應(yīng)對(duì)。為了未來(lái)能將該模型應(yīng)用于各大醫(yī)院,需要增強(qiáng)模型的健壯性和魯棒性。將K2搜索算法、D一分離算法等算法結(jié)合,探索出一種更高效、性能更優(yōu)的結(jié)構(gòu)學(xué)習(xí)算法是一種行之有效的措施,未來(lái)應(yīng)著力研究如何進(jìn)一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),提升模型的算力,助力醫(yī)療人員快速鎖定患者,減輕工作壓力。