趙 慧, 容芷君*, 許 瑩, 但斌斌, 喬 瀚
(1.武漢科技大學(xué)工業(yè)工程系, 武漢 430081; 2.武漢市第五醫(yī)院, 武漢 430050)
中國高血壓患者人數(shù)已達2.45億人[1]。高血壓合并癥是患者血壓控制不佳所引發(fā)的一系列疾病,其存在嚴(yán)重威脅患者的健康狀況。疾病的復(fù)雜性和患者個體特征的多樣性增加了合并癥診斷的難度,因此從醫(yī)學(xué)角度對并發(fā)癥進行預(yù)測十分困難,以機器學(xué)習(xí)方法為基礎(chǔ)的疾病預(yù)測模型通過為醫(yī)生提供臨床決策支持[2],可以提高合并癥的早期檢出效率。常見的疾病預(yù)測模型大多針對單一疾病進行分類,然而在實際臨床場景中患者可能患有多種合并癥。多標(biāo)簽分類是指一個樣本同時屬于多個標(biāo)簽,合并癥預(yù)測是典型的多標(biāo)簽分類問題。
多標(biāo)簽分類模型主要分為問題轉(zhuǎn)換和算法適應(yīng)兩大類[3],問題轉(zhuǎn)換方法是基于一定的策略將多標(biāo)簽問題拆解為多個單標(biāo)簽問題,通過逐個學(xué)習(xí)標(biāo)簽來解決多標(biāo)簽問題,如Ji等[4]提出了一種基于lightGBM(light gradient boosting machine)的疾病預(yù)測模型,針對高血壓的多種合并癥,采用增強策略集成多棵決策樹,將多標(biāo)簽分類問題轉(zhuǎn)化為了二分類問題,問題轉(zhuǎn)換方法簡單易行,然而單獨對標(biāo)簽建模容易導(dǎo)致一些有用的跨類標(biāo)簽信息丟失。算法適應(yīng)則是對常用的單標(biāo)簽分類算法進行改進以解決多標(biāo)簽分類問題,如Guo等[5]使用ML-KNN(multi-labelk-nearest neighbor) 、RankSVM(ranking support vector machine)等多標(biāo)簽算法構(gòu)建了疾病預(yù)測模型,然而這類算法假設(shè)疾病之間相互獨立,未考慮標(biāo)簽之間的相關(guān)性,存在分類準(zhǔn)確性不高的問題。
研究表明疾病之間存在一定關(guān)聯(lián),有效利用疾病之間的相關(guān)性可以提高模型整體的預(yù)測效果[6]。Huang等[7]針對不良心血管事件預(yù)測問題,通過使用正則化項將不良心血管事件之間的相關(guān)性納入模型。Wang等[8]將疾病之間的局部相關(guān)性納入多標(biāo)簽分類模型,并在ICU(intensive care unit)數(shù)據(jù)集上進行了實驗,結(jié)果表明納入疾病相關(guān)性后模型性能有了顯著提升。但這類模型僅考慮臨床指標(biāo)等結(jié)構(gòu)化數(shù)據(jù),忽略了電子病歷中醫(yī)生提供的描述性和評論性的文本,這類高層次的語義信息往往更能表征患者的健康狀況。
為提高合并癥預(yù)測的準(zhǔn)確性,從不同語義空間的臨床概念中提取患者特征,全面構(gòu)建患者特征表示;并在傳統(tǒng)多標(biāo)簽分類算法的基礎(chǔ)上,構(gòu)建基于疾病相關(guān)性的高血壓合并癥預(yù)測模型,從而為醫(yī)生提供更為準(zhǔn)確的臨床決策支持。
高血壓是以體循環(huán)動脈壓增高為主要表現(xiàn)的慢性疾病,研究表明隨著病程發(fā)展,高血壓極易引發(fā)嚴(yán)重的心、腦、腎血管并發(fā)癥,并導(dǎo)致較高的死亡率和致殘率[9],其誘發(fā)的疾病主要有冠心病、腦梗死、糖尿病、高脂血癥等慢性疾病[10]。性別、年齡等患者個體特征以及生化、炎癥、血常規(guī)等實驗室檢出指標(biāo)是高血壓合并癥最基本的影響因素;另外,患者的癥狀和疾病史也是診斷合并癥的重要依據(jù),例如冠心病的診斷依據(jù)為患者存在典型心絞痛、心肌缺血等癥狀或心肌梗死病史[11]。
電子病歷是患者健康信息的重要載體,其中主訴、既往史、現(xiàn)病史這類醫(yī)學(xué)文本描述了患者的癥狀和病史,而檢查數(shù)據(jù)和患者人口統(tǒng)計學(xué)信息這類結(jié)構(gòu)化數(shù)據(jù)則是患者生理狀況的體現(xiàn),基于以上信息醫(yī)生可以利用臨床知識對患者的疾病進行判斷。然而由于患者的個體特征往往呈現(xiàn)出多樣性的特點,使得臨床決策變得困難。
根據(jù)患者的臨床特征,經(jīng)驗豐富的醫(yī)生可以將其歸入某一案例模式進行診斷,ML-KNN基于K近鄰思想尋找患者的相似組,利用組內(nèi)患者疾病標(biāo)簽的概率分布結(jié)合最大后驗概率原則對預(yù)測患者的疾病進行判斷,該方法已被廣泛應(yīng)用于多標(biāo)簽疾病預(yù)測領(lǐng)域。因此在傳統(tǒng)ML-KNN算法的基礎(chǔ)上構(gòu)建高血壓合并癥預(yù)測模型AR-MLKNN(multi-labelk-nearest neighbor based on association rules),模型的總體框架如圖1所示,首先利用主成分分析(PCA)和主題模型(LDA)從不同語義空間的臨床概念中構(gòu)建了患者特征表示,然后使用關(guān)聯(lián)規(guī)則方法從標(biāo)簽空間中挖掘疾病相關(guān)性,并利用ML-KNN計算患者對每個疾病標(biāo)簽的隸屬概率,在此基礎(chǔ)上將疾病相關(guān)性和隸屬概率相結(jié)合計算合并癥風(fēng)險值,最后提出了基于最小化分類損失的閾值調(diào)整方法,通過閾值對合并癥風(fēng)險進行判斷,從而輸出患者合并癥的預(yù)測結(jié)果。

