胡綠慧,王海
(成都中醫(yī)藥大學(xué)智能醫(yī)學(xué)學(xué)院,四川 成都 611137)
2 型糖尿病(Diabetes Mellitus Type 2,T2DM)是一種影響全球人類的代謝疾病,全球共有4.15 億人患有糖尿病,到2040 年可能增加到6.42 億人[1]。2020 年我國(guó)60 歲及以上的老年人口占總?cè)丝诘?8.7%(2.604億),其中約30% 的老年人罹患糖尿病且T2DM 占95%以上。早期篩查、診斷和預(yù)防成為實(shí)現(xiàn)T2DM 疾病緩解的重要因素[2]。趙靈燕[3]做了T2DM中醫(yī)辨證分型與臨床指標(biāo)的相關(guān)性研究。文玉敏[4]使用關(guān)系網(wǎng)絡(luò)模型、聚類分析等探究糖尿病腎病的方藥組成及證候特點(diǎn);郭奕瑞[5]等應(yīng)用ANN和logistic回歸建立2型糖尿病預(yù)測(cè)模型。而對(duì)證候演變機(jī)制、中西醫(yī)多維特征融合研究有待深入,以提高臨床診斷的準(zhǔn)確性。而深度神經(jīng)網(wǎng)絡(luò)(DNN)作為一種機(jī)器學(xué)習(xí)算法,具有較高的容錯(cuò)性,能夠擬合任何復(fù)雜函數(shù),具有很強(qiáng)的非線性擬合能力,并獲得數(shù)據(jù)樣本的特征規(guī)則,同時(shí)可以規(guī)避主觀因素對(duì)規(guī)律提取過程中的影響,適合于中西醫(yī)多維信息的非線性建模研究。
本研究數(shù)據(jù)來源于某三甲中醫(yī)醫(yī)院內(nèi)分泌科住院病歷數(shù)據(jù),篩選中醫(yī)診斷為“消渴病”,西醫(yī)診斷為“2型糖尿病”,且病歷數(shù)據(jù)較為完整,包含年齡、性別,病程、癥狀、中醫(yī)診斷結(jié)論,空腹血糖、餐后血糖、糖化血紅蛋白等理化指標(biāo)。
1.2.1 缺失值處理
首先檢測(cè)初篩樣本表中的缺失值,采用隨機(jī)森林算法對(duì)缺失值進(jìn)行填充。能更好地反映未知數(shù)據(jù)的真實(shí)性、準(zhǔn)確性、可靠性。
1.2.2 異常值處理
數(shù)據(jù)集中由于各種原因難免有異常值,本研究通過計(jì)算均方差來判定是否存在異常值。對(duì)于異常值我們采用刪除或視為缺失值或用平均值修正來進(jìn)行處理。
1.2.3 中文分詞、詞頻統(tǒng)計(jì)
由于中醫(yī)的特點(diǎn),臨床上總是會(huì)出現(xiàn)同癥不同病、同病不同醫(yī)、同醫(yī)不同效等醫(yī)學(xué)表述數(shù)據(jù)不統(tǒng)一的現(xiàn)象。使用結(jié)巴分詞器對(duì)癥狀進(jìn)行分詞,新建術(shù)語詞典和停用詞詞表,并對(duì)詞頻進(jìn)行統(tǒng)計(jì),篩選出出現(xiàn)頻率最高的15個(gè)癥狀作為研究指標(biāo),包括多食易饑、多飲、多尿、口干、口渴、口苦、視物模糊、尿有泡沫、四肢麻木、便溏、足爛、胸悶、乏力、皮膚瘙癢、眠差等。為保證模型的收斂效率,本研究從原始表提取7種頻數(shù)最多的證型進(jìn)行研究,包括氣陰兩虛夾瘀、氣陰兩虛瘀血阻絡(luò)、氣陰兩虛、氣陰兩虛濕瘀互結(jié)、濕瘀互結(jié)、氣虛血瘀、氣陰兩虛夾濕。最終整理出符合條件的數(shù)據(jù)共514條,其中男性323例,女性191例,年齡分布在15歲至91歲之間。
1.2.4 數(shù)據(jù)歸一化處理
原始表中樣本存在漢字、字符等類型數(shù)據(jù),也存在各屬性間的數(shù)量級(jí)相差較大,如年齡、理化指標(biāo)等。按照深度神經(jīng)網(wǎng)絡(luò)對(duì)于輸入層的要求,需要對(duì)研究指標(biāo)重新編碼和歸一化處理,將其轉(zhuǎn)化為DNN能夠識(shí)別的語言。處理規(guī)則如下:
1)性別:用1代表男性,0代表女性;
2)癥狀:有此癥狀記為1,無此癥狀記為0;
3)病程:數(shù)據(jù)做最大最小歸一化,使其分布[0,1]之間;
4)糖代謝指標(biāo):本研究提取糖化血紅蛋白、空腹血糖、餐后2H血糖,對(duì)數(shù)值進(jìn)行最大最小歸一化處理,使其分布在[0,1]之間;
5)證型類別: 對(duì)典型證型按序號(hào)對(duì)應(yīng)每類編碼1~7。
預(yù)處理后的數(shù)據(jù)如表1所示。

