王榮政 廖賢藝 陳湘萍 周 凡 周 毅
(中山大學(xué)數(shù)據(jù)科學(xué)與計(jì)算機(jī)學(xué)院 廣州510006) (中山大學(xué)中山醫(yī)學(xué)院生物醫(yī)學(xué)工程系 廣州 510080)
糖尿病是威脅人類健康的3大慢性疾病之一,其具有多種并發(fā)癥且患病人數(shù)呈逐年上升趨勢(shì)。根據(jù)發(fā)病機(jī)理不同,糖尿病主要分為1型、2型、其他特殊類型、妊娠、繼發(fā)性糖尿病?,F(xiàn)階段糖尿病的治愈較為困難,因此預(yù)防與及時(shí)干預(yù)是應(yīng)對(duì)糖尿病最佳措施。血糖異常檢測(cè)是糖尿病預(yù)警的重要環(huán)節(jié),金萌萌等[1]探討血糖異常判斷標(biāo)準(zhǔn),方式一般為檢測(cè)空腹或餐后血糖,當(dāng)空腹血糖≥7.0mmol/L或餐后血糖≥11.1mmol/L,即可懷疑個(gè)體患有糖尿病,應(yīng)對(duì)其進(jìn)行預(yù)警。目前糖尿病前期干預(yù)的一種方式是對(duì)血糖異常的個(gè)體進(jìn)行預(yù)警,以促使其進(jìn)行飲食、運(yùn)動(dòng)或藥物調(diào)節(jié)從而避免患糖尿病。針對(duì)未檢測(cè)血糖的個(gè)體,如果能夠利用其他體檢特征預(yù)測(cè)血糖將對(duì)糖尿病預(yù)警具有重要意義。
隨著大量個(gè)人健康數(shù)據(jù)的積累,研究人員開始使用數(shù)據(jù)驅(qū)動(dòng)的方法分析糖尿病相關(guān)問(wèn)題。Rohit Prasad Bakshi等[2]提出一種系統(tǒng)化的數(shù)據(jù)挖掘方法來(lái)獲取最優(yōu)特征以及模型,首先選擇數(shù)據(jù)庫(kù)中存在的最佳糖尿病相關(guān)指標(biāo),然后通過(guò)投票的方法選擇現(xiàn)存模型中最適合的模型,結(jié)果表明這種方法的有效性;Thippa Reddy Gadekallu等[3]通過(guò)優(yōu)化搜索方法選擇有效特征,利用模糊邏輯系統(tǒng)預(yù)測(cè)血糖,實(shí)驗(yàn)表明該方法優(yōu)于現(xiàn)有方法;Peihua Chen等[4]采用Boost算法,使用100多項(xiàng)臨床指標(biāo)構(gòu)建糖尿病預(yù)測(cè)模型,獲得較高的準(zhǔn)確率。在血糖預(yù)測(cè)分析中,往往是收集受試者一段時(shí)間的血糖值后基于時(shí)序模型進(jìn)行血糖的動(dòng)態(tài)預(yù)測(cè)。王延年等[5]基于CGMS提出一種自適應(yīng)遺忘因子最小二乘AR模型血糖預(yù)測(cè)模型,從而動(dòng)態(tài)捕捉血糖變化;Taiyu Zhu等[6]利用30分鐘內(nèi)的血糖變化數(shù)據(jù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)來(lái)構(gòu)建血糖預(yù)測(cè)模型,實(shí)驗(yàn)取得良好效果。在糖尿病的相關(guān)指標(biāo)分析工作中,Beatriz López等[7]利用隨機(jī)森林技術(shù)搜索與糖尿病最相關(guān)的單核苷酸多態(tài)性(Single Nucleotide Polymorphisms,SNPs)屬性,實(shí)驗(yàn)顯示隨機(jī)森林在這一領(lǐng)域的有效性。
與糖尿病預(yù)測(cè)和血糖動(dòng)態(tài)分析不同,本文主要基于生理指標(biāo)來(lái)預(yù)測(cè)血糖。使用個(gè)體的5大類共68維生理特征,包括血常規(guī)、肝功能、腎功能、血脂和其他類體檢數(shù)據(jù)來(lái)構(gòu)建血糖預(yù)測(cè)模型。在此基礎(chǔ)上提出一種基于集成學(xué)習(xí)的預(yù)測(cè)方法,融合隨機(jī)森林、梯度提升樹、線性回歸模型來(lái)預(yù)測(cè)血糖。在來(lái)自醫(yī)院的真實(shí)數(shù)據(jù)集上對(duì)本方法進(jìn)行預(yù)測(cè)準(zhǔn)確性的驗(yàn)證。
本研究目標(biāo)是根據(jù)個(gè)體的體檢數(shù)據(jù)對(duì)血糖進(jìn)行預(yù)測(cè)。按常見類別將體檢數(shù)據(jù)分為5大類:一是肝功能相關(guān)類:包括相關(guān)酶、白蛋白、球蛋白等;二是血常規(guī)相關(guān)類,包括中性粒細(xì)胞、紅細(xì)胞計(jì)數(shù)等;三是血脂相關(guān)類,包括總膽固醇、甘油三酯等;四是腎功能相關(guān)類,包括尿素、尿酸、肌酐等;五是其他類,包括各種微量元素、免疫蛋白等。5大類包含共68維特征,使用5大類來(lái)預(yù)測(cè)血糖是典型的多元回歸問(wèn)題。本文根據(jù)血糖預(yù)測(cè)中存在的特征維度高及共線性的特點(diǎn),采用集成學(xué)習(xí)的方法,通過(guò)融合梯度提升決策樹、隨機(jī)森林模型、線性回歸等多個(gè)模型來(lái)對(duì)血糖進(jìn)行預(yù)測(cè)。
2.2.1 概述 血糖預(yù)測(cè)任務(wù)中存在特征維度高、特征之間存在多重共線性以及體檢數(shù)據(jù)噪聲較大等問(wèn)題,這使得單一模型往往沒(méi)有較好的穩(wěn)定性。為克服以上問(wèn)題并獲得較好的穩(wěn)定性,本文提出使用集成學(xué)習(xí)的方法融合多模型來(lái)預(yù)測(cè)血糖。集成學(xué)習(xí)的方法主要包括自助法[8](Bagging)、提升法[9](Boosting)和疊加泛化法[10](Stacking)等。其中Bagging與Boosting往往都只能融合相同模型,無(wú)法克服單一模型不穩(wěn)定的問(wèn)題。為此使用集成學(xué)習(xí)中Stacking方法,融合不同模型來(lái)進(jìn)行血糖預(yù)測(cè)。Stacking融合算法是指訓(xùn)練一個(gè)模型用于組合其他各個(gè)模型,首先訓(xùn)練多個(gè)差異較大的模型,然后再以這些模型作為基礎(chǔ)模型,將其輸出作為元模型的輸入,通過(guò)元模型學(xué)習(xí)基礎(chǔ)模型的結(jié)果,最后元模型的輸出作為最終輸出。
2.2.2 基礎(chǔ)模型選擇 針對(duì)血糖預(yù)測(cè)特點(diǎn)來(lái)選擇模型,由于血糖預(yù)測(cè)涉及的特征維度較高,且特征之間存在多重共線性的問(wèn)題,普通的線性回歸不能很好地解決這一問(wèn)題,因此本文引入具有良好非線性擬合能力的梯度提升樹作為Stacking融合模型的基礎(chǔ)模型。另外體檢數(shù)據(jù)往往存在較大噪聲問(wèn)題,可能導(dǎo)致模型過(guò)擬合,而梯度決策樹屬于加性決策樹模型,其應(yīng)對(duì)過(guò)擬合的能力較弱,為此引入隨機(jī)森林作為Stacking融合模型的另一基礎(chǔ)模型。此外考慮到集成學(xué)習(xí)中融合的模型差異越大,其融合效果越好,將與上述模型差異較大的線性回歸也作為融合模型的基礎(chǔ)模型。梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)是一種迭代的決策樹算法,通過(guò)構(gòu)造弱學(xué)習(xí)器來(lái)對(duì)上一輪學(xué)習(xí)器的誤差進(jìn)行擬合,通過(guò)弱學(xué)習(xí)器的組合從而構(gòu)成強(qiáng)學(xué)習(xí)器。隨機(jī)森林是一種基于樹的集成學(xué)習(xí)模型,其通過(guò)隨機(jī)抽樣構(gòu)建多棵決策樹后將其進(jìn)行組合達(dá)到強(qiáng)學(xué)習(xí)器的效果,使其有很好的抗過(guò)擬合能力。另外由于其特征子集是隨機(jī)生成的,所以在特征維度較高時(shí)也有良好的表現(xiàn)。線性回歸是機(jī)器學(xué)習(xí)中最基礎(chǔ)的回歸模型,是對(duì)輸入的一種擬合,其輸出是特征的線性組合。
2.2.3 元模型選擇 在引入基礎(chǔ)模型后應(yīng)選擇合適的元模型。為避免融合模型過(guò)于復(fù)雜而導(dǎo)致過(guò)擬合,本文選擇加正則項(xiàng)的線性回歸作為元模型來(lái)融合隨機(jī)森林、梯度提升樹和線性回歸。集成學(xué)習(xí)Stacking融合血糖預(yù)測(cè)模型結(jié)構(gòu),見圖1。首先從整個(gè)訓(xùn)練數(shù)據(jù)集中通過(guò)抽樣得到各個(gè)訓(xùn)練子集合,每個(gè)子集合作為基礎(chǔ)模型的輸入,待基礎(chǔ)模型學(xué)習(xí)訓(xùn)練后將其輸出作為元模型的輸入,元模型的輸出即為最后輸出。集成學(xué)習(xí)通過(guò)構(gòu)建及合并多個(gè)學(xué)習(xí)器來(lái)完成學(xué)習(xí)任務(wù),往往較單一學(xué)習(xí)器更有更顯著優(yōu)越的泛化性能。
圖1 集成學(xué)習(xí)Stacking融合血糖預(yù)測(cè)模型結(jié)構(gòu)
3.1.1 數(shù)據(jù)集 為達(dá)到通過(guò)個(gè)體體檢數(shù)據(jù)預(yù)測(cè)血糖這一目的,從廣東省某醫(yī)院獲取19 802條患者體檢數(shù)據(jù)。該數(shù)據(jù)集中用戶體檢信息包括性別、年齡、血常規(guī)、肝功能、腎功能、血脂、尿常規(guī)、空腹血糖等個(gè)人以及體檢相關(guān)數(shù)據(jù)共68維特征。由于部分個(gè)體只進(jìn)行部分體檢,因此抽取體檢項(xiàng)>30的個(gè)體進(jìn)行實(shí)驗(yàn),最終數(shù)據(jù)集共包含12 531條樣本。
3.1.2 評(píng)價(jià)指標(biāo) 為衡量模型血糖預(yù)測(cè)效果,選擇回歸問(wèn)題中最常見的評(píng)價(jià)指標(biāo)均方根誤差(RMSE)作為血糖預(yù)測(cè)的衡量指標(biāo),見公式(1)。其中N為樣本總數(shù),i為第i個(gè)樣本,y為樣本血糖真實(shí)值,y*為血糖預(yù)測(cè)值。
(1)
為衡量模型對(duì)血糖異常的預(yù)警能力,研究其能否正確識(shí)別血糖異常的個(gè)體。判斷空腹血糖異常的標(biāo)準(zhǔn)在金萌萌的論文[1]中被探討,美國(guó)糖尿病協(xié)會(huì)、世界衛(wèi)生組織等機(jī)構(gòu)對(duì)空腹血糖異常尚有分歧,但空腹血糖異常判斷的閾值在6.1mmol/L~7.0mmol/L之間。將樣本集中空腹血糖>7.0mmol/L的個(gè)體視為異常,考慮到血糖預(yù)測(cè)往往存在誤差,設(shè)置血糖預(yù)測(cè)閾值區(qū)間為6.1~7.0mmol/L的個(gè)體也視為異常,即當(dāng)預(yù)測(cè)血糖>6.1mmol/L時(shí)判定為異常。將空腹血糖>7.0mmol/L的樣本視為正類,將血糖預(yù)測(cè)值>6.1mmol/L判定為正類。本文選擇血糖異常預(yù)測(cè)的召回率和準(zhǔn)確率用于衡量模型的預(yù)警能力。召回率與準(zhǔn)確率見公式(2)和公式(3)。其中TP為將正類預(yù)測(cè)為正類數(shù),F(xiàn)N為將正類預(yù)測(cè)為負(fù)類數(shù),F(xiàn)P為將負(fù)類預(yù)測(cè)為正類數(shù),TN為將負(fù)類預(yù)測(cè)為負(fù)類數(shù)。
(2)
(3)
3.2.1 血糖預(yù)測(cè)分析 為探究體檢特征項(xiàng)對(duì)血糖預(yù)測(cè)的影響,按照體檢類特征數(shù)目的大小依次加入預(yù)測(cè)特征集中。初始化預(yù)測(cè)特征集為{性別,年齡},隨后依次加入腎功能、血脂、肝功能、血常規(guī)、其他相關(guān)項(xiàng)直到所有特征加入到預(yù)測(cè)特征集。實(shí)驗(yàn)中分別使用線性回歸、隨機(jī)森林、梯度提升樹以及本文提出的集成學(xué)習(xí)的方法來(lái)進(jìn)行預(yù)測(cè)。實(shí)驗(yàn)結(jié)果,見表1。隨著特征項(xiàng)的增加,使用不同方法預(yù)測(cè)的真實(shí)血糖值與預(yù)測(cè)值的RMSE都有減小的趨勢(shì),其中從1.114逐漸減小到0.983,說(shuō)明各大類項(xiàng)特征均對(duì)血糖預(yù)測(cè)具有正向影響。此外可以看出線性回歸、隨機(jī)森林、梯度提升樹3個(gè)模型的預(yù)測(cè)效果并不穩(wěn)定。加入血脂相關(guān)項(xiàng)時(shí)隨機(jī)森林模型的RMSE為1.144,低于梯度提升樹的1.152;而加入肝功能相關(guān)項(xiàng)時(shí),隨機(jī)森林模型的RMSE值為1.127,高于梯度提升樹;線性回歸開始加入特征時(shí)表現(xiàn)較隨機(jī)森林好,而隨著特征的增多其表現(xiàn)逐漸較隨機(jī)森林差。集成學(xué)習(xí)融合模型的RMSE始終低于線性回歸、隨機(jī)森林和梯度提升樹,說(shuō)明單個(gè)模型往往表現(xiàn)不穩(wěn)定,集成學(xué)習(xí)融合模型相較于單個(gè)模型有更強(qiáng)的穩(wěn)定性和較高的精度。
表1 不同模型加入體檢特征后模型的預(yù)測(cè)血糖值與真實(shí)值RMSE
為探究個(gè)體年齡對(duì)血糖預(yù)測(cè)的影響,將數(shù)據(jù)分為青年(20~40歲)、中年(40~60歲)、老年(60~80歲)3個(gè)子數(shù)據(jù)集。使用5大類特征來(lái)預(yù)測(cè)血糖,3個(gè)子數(shù)據(jù)集的結(jié)果,見表2??梢钥闯黾蓪W(xué)習(xí)算法的效果優(yōu)于單個(gè)模型的預(yù)測(cè)結(jié)果。當(dāng)樣本集為青年時(shí)模型預(yù)測(cè)值與血糖真實(shí)值的RMSE為0.739,低于中年樣本集的1.034,也低于老年樣本集的1.276。隨著樣本集年齡的上升,預(yù)測(cè)血糖值與真實(shí)血糖RMSE會(huì)隨之上升。出現(xiàn)這一現(xiàn)象的可能原因是年齡越大的個(gè)體服用藥物的可能性越高。由于服用降糖藥或其他相關(guān)藥物影響某些指標(biāo),使得血糖預(yù)測(cè)不準(zhǔn)確。
表2 不同模型在不同年齡段樣本集下血糖的預(yù)測(cè)值與真實(shí)值的RMSE
3.2.2 血糖異常預(yù)警分析 為衡量模型對(duì)血糖異常的預(yù)警能力,將這一問(wèn)題視為模型對(duì)血糖異常個(gè)體的識(shí)別準(zhǔn)確度。使用線性回歸、隨機(jī)森林、梯度提升樹以及集成學(xué)習(xí)的方法進(jìn)行血糖異常個(gè)體準(zhǔn)確率與召回率判別,見表3。實(shí)驗(yàn)結(jié)果顯示隨機(jī)森林模型的準(zhǔn)確率最高,但其召回率最低;集成學(xué)習(xí)Stacking模型識(shí)別異常血糖的準(zhǔn)確率較隨機(jī)森林低1.4%,但其召回率提高15.6%;集成學(xué)習(xí)模型Stacking召回率與準(zhǔn)確率均比梯度提升樹高。因此集成學(xué)習(xí)模型具有更強(qiáng)的穩(wěn)定性和更可靠的預(yù)測(cè)性能。
表3 不同模型對(duì)異常血糖的預(yù)測(cè)召回率與準(zhǔn)確率(%)
為有效預(yù)測(cè)血糖,結(jié)合個(gè)體的血常規(guī)、肝功能、血脂、腎功能等生理指標(biāo),使用集成學(xué)習(xí)的方法,融合線性回歸、梯度提升決策樹、隨機(jī)森林等模型對(duì)血糖值進(jìn)行預(yù)測(cè)。實(shí)驗(yàn)結(jié)果顯示本文提出的Stacking融合模型預(yù)測(cè)的血糖值與真實(shí)值之間的均方根誤差為0.98,可以根據(jù)常規(guī)體檢數(shù)據(jù)進(jìn)行較精確的血糖預(yù)測(cè)。此外Stacking融合模型預(yù)測(cè)對(duì)異常血糖值識(shí)別的準(zhǔn)確率達(dá)到84.8%,召回率達(dá)到63.6%,能在一定程度上識(shí)別血糖異常個(gè)體,這為糖尿病的提前干預(yù)提供支持。實(shí)驗(yàn)表明血常規(guī)、肝功能、血脂、腎功能等生理指標(biāo)對(duì)血糖預(yù)測(cè)都具有正向影響,這也證實(shí)人體生理指標(biāo)相互聯(lián)系。另外實(shí)驗(yàn)發(fā)現(xiàn)青年血糖的預(yù)測(cè)精度要遠(yuǎn)高于老年,這可能由于老年人更傾向服用藥物導(dǎo)致某種體檢指標(biāo)改變從而影響血糖預(yù)測(cè),下一步將考慮收集數(shù)據(jù)來(lái)驗(yàn)證該假設(shè)。此外將考慮加入更多的生理指標(biāo)并對(duì)其標(biāo)進(jìn)行分析,從而更有效地預(yù)測(cè)血糖以及分析相關(guān)指標(biāo)。