M為患者指標(biāo)值處于正常水平;L為患者指標(biāo)值低于正常水平;H為患者指標(biāo)值高于正常水平;Di為疾病i;Yij為疾病i與疾病j之間的相關(guān)性
所用數(shù)據(jù)來自于武漢市某三甲醫(yī)院住院患者電子病歷,提取了2019年間主要診斷為高血壓的患者的電子病歷,共5 658份。病歷中出現(xiàn)頻率最高的5種疾病及國際疾病分類第10版(ICD-10)編碼如表1所示,這5種疾病均為高血壓的常見合并癥,因此選定這5種疾病作為研究對象。

表1 出現(xiàn)頻率最高的前五種疾病
為保證數(shù)據(jù)的安全性,剔除了包括患者姓名、住址在內(nèi)的全部隱私信息。根據(jù)研究需求,從病歷中提取患者的年齡、性別、檢查、主訴、既往史、現(xiàn)病史,如表2所示。從形式上看,電子病歷數(shù)據(jù)可分為數(shù)值型和文本型,病歷文本中記載了大量和患者疾病相關(guān)性的信息,但其無法為模型直接使用;而檢查數(shù)據(jù)維度高,且不同患者所做的檢查也不完全相同。因此,需要對現(xiàn)有數(shù)據(jù)進行預(yù)處理,將其轉(zhuǎn)化為模型可用的特征向量。