表1 預(yù)處理后的數(shù)據(jù)格式
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)為包含多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò),可以用較少的參數(shù)表示復(fù)雜的函數(shù)。本研究設(shè)計(jì)的DNN 結(jié)構(gòu)各層詳細(xì)情況如下:
1)輸入層:輸入層指輸入到神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù),輸入層的神經(jīng)元數(shù)量等于待處理數(shù)據(jù)中輸入變量的數(shù)量。本研究使用年齡、性別、空腹血糖、餐后2H血糖、糖化血紅蛋白和15種糖尿病典型癥狀共20個(gè)研究指標(biāo)作為輸入,所以輸入層的節(jié)點(diǎn)數(shù)為20。
2)隱藏層:隱藏層由神經(jīng)網(wǎng)絡(luò)中的大多數(shù)神經(jīng)元組成,是處理數(shù)據(jù)以獲得所需輸出的核心部分。數(shù)據(jù)將穿過隱藏層,并由許多權(quán)重和偏差調(diào)節(jié)。深度神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù)一般來說并不固定,需要根據(jù)網(wǎng)絡(luò)的訓(xùn)練效果來確定。本研究經(jīng)過多次實(shí)驗(yàn)確定隱藏層數(shù)為2層,每層的神經(jīng)元個(gè)數(shù)分別為10個(gè)和9個(gè)。
3)輸出層:輸出層是在神經(jīng)網(wǎng)絡(luò)中處理數(shù)據(jù)的最終產(chǎn)物,可以表示不同的事物。通常情況下,輸出層由神經(jīng)元組成,每個(gè)神經(jīng)元代表一個(gè)對(duì)象。本研究的輸出節(jié)點(diǎn)數(shù)等于證型類別數(shù),因?yàn)檫x取七種證型進(jìn)行預(yù)測(cè),所以輸出節(jié)點(diǎn)數(shù)為7,每一個(gè)輸出節(jié)點(diǎn)代表一種證型。
4)評(píng)估標(biāo)準(zhǔn):以模型的預(yù)測(cè)準(zhǔn)確率以及對(duì)每一類證型預(yù)測(cè)的精確率、召回率、F1-score來對(duì)模型的性能進(jìn)行評(píng)估。
1)確定訓(xùn)練集:選取80%數(shù)據(jù)集為訓(xùn)練集,其中氣陰兩虛夾瘀126 例,氣陰兩虛瘀血阻絡(luò)83例,氣陰兩虛83 例,氣陰兩虛濕瘀互結(jié)55例,濕瘀互結(jié)28例,氣虛血瘀22例、氣陰兩虛夾濕14例。剩下的20%作為測(cè)試集。
2)權(quán)重初始化:本研究采用隨機(jī)初始化,使初始權(quán)值隨機(jī)分布在[0,1]之間,這樣每一個(gè)神經(jīng)元可以開始就在傳遞函數(shù)變化最大的地方進(jìn)行迭代。
3)函數(shù)選擇:輸入層、隱藏層各層之間的激活函數(shù)均選用Relu函數(shù),并且為了防止模型過度擬合,在模型中加入Dropout 數(shù)據(jù)參數(shù)丟棄層,丟棄概率為0.5。隱藏層和輸出層之間選用softmax作為激活函數(shù),并使用交叉熵?fù)p失函數(shù)categorical_crossentropy,另外使用基于隨機(jī)梯度法的自適應(yīng)時(shí)刻估計(jì)(Adam)優(yōu)化器對(duì)隨機(jī)梯度下降進(jìn)行優(yōu)化,模型的迭代次數(shù)epochs設(shè)為10,batch_size設(shè)為24。
4)模型期望輸出:因?yàn)檠芯克褂玫膿p失函數(shù)為categorical_crossentropy,并且預(yù)測(cè)結(jié)果有7種證型,所以每一個(gè)樣本所對(duì)應(yīng)的輸出為一個(gè)7維向量,分別為:氣陰兩虛夾瘀:Y1=[1,0,0,0,0,0,0];氣陰兩虛瘀血阻絡(luò):Y2=[0,1,0,0,0,0,0];氣陰兩虛:Y3=[0,0,1,0,0,0,0];氣陰兩虛濕瘀互結(jié):Y4=[0,0,0,1,0,0,0];濕瘀互結(jié):Y5=[0,0,0,0,1,0,0];氣虛血瘀:Y6=[0,0,0,0,0,1,0];氣陰兩虛夾濕:Y7=[1,0,0,0,0,0,1]。最后再采用inverse_transform()將標(biāo)準(zhǔn)化的數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù)。
使用測(cè)試集數(shù)據(jù)對(duì)訓(xùn)練好的T2DM證型預(yù)測(cè)模型進(jìn)行檢驗(yàn),以評(píng)價(jià)該模型的性能。模型的迭代次數(shù)為171次,預(yù)測(cè)結(jié)果準(zhǔn)確率達(dá)到88%見表2,模型的預(yù)測(cè)每一類證型的precision(精確率)、recall(召回率)F1-score見表3。其中精確率表示在被所有預(yù)測(cè)為正的樣本中實(shí)際為該證型的概率,召回率表示在實(shí)際為正的樣本中被預(yù)測(cè)為該證型的概率,F(xiàn)1-score 為精確率和召回率之間的平衡值。

