鄭爾昌, 鄒金串, 薛成斌, 張晉偉, 陳少陽, 陳強, 胡國鵬
(1. 華僑大學(xué) 體育與健康科學(xué)研究中心, 福建 泉州, 362021; 2. 華僑大學(xué) 旅游學(xué)院, 福建 泉州, 362021; 3. 仰恩大學(xué) 管理學(xué)院, 福建 泉州, 362014; 4. 福建省泉州市豐澤區(qū)華大街道社區(qū)衛(wèi)生服務(wù)中心, 福建 泉州, 362021)
糖尿病(diabetes)作為一種慢性疾病,其發(fā)病率逐年增高.糖尿病慢性并發(fā)癥是患者致死、致殘的重要原因.根據(jù)世界衛(wèi)生組織統(tǒng)計,糖尿病并發(fā)癥目前已高達100多種,主要包括糖尿病腎病、糖尿病眼部并發(fā)癥、糖尿病足、糖尿病心血管并發(fā)癥、糖尿病性腦血管病和糖尿病神經(jīng)病變等幾大類.因此,尋找糖尿病并發(fā)癥發(fā)病規(guī)律并根據(jù)相關(guān)指標(biāo)進行并發(fā)癥預(yù)警,進而輔助醫(yī)療工作者盡早診斷及預(yù)防糖尿病并發(fā)癥,是當(dāng)前大健康領(lǐng)域的研究熱點之一[1].文獻[2-4]分別通過回歸模型、機器算法模型等評估人群糖尿病患病風(fēng)險.
近年來,隨著醫(yī)療設(shè)備的升級與機器學(xué)習(xí)算法的應(yīng)用,部分學(xué)者將研究重點轉(zhuǎn)移至糖尿病并發(fā)癥的診斷預(yù)測方面,主要包括關(guān)鍵生理生化指標(biāo)預(yù)測和機器學(xué)習(xí)算法預(yù)測兩類.通過關(guān)鍵生理生化指標(biāo)進行糖尿病并發(fā)癥預(yù)測,在傳統(tǒng)糖尿病并發(fā)癥預(yù)測領(lǐng)域中應(yīng)用較為廣泛.文獻[5-8]分別通過患者血清尿酸(SUA)、尿微量蛋白(MAU)水平、皮膚無創(chuàng)晚期糖基化終末產(chǎn)物等生化指標(biāo)和收縮壓、心率、呼吸等生理指標(biāo)對糖尿病并發(fā)癥進行診斷預(yù)測.統(tǒng)計學(xué)方法與機器學(xué)習(xí)的廣泛應(yīng)用進一步推動了糖尿病并發(fā)癥預(yù)測研究的發(fā)展.文獻[9-11]通過Cox回歸分析分別對糖尿病未來5年心腦血管事件和繼發(fā)性功能障礙進行預(yù)測,研究結(jié)果為糖尿病社區(qū)管理提供了一定的參考.文獻[12-13]均采用了Logistic回歸模型對糖尿病并發(fā)癥進行預(yù)測,模型對糖尿病患者的并發(fā)癥診斷具有較高的預(yù)測價值.隨著機器學(xué)習(xí)各類算法不斷優(yōu)化,模糊綜合評價法[14]、神經(jīng)網(wǎng)絡(luò)模型[15-16]及其他新興機器學(xué)習(xí)算法[17-20]均針對性地應(yīng)用于糖尿病并發(fā)癥的診斷預(yù)測中,并取得較好的預(yù)測效果.
目前,通過不同研究方法對糖尿病并發(fā)癥進行診斷預(yù)測,取得了較豐富的研究成果.對糖尿病并發(fā)癥診斷預(yù)測的研究方法與工具也逐漸從統(tǒng)計學(xué)方法為主向統(tǒng)計學(xué)模型與機器學(xué)習(xí)算法結(jié)合使用轉(zhuǎn)變,隨著人工智能的發(fā)展,將會有越來越多的診斷預(yù)測工具應(yīng)用于該領(lǐng)域的研究中.但當(dāng)前研究較多聚焦于單一糖尿病并發(fā)癥或常見糖尿病聯(lián)合并發(fā)癥,缺乏從糖尿病聯(lián)合并發(fā)癥發(fā)病風(fēng)險角度進行研究.鑒于上述問題,本文對糖尿病聯(lián)合并發(fā)癥發(fā)病風(fēng)險進行計算與預(yù)測.
數(shù)據(jù)來源于國家人口健康科學(xué)數(shù)據(jù)中心《糖尿病并發(fā)癥預(yù)警數(shù)據(jù)集》,包含解放軍總醫(yī)院2013-2017年的2型糖尿病住院患者數(shù)據(jù)共3 000例.數(shù)據(jù)集1,2各字段內(nèi)容,分別如表1,2所示.
表1 數(shù)據(jù)集1各字段內(nèi)容Tab.1 Content of each field in dataset 1
表2 數(shù)據(jù)集2各字段內(nèi)容Tab.2 Content of each field in dataset 2
33項糖尿病并發(fā)癥(表1中的LABEL與表2中的并發(fā)癥)用于高風(fēng)險聯(lián)合并發(fā)癥篩選.在進行數(shù)據(jù)分析之前,對原始數(shù)據(jù)各字段進行預(yù)處理,主要包括類型轉(zhuǎn)換及缺失值處理,舍棄較多缺失值的指標(biāo),其他缺失值指標(biāo)通過Python中sklearn模塊對缺失值進行填充處理.完成數(shù)據(jù)預(yù)處理后,構(gòu)建高風(fēng)聯(lián)合并發(fā)癥發(fā)病預(yù)測模型.糖尿病并發(fā)癥數(shù)據(jù)處理流程圖,如圖1所示.
圖1 糖尿病并發(fā)癥數(shù)據(jù)處理流程圖Fig.1 Data processing flow chart of diabetes complications
關(guān)聯(lián)規(guī)則由頻繁項集產(chǎn)生,因此,每個規(guī)則都滿足最小支持度(Smin)與最小置信度(Cmin),即支持度和置信度需滿足最小閾值.其中,關(guān)聯(lián)數(shù)據(jù)項支持度為幾個關(guān)聯(lián)的數(shù)據(jù)項在數(shù)據(jù)集中出現(xiàn)的次數(shù)(num(AB))占所有的樣本數(shù)在數(shù)據(jù)集中出現(xiàn)的次數(shù)(num(Allsamples))的比例,關(guān)聯(lián)數(shù)據(jù)項{A,B}的支持度S(A,B)計算公式為
(1)
關(guān)聯(lián)數(shù)據(jù)項{A,B}的置信度C(A?B)計算公式為
(2)
式(1),(2)中:P(AB)為數(shù)據(jù)項{A,B}在數(shù)據(jù)集(num(Allsamples)中出現(xiàn)的概率;P(A)為數(shù)據(jù)項{A}在數(shù)據(jù)集(num(Allsamples)中出現(xiàn)的概率.
通過各關(guān)聯(lián)數(shù)據(jù)項的支持度與最小支持度閾值的比較,得到頻繁項/項集;通過頻繁項/項集中各規(guī)則的置信度與最小置信度閾值的比較,得到關(guān)聯(lián)規(guī)則[19].
隨機森林算法是通過集成學(xué)習(xí)的思想將多棵樹集成的算法,其基本單元是決策樹,本質(zhì)屬性為機器學(xué)習(xí)領(lǐng)域的集成學(xué)習(xí)方法.進行分類訓(xùn)練時,首先,有放回地從數(shù)據(jù)集中取出數(shù)據(jù)進行訓(xùn)練,構(gòu)建決策樹,多次訓(xùn)練可得到多棵決策樹.其次,通過對不同的樹進行分類,得到不同的分類結(jié)果,將所有分類結(jié)果進行統(tǒng)計投票,即可得到最終的分類結(jié)果.決策樹主要通過信息熵和信息增益進行特征選擇,信息熵的計算公式為
(3)
式(3)中:Pi為數(shù)據(jù)集D中任意元組屬于Ci的非零概率.
(4)
完成數(shù)據(jù)集和各屬性的信息熵計算后,可根據(jù)信息增益確定決策樹的特征選擇順序,信息增益的計算公式為
Gain(attr)=Info(D)-Infoattr(D).
(5)
將數(shù)據(jù)集中各屬性的信息熵計算結(jié)果分別代入式(5)中,計算各屬性的信息增益,將信息增益最大的屬性作為第一特征進入決策樹,并按上述步驟完成決策樹剩余節(jié)點的選擇.隨機森林算法實現(xiàn)流程,如圖2所示.
圖2 隨機森林算法實現(xiàn)流程Fig.2 Algorithm implementation process of random forests
隨機森林算法分為訓(xùn)練數(shù)據(jù)、構(gòu)建模型和投票3個步驟:1) 訓(xùn)練數(shù)據(jù),對原始數(shù)據(jù)集進行可放回隨機抽樣,形成k組訓(xùn)練集;2) 構(gòu)建模型,對每1個訓(xùn)練集,均從樣本的n個特征隨機選取m個特征,構(gòu)建最優(yōu)學(xué)習(xí)模型(決策樹);3) 投票,輸入測試數(shù)據(jù),得到k個最優(yōu)學(xué)習(xí)模型,給出分類結(jié)果,對k個分類結(jié)果進行投票,得到最終分類結(jié)果.
假設(shè)數(shù)據(jù)集中存在糖尿病聯(lián)合并發(fā)癥{A,B,C}, 該聯(lián)合并發(fā)癥支持度大于支持度閾值, 為頻繁項集.頻繁項集的關(guān)聯(lián)規(guī)則,如表3所示.表3中:C{A,B?C}表明若某糖尿病患者患有并發(fā)癥A和B,則其同時患有并發(fā)癥C的概率為55%,該概率為關(guān)聯(lián)發(fā)病率(發(fā)病風(fēng)險),若該頻繁項集中超過1/2的關(guān)聯(lián)規(guī)則置信度大于50%,且至少存在1條關(guān)聯(lián)規(guī)則置信度大于置信度閾值,則認(rèn)為該頻繁項集中的聯(lián)合并發(fā)癥為高風(fēng)險聯(lián)合并發(fā)癥.置信度閾值可根據(jù)并發(fā)癥預(yù)測實際需求設(shè)置,置信度閾值越高,表明聯(lián)合并發(fā)癥關(guān)聯(lián)發(fā)病率越高.根據(jù)關(guān)聯(lián)規(guī)則置信度計算結(jié)果,將高風(fēng)險聯(lián)合并發(fā)癥數(shù)量控制在10~15組,故置信度閾值設(shè)置為97%.
表3 頻繁項集的關(guān)聯(lián)規(guī)則Tab.3 Association rules for frequent itemsets
由表3可知:頻繁項集{A,B,C}中可產(chǎn)生6條關(guān)聯(lián)規(guī)則,其中,序號為1,2,3,6(共4條,占比2/3,大于1/2)的關(guān)聯(lián)規(guī)則置信度大于50%,且序號為3的關(guān)聯(lián)規(guī)則置信度為98%(大于97%),則糖尿病聯(lián)合并發(fā)癥{A,B,C}為高風(fēng)險聯(lián)合并發(fā)癥.
通過關(guān)聯(lián)規(guī)則算法對3 000例糖尿病患者33類并發(fā)癥數(shù)據(jù)進行計算,查找頻繁項集與關(guān)聯(lián)規(guī)則,支持度閾值設(shè)置為5%,置信度閾值設(shè)置為50%(兩個閾值均可根據(jù)研究需要進行設(shè)置,支持度閾值越大,表明該聯(lián)合并發(fā)癥關(guān)聯(lián)發(fā)病率越高;置信度閾值越大,表明該聯(lián)合并發(fā)癥發(fā)病概率越高).通過關(guān)聯(lián)規(guī)則計算符合上述參數(shù)閾值的并發(fā)癥依存關(guān)系,關(guān)聯(lián)規(guī)則計算的關(guān)聯(lián)發(fā)病率,如表4所示.
表4 關(guān)聯(lián)規(guī)則計算的關(guān)聯(lián)發(fā)病率Tab.4 Related incidence rate computed by association rules
續(xù)表Continue table
續(xù)表Continue table
續(xù)表Continue table
表4中:各關(guān)聯(lián)規(guī)則置信度為該關(guān)聯(lián)規(guī)則中的關(guān)聯(lián)發(fā)病率,以序號132的關(guān)聯(lián)規(guī)則為例,若糖尿病患者患有高血壓,則有57.23%的概率同時患有動脈粥樣硬化;若糖尿病患者患有動脈粥樣硬化,則有75.89%的概率同時患有高血壓.
算法結(jié)果符合動脈粥樣硬化和高血壓發(fā)病的病理學(xué)基礎(chǔ),因此,可參照該關(guān)聯(lián)發(fā)病率計算結(jié)果,根據(jù)糖尿病患者患有并發(fā)癥情況及時篩查是否同時患有其他并發(fā)癥,達到盡早診斷治療的預(yù)警目標(biāo).
根據(jù)高風(fēng)險聯(lián)合并發(fā)癥篩選規(guī)則,結(jié)合表4中各關(guān)聯(lián)規(guī)則置信度,篩選出12組符合條件的聯(lián)合并發(fā)癥.高風(fēng)險聯(lián)合并發(fā)癥,如表5所示.
表5 高風(fēng)險聯(lián)合并發(fā)癥Tab.5 High-risk combined complications
建立上述12組高風(fēng)險聯(lián)合并發(fā)癥的發(fā)病預(yù)測模型,查找各聯(lián)合并發(fā)癥關(guān)鍵影響因素(生化指標(biāo)),可為聯(lián)合并發(fā)癥的診斷預(yù)測提供參考.12組高風(fēng)險聯(lián)合并發(fā)癥和當(dāng)前臨床研究結(jié)論保持一致,如動脈粥樣硬化是心血管疾病、慢性腎病等多種疾病的病理學(xué)基礎(chǔ),而和其組合的5組聯(lián)合并發(fā)癥中,也多為心血管疾病等;第8組高風(fēng)險聯(lián)合并發(fā)癥也得到當(dāng)前研究的不斷證實.
以聯(lián)合并發(fā)癥是否發(fā)病作為類標(biāo)簽,構(gòu)建由100棵決策樹組成的隨機森林,每棵決策樹分別對分類結(jié)果進行投票,最終獲得票數(shù)最多的結(jié)果為隨機森林最終分類結(jié)果,并輸出該聯(lián)合并發(fā)癥生化指標(biāo)重要性排序,12組高風(fēng)險聯(lián)合并發(fā)癥均按照上述流程完成各自隨機森林模型的構(gòu)建.
將除糖尿病并發(fā)癥數(shù)據(jù)外其他指標(biāo)數(shù)據(jù)作為影響因素,高風(fēng)險聯(lián)合并發(fā)癥共同發(fā)病結(jié)果作為最終分類結(jié)果納入模型中(若同時患有該組合所有并發(fā)癥,則類標(biāo)號為1,否則為0),即可得到該糖尿病患者是否患有該類型聯(lián)合并發(fā)癥的預(yù)測結(jié)果.
采用十折交叉驗證法判斷隨機森林模型的分類預(yù)測精度,即將原始糖尿病數(shù)據(jù)集隨機分為10等份,其中,9份作為訓(xùn)練集,用于訓(xùn)練隨機森林模型;剩余1份作為測試集,用于測試隨機森林模型的分類精度,并進行10次迭代,訓(xùn)練期間,每1份數(shù)據(jù)集都作為測試集對隨機森林模型的分類預(yù)測精度進行測試.隨機森林模型訓(xùn)練過程中,根據(jù)數(shù)據(jù)集中各分類中不同數(shù)據(jù)量對不同分類賦予不同權(quán)重,確保數(shù)據(jù)均衡.
根據(jù)上述方法對數(shù)據(jù)建模,隨機森林模型中重要性排名前10的生化指標(biāo),如表6所示.
表6 隨機森林模型中重要性排名前10的生化指標(biāo)Tab.6 Top 10 important biochemical indexes in random forest model
若表6中重要性排名靠前的生化指標(biāo)值異常,則對其他重要性排名靠前指標(biāo)進行檢測.通過隨機森林模型預(yù)測該患者是否會患該聯(lián)合并發(fā)癥,若隨機森林模型判斷該患者會患該聯(lián)合并發(fā)癥,則需做進一步詳細檢查,從而確診該聯(lián)合并發(fā)癥是否發(fā)?。蝗綦S機森林模型判斷該患者不會患該聯(lián)合并發(fā)癥,則結(jié)合關(guān)聯(lián)發(fā)病率計算結(jié)果,判斷其患有其他并發(fā)癥的風(fēng)險,并加以預(yù)防.模型預(yù)測分析過程,如圖3所示.
圖3 隨機森林模型預(yù)測分析過程Fig.3 Predictive analysis process of random forest model
采用高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測的精度和受試者工作(ROC)曲線,對模型的預(yù)測效果進行評估,隨機森林模型對各高風(fēng)險聯(lián)合并發(fā)癥十折交叉驗證法的分類精度,如表7所示.
表7 各高風(fēng)險聯(lián)合并發(fā)癥十折交叉驗證法的分類精度Tab.7 Classification accuracy of high-risk combined complication in ten fold cross validation method
續(xù)表Continue table
由表7可知:隨機森林模型對各高風(fēng)險聯(lián)合并發(fā)癥的分類精度大部分超過0.900 0,對各高風(fēng)險聯(lián)合并發(fā)癥的分類平均精度均在0.800 0以上.
通過ROC曲線對模型進行評估時,ROC曲線下面積(AUC)越接近于1,則隨機森林模型正確分類正預(yù)測的能力越強,假陽性的概率越低.12組高風(fēng)險聯(lián)合并發(fā)癥的ROC曲線,如圖4所示.圖4中:η1為假陽性率;η2為真陽性率;AUC(n)為n折交叉驗證法的曲線下面積;Mean為AUC的平均值;Luck為對角線.
(a) 第1組 (b) 第2組 (c) 第3組
(d) 第4組 (e) 第5組 (f) 第6組
(g) 第7組 (h) 第8組 (i) 第9組
(j) 第10組 (k) 第11組 (l) 第12組圖4 12組高風(fēng)險聯(lián)合并發(fā)癥的ROC曲線Fig.4 ROC curves of 12 groups high-risk combined complications
由圖4可知:曲線基本位于45°線的左上方,表明經(jīng)十折交叉驗證法驗證后,各高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型的AUC均大于0.50,AUC均值均大于0.67,故大部分高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型具有較好的發(fā)病預(yù)測效果.聯(lián)合并發(fā)癥的生化指標(biāo)重要性排名可為疾病的診斷和風(fēng)險預(yù)測提供重要參考.
為進一步驗證各高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型在糖尿病患者發(fā)病預(yù)測應(yīng)用的有效性,隨機選取120例糖尿病患者數(shù)據(jù)(聯(lián)合并發(fā)癥患者數(shù)據(jù)在各聯(lián)合并發(fā)癥數(shù)據(jù)中隨機選取,非聯(lián)合并發(fā)癥患者數(shù)據(jù)在非聯(lián)合并發(fā)癥數(shù)據(jù)中隨機選取),按照并發(fā)癥分為12組,每組包含10組數(shù)據(jù),均為5組未患病數(shù)據(jù)與5組患病數(shù)據(jù),將數(shù)據(jù)分別輸入12組對應(yīng)的高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型中進行發(fā)病預(yù)測,隨機森林模型對糖尿病患者并發(fā)癥預(yù)測結(jié)果,如表8所示.
表8 隨機森林模型對糖尿病患者并發(fā)癥預(yù)測結(jié)果Tab.8 Prediction results of random forest model of diabetic complications
續(xù)表Continue table
由表8可知:12組高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型對并發(fā)癥發(fā)病預(yù)測效果較好,只有2例患者未成功預(yù)測發(fā)病風(fēng)險,其他118例患者患病/未患病均正確預(yù)測,某種程度上可作為糖尿病聯(lián)合并發(fā)癥的預(yù)診斷參考.
1) 十折交叉驗證法和ROC曲線對模型的評估結(jié)果表明,基于隨機森林模型的高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型具有較好的分類預(yù)測精度和分類效果.
2) 高血壓、視網(wǎng)膜病變、動脈粥樣硬化、腎病等是糖尿病并發(fā)癥中關(guān)聯(lián)發(fā)病率較高且是聯(lián)合發(fā)病風(fēng)險最高的并發(fā)癥種類,其患有某兩種并發(fā)癥后其他并發(fā)癥關(guān)聯(lián)發(fā)病率超過97%,提示上述糖尿病患者及早診斷及預(yù)防.
3) 不同高風(fēng)險聯(lián)合并發(fā)癥發(fā)病預(yù)測模型的分類平均精度均在0.800 0以上,部分模型的AUC在0.900 0以上,但仍有部分模型的AUC未達到0.70,需要在后續(xù)的研究中進一步探索,以提升模型的預(yù)測效果.