表2 數(shù)據(jù)集中包含的特征
2.2.1 數(shù)值特征提取
電子病歷中的數(shù)值特征主要來自檢查數(shù)據(jù),檢查數(shù)據(jù)反映了患者的生理狀況,基于相關(guān)研究,從病歷中提取與上述5種合并癥相關(guān)的檢查指標(biāo),共162個。由于不同檢查指標(biāo)的取值范圍不同,傳統(tǒng)的數(shù)據(jù)預(yù)處理采用歸一化的方式將不同取值范圍的數(shù)據(jù)映射到區(qū)間[0,1]中,然而檢查指標(biāo)需結(jié)合相關(guān)的臨床知識,因此采用式(1)對檢查指標(biāo)進行賦值處理,其中Tl和Th分別為臨床意義上該檢查指標(biāo)正常值的下限和上限。針對檢查指標(biāo)中的缺失值賦值為0,表示患者未進行該項檢查。
(1)
特征向量維度過高會使模型的計算量急劇增加,帶來“維數(shù)災(zāi)難”,同時部分檢查指標(biāo)之間存在高度的相關(guān)性,數(shù)據(jù)之間存在冗余。主成分分析(principal component analysis,PCA)是一種常用的數(shù)據(jù)降維方法,其通過計算樣本協(xié)方差矩陣的特征向量,將高維特征映射到低維空間,可以有效降低特征維度,并消除冗余特征。使用主成分分析對由年齡、性別、檢查所構(gòu)成的高維特征矩陣進行降維,將所得到主成分矩陣記為C,矩陣的元素Cij表示第i個患者在第j個主成分的取值。
2.2.2 病歷文本特征提取
與檢查數(shù)據(jù)相比,對于包含語義信息的高層次文本型數(shù)據(jù),則需要借助自然語言處理方法將其轉(zhuǎn)換為模型可識別的特征向量。LDA(latent dirichlet allocation)主題模型是一種針對文本中潛在主題信息進行建模的方法[12],通過基于詞袋的方法,LDA主題模型可以將非結(jié)構(gòu)化的文本型數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化的數(shù)值型數(shù)據(jù)。LDA主題模型認(rèn)為文本中的每個詞的生成過程都是以一定概率選擇了某個主題,并從該主題中以一定概率選擇了某個特征詞,如圖2所示。首先采用對電子病歷文本進行分詞處理,并基于停用詞表去除無實際意義的詞。使用北京大學(xué)開源分詞工具Pkuseg對電子病歷進行分詞[13],該分詞工具的特點是支持包括醫(yī)學(xué)在內(nèi)的特定領(lǐng)域分詞;然后計算各特征詞的TF-IDF(term frequency-inverse document frequency)值,并將TF-IDF矩陣輸入LDA主題模型,得到主題矩陣N,矩陣的元素Nij表示第i個患者屬于第j個主題的概率。

圖2 LDA主題模型結(jié)構(gòu)示意圖
將主成分矩陣C和主題矩陣N合成為特征矩陣M=[C,N],矩陣的行即為患者的特征向量。特征矩陣M包含了不同層次的患者特征,確保了特征的完整性。
在實際醫(yī)療場景中,當(dāng)患者確診某種疾病后,基于疾病之間的相關(guān)性,臨床專家能夠更為準(zhǔn)確的診斷和該疾病高度相關(guān)的疾病[8]。關(guān)聯(lián)規(guī)則(association rule,AR)常用于揭示事務(wù)之間的潛在聯(lián)系,可從大數(shù)據(jù)集中產(chǎn)生形式為“A?B”的規(guī)則,其含義為如果A存在,則B同時存在。因此借鑒關(guān)聯(lián)規(guī)則挖掘的思想,發(fā)現(xiàn)疾病之間的并發(fā)規(guī)律,進而量化成對疾病標(biāo)簽之間的相關(guān)性。
對于疾病標(biāo)簽空間L={l1,l2, …,lq}令患者標(biāo)簽數(shù)據(jù)集Y={y1,y2,…,ym},其中yi為第i個患者樣本的標(biāo)簽所構(gòu)成的集合,關(guān)聯(lián)規(guī)則算法挖掘疾病相關(guān)性的步驟如下。
(1)定義最小支持度minsupp和最小置信度minconf。
(2)對于L中的每個疾病標(biāo)簽l,根據(jù)式(2)計算其支持度,可見疾病l的支持度等價于該疾病在患者數(shù)據(jù)集中的發(fā)病率。