表2 模型預(yù)測(cè)準(zhǔn)確率

表3 各證型預(yù)測(cè)效果
使用決策樹模型計(jì)算每個(gè)特征變量對(duì)于模型貢獻(xiàn)度,如圖1所示,貢獻(xiàn)度從高到低地排列為:糖化血紅蛋白、空腹血糖、餐后2H血糖、年齡、多食易饑、多飲、多尿、視物模糊、口干、口渴、四肢麻木、性別等。

圖1 特征重要性
本研究以DNN 所具有的強(qiáng)大的非線性擬合能力構(gòu)建T2DM中醫(yī)證型預(yù)測(cè)模型,以年齡、性別、癥狀、糖代謝指標(biāo)為輸入節(jié)點(diǎn),證型為輸出結(jié)果,并計(jì)算各指標(biāo)對(duì)模型的貢獻(xiàn)度。同時(shí),對(duì)各類型證型獨(dú)立預(yù)測(cè)結(jié)果顯示,氣陰兩虛夾瘀、氣陰兩虛濕瘀互結(jié)、氣陰兩虛瘀血阻絡(luò)、氣陰兩虛、濕瘀互結(jié)的精準(zhǔn)率和召回率都較高,而氣虛血瘀、氣陰兩虛夾濕都呈現(xiàn)出精確率較高而召回率偏低的預(yù)測(cè)結(jié)果,原因主要為學(xué)習(xí)樣本偏少,這也說明深度神經(jīng)網(wǎng)絡(luò)對(duì)于數(shù)據(jù)樣本有較高需求,若樣本越大,模型的訓(xùn)練和學(xué)習(xí)也就更加充分,也能更全面地掌握數(shù)據(jù)樣本的特征和規(guī)律。另外通過對(duì)特征重要性的計(jì)算,發(fā)現(xiàn)糖化血紅蛋白、空腹血糖、餐后2h血糖這幾個(gè)特征對(duì)模型的貢獻(xiàn)度較高,說明糖代謝指標(biāo)對(duì)于證型的分類有著較高的影響;而臨床癥狀中,多食易饑、多飲、多尿,對(duì)模型的貢獻(xiàn)度高,說明在證型分類的時(shí)候,這些中西醫(yī)指標(biāo)可以作為臨床參考。
隨著研究的進(jìn)一步深入,增加更多的樣本量,融合更多研究指標(biāo),可以提高證型預(yù)測(cè)的準(zhǔn)確性,可以更好地闡明T2DM 中西醫(yī)特征之間的相互關(guān)系,形成中西醫(yī)結(jié)合新的診療方案,為中國(guó)糖尿病臨床智能診療提供理論基礎(chǔ)。