喬 瀚,容芷君*,許 瑩,但斌斌,趙 慧
(1.武漢科技大學(xué)工業(yè)工程系,武漢 430081;2.武漢市第五醫(yī)院,武漢 430050)
調(diào)查研究表明,糖尿病的發(fā)病率呈現(xiàn)逐年增加的趨勢,截至2017年,中國成年人糖尿病患病率為12.8%,糖尿病前期患病率為35.2%[1],在慢性疾病的防控問題中,糖尿病問題位居第一。糖尿病防控不好會增加并發(fā)癥的風(fēng)險,嚴(yán)重威脅患者的健康狀況,因此,做好糖尿病的預(yù)防尤為重要[2]。隨著醫(yī)療大數(shù)據(jù)的發(fā)展,積累了大量醫(yī)療健康數(shù)據(jù),通過對醫(yī)療數(shù)據(jù)挖掘和分析,以疾病的多種指標(biāo)來建立預(yù)測模型[3],對糖尿病早期預(yù)測,能夠?qū)μ悄虿〉姆揽睾椭委熎鸬胶艽笞饔谩?/p>
目前通過醫(yī)療大數(shù)據(jù)對疾病的預(yù)測方法主要分為兩種[4]:一種是基于傳統(tǒng)的建模方法,該方法是通過已有患者數(shù)據(jù),提取影響某疾病的危險因素,使用各種機(jī)器學(xué)習(xí)的算法來訓(xùn)練生成全局預(yù)測模型,找出危險因素與疾病之間的關(guān)系,構(gòu)建模型,輸出疾病預(yù)測結(jié)果。Bala等[5]采用深度神經(jīng)網(wǎng)絡(luò)分類器構(gòu)建糖尿病預(yù)測模型;Kadhm等[6]采用決策樹構(gòu)建預(yù)測模型對糖尿病進(jìn)行診斷;Namrata[7]采用集成的方法構(gòu)建模型。這種對于糖尿病的預(yù)測建模方法是使用所有可用的同一批訓(xùn)練樣本為所有測試樣本構(gòu)建相同的預(yù)測模型,對新加入的患者在這種預(yù)測模型中得到的預(yù)測結(jié)果可能不理想,由于患者與患者之間存在一定的差異性,這種全局預(yù)測模型方法的會忽略和丟失目標(biāo)患者的信息,導(dǎo)致得到的預(yù)測結(jié)果不準(zhǔn)確[8]。
另一種方法是通過建立患者個性化模型,即通過患者的臨床概念(年齡、性別、疾病診斷、實(shí)驗(yàn)室指標(biāo))定量化度量患者之間的距離,然后匯總為樣本間的相似性[4],利用最相似的一簇數(shù)據(jù)來進(jìn)行糖尿病的早期預(yù)測。患者相似性評估的目的是根據(jù)特定臨床背景信息量化任何一對患者之間的相似性,基于相似性可以幫助對患者進(jìn)行分層,實(shí)現(xiàn)有效的診斷[9]。Zhu等[10]結(jié)合主成分分析(principal component analysis,PCA)和K-means技術(shù)改進(jìn)的Logistic回歸模型用于糖尿病的預(yù)測。由于大多數(shù)聚類算法只能處理單一屬性類型的數(shù)據(jù),對于不同類型屬性的醫(yī)療數(shù)據(jù)采用單一數(shù)值型數(shù)據(jù)進(jìn)行聚類,不能很好地度量患者之間的相似性,影響模型的預(yù)測效果[11]。
為提高糖尿病預(yù)測的準(zhǔn)確性,相比傳統(tǒng)的糖尿病預(yù)測方法,提出個性化的預(yù)測??紤]所選數(shù)據(jù)具有多特征屬性和高維性,通過建立一種度量方法描述多特征屬性之間的相似關(guān)系,在度量的基礎(chǔ)上構(gòu)造相似矩陣,再與聚類算法相結(jié)合進(jìn)行相似組的劃分,最后基于相似組進(jìn)行糖尿病預(yù)測模型的構(gòu)建,從而為醫(yī)生提供更為準(zhǔn)確的決策支持。
對于疾病的診斷預(yù)測,醫(yī)生往往通過對患者的檢查指標(biāo)和專業(yè)經(jīng)驗(yàn)來進(jìn)行判斷。而疾病預(yù)測模型通常以疾病的多危險因素為基礎(chǔ),來量化與疾病發(fā)生之間的關(guān)系,從而預(yù)測某種疾病的發(fā)病情況[3]。隨著醫(yī)療數(shù)據(jù)的累計,通過數(shù)據(jù)挖掘預(yù)測患者的疾病,可以幫助醫(yī)生提供決策支持服務(wù)[12]。針對健康檔案數(shù)據(jù)中樣本存在差異性和相關(guān)性問題,在糖尿病預(yù)測建模過程中,根據(jù)患者數(shù)據(jù)集的不同特征屬性(二元、數(shù)值和序數(shù))進(jìn)行相似性度量,以得到患者之間的混合相似度矩陣,對該矩陣進(jìn)行聚類計算,實(shí)現(xiàn)患者的預(yù)分組,得到的患者相似組具有組內(nèi)差異小和組間差異大的特點(diǎn),然后應(yīng)用隨機(jī)森林分類器對相似組內(nèi)的患者進(jìn)行細(xì)分類,得到最終的疾病預(yù)測結(jié)果,模型總體構(gòu)架如圖1所示。
圖1 糖尿病預(yù)測模型總體構(gòu)架Fig.1 Overall structure of diabetes prediction model
使用的數(shù)據(jù)集是襄陽市某社區(qū)2020年4—7月的健康體檢數(shù)據(jù)。對采取到的數(shù)據(jù)集剔除與糖尿病不相關(guān)的屬性,如日期、家庭地址等。最終確定的數(shù)據(jù)集總共具有23個屬性(表示醫(yī)學(xué)診斷標(biāo)準(zhǔn)),并具有一個目標(biāo)類別(表示每個測試個體的狀態(tài)),構(gòu)成的患者特征集,如表1所示。描述患者的1 154條記錄[其中有829例陰性(71.8%)和325例陽性(28.2%)]。數(shù)據(jù)集中的特征屬性包括一般個人基本情況(年齡、性別等)、個人常規(guī)檢驗(yàn)項(xiàng)目(血常規(guī)、血糖等)以及個人生活方式等影響因素(鍛煉頻率和吸煙狀況)。
表1 特征集Table 1 Feature set
對于體質(zhì)指數(shù)、腰圍、等連續(xù)性變量指標(biāo)存在最小值都為0和空值的數(shù)據(jù)采用屬性中心度量的均值來進(jìn)行替換。對于鍛煉頻率和吸煙狀況這類字符型變量的缺失值,使用眾數(shù)進(jìn)行填補(bǔ)。對于性別、吸煙狀況等由字符型構(gòu)成的屬性,不能直接用于患者相似性計算,需要做進(jìn)一步的賦值變換處理,通常用整型的數(shù)據(jù)來表示原始的屬性值含義,變量的賦值如表2所示。由于生化數(shù)據(jù)量綱不同會導(dǎo)致偏差,需要對連續(xù)性數(shù)值變量進(jìn)行標(biāo)準(zhǔn)化處理。
表2 賦值說明Table 2 Assignment description
傳統(tǒng)的疾病預(yù)測方法將所有患者數(shù)據(jù)導(dǎo)入分類器進(jìn)行分類,容易忽略患者特征向量之間的差異性和相關(guān)性對分類結(jié)果的影響,因此,基于特征的相似性度量對患者進(jìn)行相似預(yù)分組,可以清晰界定患者與相似組的隸屬度關(guān)系,得到的患者相似組具有組內(nèi)相似度高和組間差異性大的特點(diǎn),通過患者相似組進(jìn)行疾病預(yù)測,有利于提升分類模型的準(zhǔn)確率。表1特征集中有3種不同的特征屬性,如果采用單一的歐式距離作為混合屬性的相異性度量,很顯然不符合數(shù)據(jù)間的關(guān)系。因此,采用一種混合屬性類型的相似性度量方法來度量患者之間的相似度:首先對不同類型的數(shù)據(jù)屬性進(jìn)行相異性度量,然后用一種相似性度量來表示不同特征屬性的混合相似度關(guān)系矩陣。
假設(shè)n個患者,p個數(shù)據(jù)屬性:屬性是一個數(shù)據(jù)字段,表示患者的一個特征?;颊哂洖閤1=(x11,x12,…,x1p),一直到xn=(xn1,xn2,…,xnp),其中xif為第i個患者xi的第f個屬性的值。W為患者矩陣,則W可表示為
患者i和患者j的相似性,一般記作sim(i,j),所有相似度度量均歸一化到[0,1]。把計算患者i和患者j之間的相似性度量定義為
sim(i,j)=1-d(i,j)
(1)
患者i和患者j之間的相異度d(i,j)可表示為
(2)
將采集的1 154條樣本數(shù)據(jù)代入模型計算得到1 154×1 154的混合相似度矩陣,矩陣部分實(shí)驗(yàn)結(jié)果為
(3)
聚類是數(shù)據(jù)挖掘的重要工具,可以將數(shù)據(jù)對象分成簇,同簇相似度高,異簇相似度低[13]。患者混合相似度矩陣是一個n×n階方陣,求解相似矩陣特征值最大的k個特征向量:M1,M2,…,Mk,構(gòu)建特征向量矩陣M。然后通過K均值對矩陣M進(jìn)行聚類,將N個患者樣本X的集合劃分為K個不相交的簇C,每個簇由聚類中患者的均值μj描述,該算法旨在選擇集群內(nèi)平方和標(biāo)準(zhǔn),可表示為
(4)
由于該算法的K是一個超參數(shù),對于一個給定的患者數(shù)據(jù)集,具體分為多少患者相似組取決于輪廓系數(shù)。輪廓系數(shù)使用數(shù)據(jù)集中對象之間的相似性度量來評估聚類的質(zhì)量,是簇的凝集度與分離度的評價指標(biāo),對任意患者xi,令d(xi,Cj)表示xi到組Cj中各點(diǎn)的平均距離,令j(i)表示xi所屬組的索引。輪廓系數(shù)的計算步驟如下。
步驟1計算xi與其所在相似組Cj(i)中其他患者的相似度,等于患者與同一相似組中所有其他患者之間的平均距離,用于量化組內(nèi)的凝集度,記為a(xi)=d(xi,Cj(i))。
將本方法與僅通過聚類算法以混合屬性當(dāng)作數(shù)值型單一屬性進(jìn)行相似分組(單一屬性類型)進(jìn)行對比。對每個患者x的輪廓系數(shù)值進(jìn)行排序,并依簇進(jìn)行分組。設(shè)置簇為2~9分別計算兩種聚類結(jié)果(單一屬性類型、混合屬性類型)的平均輪廓系數(shù)值,如表3所示。
表3 輪廓系數(shù)值Table 3 Contour coefficient values
根據(jù)表3中的結(jié)果,通過混合屬性類型的K均值輪廓系數(shù)值要高于單一屬性類型的K均值的輪廓系數(shù)。當(dāng)簇的取值為2時,即2個相似組(0,1分別對應(yīng)簇1和簇2),輪廓系數(shù)最大,對應(yīng)的輪廓系數(shù)圖分別如圖3、圖4所示。
圖3 單一屬性類型輪廓系數(shù)圖Fig.3 Contour coefficient diagram of a single attribute type
圖4 混合屬性類型輪廓系數(shù)圖Fig.4 Contour coefficient diagram of mixed attribute types
通過圖形比較,基于混合屬性類型得到的相似組明顯優(yōu)于基于單一屬性類型得到的相似組,大部分點(diǎn)都有較大的輪廓系數(shù)s(x),表明在平均意義上每個患者到所屬相似組中各患者的距離比到近鄰相似組中各患者的距離都要小。
數(shù)據(jù)樣本往往具有冗余性,容易導(dǎo)致訓(xùn)練模型具有過擬合的現(xiàn)象[14]。為了降低冗余性對模型的影響,采用過濾法,根據(jù)特征和是否患有糖尿病的相關(guān)性進(jìn)行特征選擇。通過卡方檢驗(yàn)來計算每個特征和標(biāo)簽之間的卡方統(tǒng)計量,并依照卡方統(tǒng)計量由高到低為特征進(jìn)行排名,其排序結(jié)果如圖5所示。計算公式為
圖5 基于卡方值的特征排序Fig.5 Feature ranking based on chi-square value
(5)
式(5)中:t為特征;c為類別;N為實(shí)際的特征t和類別c同時出現(xiàn)的頻次;E為當(dāng)特征t和類別c獨(dú)立時期望的同時出現(xiàn)頻次;卡方檢驗(yàn)衡量期望值E和實(shí)際觀察值N之間的偏離程度;CHI2為卡方統(tǒng)計量。
采用隨機(jī)森林分類算法對卡方度量指標(biāo)的特征選擇效果進(jìn)行比較,通過分類的準(zhǔn)確率(10折交叉驗(yàn)證后取均值)作為特征子集選擇的評價指標(biāo),分類準(zhǔn)確率隨特征個數(shù)變化趨勢如圖6所示。
圖6 卡方度量指標(biāo)在不同維度下的分類準(zhǔn)確率變化Fig.6 Changes in classification accuracy of χ2 metrics in different dimensions
從圖5中的可以看出,隨著特征數(shù)量的不斷減少,模型的表現(xiàn)整體呈上升趨勢。當(dāng)刪除特征的數(shù)量為14時,分類的準(zhǔn)確率最高,比不進(jìn)行特征選擇時分類準(zhǔn)確率提高了8.1%。刪除較小的14個特征后,剩余的9個特征(血清谷丙轉(zhuǎn)氨酶P<0.01、空腹血糖P<0.01、收縮壓P<0.01、年齡P<0.01、甘油三酯P<0.01、血清肌酐P<0.01、性別P<0.01、體質(zhì)指數(shù)P<0.01、舒張壓P<0.01,P<0.01表明變量具有統(tǒng)計學(xué)意義)作為糖尿病早期預(yù)測模型的特征輸入變量。
本次建模以基于混合屬性類型的相似患者組作為模型輸入,以是否患有糖尿病作為輸出建立隨機(jī)森林分類模型。為了驗(yàn)證所提方法的有效性,本次實(shí)驗(yàn)設(shè)置了兩個對照組,一組以全樣本數(shù)據(jù)集進(jìn)行隨機(jī)森林建模,另一組以基于單一屬性類型的患者相似組進(jìn)行隨機(jī)森林建模。為了確定模型的性能,采用10倍交叉驗(yàn)證技術(shù)和分類準(zhǔn)確率(accuracy rate)作為模型的評價指標(biāo),計算10次試驗(yàn)的平均分類準(zhǔn)確率,以獲得模型的總體性能。實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 分類準(zhǔn)確率Fig.7 Classification accuracy chart
可以看出,無論樹數(shù)(tree number)數(shù)量如何變化,基于患者相似組在隨機(jī)森林模型上的分類準(zhǔn)確率要高于基于全樣本數(shù)據(jù)的準(zhǔn)確率。表明患者相似組在應(yīng)用疾病預(yù)測能夠消除患者之間差異性和相似性對分類模型的影響。此外,對于不同方法得到的相似組,基于混合屬性類型的相似組在隨機(jī)森林模型上的分類準(zhǔn)確率要高于基于單一屬性類型的相似組的分類準(zhǔn)確率。
采用3種預(yù)測方法對糖尿病進(jìn)行預(yù)測模型構(gòu)建并對實(shí)驗(yàn)結(jié)果比較,以隨機(jī)森林算法分類的準(zhǔn)確率評估模型的性能,實(shí)驗(yàn)結(jié)果如表4所示。基于混合屬性類型相似組的隨機(jī)森林模型的分類準(zhǔn)確率為86.5%,與基于單一屬性類型相似組相比提高了5.1%,與全樣本數(shù)據(jù)相比提高了8.3%。對于樹數(shù)分析,基于混合屬性類型相似組在隨機(jī)森林模型上的樹數(shù)數(shù)量最少,具有最小的模型復(fù)雜度,表明相似患者組具有改善機(jī)器學(xué)習(xí)模型預(yù)測性能的潛力。
表4 結(jié)果比較Table 4 Comparison of results
針對患者之間的差異性和相關(guān)性對預(yù)測模型的影響,提出基于多特征屬性相似的糖尿病早期預(yù)測方法。得出如下結(jié)論。
(1)對比實(shí)驗(yàn)表明,在患者相似預(yù)分組的基礎(chǔ)上,通過隨機(jī)森林分類器對疾病進(jìn)行預(yù)測具有可行性,且相對于患者全樣本數(shù)據(jù)直接進(jìn)行隨機(jī)森林分類,預(yù)測準(zhǔn)確率有所提升。
(2)考慮特征之間的相關(guān)性和差異性對患者相似預(yù)分組的影響,基于混合屬性類型的相似組的質(zhì)量要高于基于單一屬性類型的相似組,且以混合屬性類型的相似組作為隨機(jī)森林分類器的輸入進(jìn)行疾病預(yù)測,得到的預(yù)測準(zhǔn)確率要高于單一屬性類型相似組的5.1%。表明所提出方法有利于提高糖尿病預(yù)測準(zhǔn)確率。