(3)令滿足條件supp(l)>minsupp的標(biāo)簽構(gòu)成集合Lf,對于集合Lf中的成對標(biāo)簽lA和LB可生成規(guī)則lA?LB,根據(jù)式(3)可計算規(guī)則lA?LB的置信度。篩選出大于minconf的全部規(guī)則,即為關(guān)聯(lián)規(guī)則挖掘的結(jié)果。
(3)
通過設(shè)定最小支持度和最小置信度,使得關(guān)聯(lián)規(guī)則挖掘的結(jié)果具有一定的代表性和可靠性。定義疾病li和lj的相關(guān)性如式(4)所示,rij值越大,表示當(dāng)疾病li發(fā)生時,疾病lj發(fā)生的概率也會相應(yīng)提高。
rij=conf(li?lj)
(4)
關(guān)聯(lián)規(guī)則可以量化疾病之間的相關(guān)性,為實現(xiàn)合并癥預(yù)測,還需計算樣本對每個疾病標(biāo)簽的隸屬概率。ML-KNN是多標(biāo)簽疾病分類的常用算法之一,基于樣本K鄰域內(nèi)標(biāo)簽的概率分布,ML-KNN以后驗概率的方式計算樣本對每個疾病標(biāo)簽的隸屬概率。
基于ML-KNN算法計算患者疾病標(biāo)簽隸屬概率的方法描述如下:
令X={x1,x2,…,xm}表示患者樣本空間,xi為第i個患者的特征向量。首先基于歐式距離計算樣本之間的距離:
(5)
對于樣本xi,基于樣本之間的距離確定其k近鄰N(xi)。令事件Hj表示具有疾病標(biāo)簽lj,Cj表示N(xi)中標(biāo)簽lj出現(xiàn)的次數(shù)。則xi對疾病lj的隸屬概率可表示為
(6)

(7)

(8)

(9)
ML-KNN算法使用簡單且分類性能高效,通過標(biāo)簽隸屬概率是否大于0.5對患者進行分類,但該方法在模型訓(xùn)練過程中并未考慮標(biāo)簽之間的相關(guān)性,因此ML-KNN算法存在優(yōu)化改進的空間[14]。為提高合并癥分類的準(zhǔn)確性,引入疾病相關(guān)性信息對ML-KNN算法進行改進,提出了基于疾病相關(guān)性的合并癥分類方法。
對于患者數(shù)據(jù)集X以及標(biāo)簽空間L,首先基于關(guān)聯(lián)規(guī)則得到疾病標(biāo)簽之間的相關(guān)性矩陣Rq×q,是對角線元素為1的q階方陣,其元素rij表示疾病標(biāo)簽li和lj的相關(guān)性,即當(dāng)疾病li發(fā)生時,疾病lj也會同時發(fā)生的可能性;其次根據(jù)MLKNN算法求得標(biāo)簽隸屬概率矩陣Pm×q,矩陣的元素pkj表示患者xk患有疾病lj的概率。將標(biāo)簽隸屬概率矩陣和疾病相關(guān)性矩陣相乘,構(gòu)建合并癥風(fēng)險矩陣。
P′m×q=Pm×q×Rq×q
(10)
對于患者xk,其對應(yīng)疾病lj的風(fēng)險值如式(11)所示,公式由兩部分構(gòu)成,第一部分是由MLKNN所輸出的疾病隸屬概率,第二部分為其他疾病對預(yù)測疾病概率的影響,影響程度由疾病之間的相關(guān)性決定。因此合并癥風(fēng)險考慮了疾病之間的成對相關(guān)性,不僅體現(xiàn)了患者個體的疾病特征,還包含了合并癥之間的相互影響。
(11)
分類模型往往通過設(shè)定閾值來對分類結(jié)果進行判斷,閾值的選擇對分類結(jié)果的準(zhǔn)確性具有重要影響。對于用于臨床輔助決策的合并癥分類模型,過高的閾值會降低模型的召回率,影響疾病的檢出效率,過低的閾值又會增加模型誤診的幾率。因此需要確定合適的閾值,以獲取最優(yōu)的分類結(jié)果。多標(biāo)簽問題常使用漢明損失來度量分類結(jié)果的準(zhǔn)確性,漢明損失的計算如式(12)所示,其中h(xi)為模型輸出樣本xi的標(biāo)簽集合,yi為樣本xi的真實標(biāo)簽集合,Δ為兩個集合之間的對稱差,即h(xi)和yi中不同元素的個數(shù)。漢明損失越小,分類準(zhǔn)確性越高。
(12)
因此將漢明損失作為模型的損失函數(shù),設(shè)定閾值t,當(dāng)p′ij大于t時,則認(rèn)為患者患有疾病lj,不斷調(diào)整閾值t并計算相應(yīng)的漢明損失,基于損失最小的原則確定最優(yōu)的閾值t。
h(xi)={lj|p′ij>t, 1 (13) (14) AR-MLKNN算法的流程如下: 算法1 AR-MLKNN 除了漢明損失外,實驗采用精確率(precision)、召回率(recall)、F1-score等多標(biāo)簽分類評價指標(biāo)對AR-MLKNN多標(biāo)簽分類模型的有效性進行評價,各個指標(biāo)的定義和說明如下。 precision表示對于某一標(biāo)簽,預(yù)測正確的標(biāo)簽數(shù)量與預(yù)測為該標(biāo)簽數(shù)量的比值的均值,即在所有預(yù)測為正例的樣本中,模型預(yù)測的正確性。 (15) recall表示對于某一標(biāo)簽,預(yù)測正確的標(biāo)簽數(shù)量與實際為該標(biāo)簽數(shù)量的比值的均值,即在所有實際值是正例的樣本值,模型預(yù)測的正確性。 (16) F1-score是precision和recall的綜合體現(xiàn)。該指標(biāo)越大,模型性能越優(yōu)。 (17) 利用關(guān)聯(lián)規(guī)則對疾病相關(guān)性進行分析,設(shè)定最小支持度minsupp和最小置信度minconf為0.01,共得到446條強關(guān)聯(lián)規(guī)則,采用置信度代表疾病之間的相關(guān)系數(shù),其中前5種疾病的相關(guān)系數(shù)如圖3所示,可見,相關(guān)系數(shù)最高的三對疾病分別是:2型糖尿病(E11.900)→腦梗死(I63.900),相關(guān)系數(shù)為0.34;2型糖尿病(E11.900)→高脂血癥(E78.500),相關(guān)系數(shù)為0.27;2型糖尿病(E11.900)→冠心病(I25.103),相關(guān)性為0.22,可見高血壓合并糖尿病會進一步增加腦梗死、冠心病等心腦血管疾病的發(fā)病概率。同時冠心病(I25.103)和腦梗死(I63.900)之間也顯示出較高的相關(guān)性。 圖3 疾病相關(guān)性挖掘結(jié)果 針對武漢市某三甲醫(yī)院電子病歷數(shù)據(jù),提取結(jié)構(gòu)化的檢查特征和非結(jié)構(gòu)化的文本特征,以高血壓患者常見的5種合并癥作為標(biāo)簽集合,構(gòu)建多標(biāo)簽數(shù)據(jù)集。對數(shù)據(jù)集進行劃分,70%的樣本作為訓(xùn)練集,30%的樣本作為測試集。圖4展示了參數(shù)k和閾值t對模型性能的影響,實驗結(jié)果表明,當(dāng)k=5,t=0.8時,AR-MLKNN模型的性能最優(yōu),此時漢明損失為0.065。當(dāng)k過低時,樣本鄰域內(nèi)標(biāo)簽信息較少,而k過高則會引入更多的噪聲,從而降低模型的分類性能。觀察不同k下閾值變化對模型性能的影響,可見過高或過低的閾值都會降低模型的準(zhǔn)確性,過低的閾值增加了模型誤診的幾率,而過高的閾值又會使模型過于嚴(yán)格,影響疾病的檢出效率。 圖4 不同參數(shù)k下漢明損失隨閾值t的變化曲線 圖5展示了AR-MLKNN模型對5種疾病標(biāo)簽的分類性能,可見模型對高脂血和冠心病具有較好的分類準(zhǔn)確性,對腔隙性腦梗死的分類準(zhǔn)確性相對其他疾病較低,究其原因,腔隙性腦梗死樣本量較低,且大多數(shù)腔隙性腦梗死患者在早期無明顯的臨床癥狀[15],導(dǎo)致模型對其識別準(zhǔn)確性較低。圖6展示了僅以數(shù)值特征作為輸入時,AR-MLKNN模型5種疾病標(biāo)簽的分類性能。與圖5相比,引入文本特征后,模型對冠心病的預(yù)測準(zhǔn)確性有了大幅提升,病歷文本中的癥狀和病史等信息是診斷冠心病的重要依據(jù),僅使用數(shù)值特征模型無法對冠心病進行準(zhǔn)確的識別。 圖5 AR-MLKNN對5種疾病的分類性能 圖6 僅輸入數(shù)值特征時AR-MLKNN對5種疾病的分類性能 表3驗證了引入文本特征和疾病相關(guān)性對分類結(jié)果的影響,實驗結(jié)果表明:①驗證了引入文本特征對模型性能的影響,相較于僅使用結(jié)構(gòu)化的數(shù)值特征,引入文本特征后模型的精確率和召回率均有了一定提升;②以數(shù)值特征和文本特征作為輸入,相較于傳統(tǒng)的ML-KNN分類模型,AR-MLKNN模型(k=5,t=0.8)的召回率提升了14%,F(xiàn)1-score提升了8%,即考慮疾病相關(guān)性可以有效提升模型對疾病的檢出效率,進而改善分類性能。 表3 不同模型的性能對比 針對高血壓患者合并癥預(yù)測的多標(biāo)簽分類問題,從患者特征體系構(gòu)建和標(biāo)簽相關(guān)性兩個方面對傳統(tǒng)多標(biāo)簽分類模型進行改進,構(gòu)建了基于疾病相關(guān)性的高血壓合并癥預(yù)測模型AR-MLKNN。 (1)將同一樣本的文本特征添加到數(shù)值特征中,得到新的特征矩陣,相較于僅使用單一的結(jié)構(gòu)化數(shù)據(jù),綜合考慮非結(jié)構(gòu)化的文本信息可以實現(xiàn)患者不同語義空間的特征提取,更全面地挖掘患者特征,提高模型分類準(zhǔn)確率。 (2)傳統(tǒng)的ML-KNN使用標(biāo)簽隸屬概率對合并癥進行分類,AR-MLKNN基于疾病相關(guān)性對分類過程進行改進,采用合并癥風(fēng)險值替代標(biāo)簽隸屬概率,使其既包含患者個體特征,又包含合并癥之間的相互影響。根據(jù)合并癥風(fēng)險值,AR-MLKNN基于最小化分類損失原則迭代計算不同閾值下模型的分類損失,選取最優(yōu)的分類閾值以確保模型獲取全局最優(yōu)的分類結(jié)果。實驗結(jié)果表明,與傳統(tǒng)的ML-KNN模型相比,在分類階段考慮疾病相關(guān)性可以有效提升模型的召回率,使模型具有更優(yōu)的分類性能。
3.4 方法評價指標(biāo)
4 實驗結(jié)果
4.1 疾病相關(guān)性挖掘結(jié)果

4.2 合并癥預(yù)測結(jié)果




5 結(jié)論