王琦琪,戴家佳,崔熊衛
(1.貴州大學數學與統計學院,貴州貴陽 550025;2.重慶醫科大學附屬第二醫院,重慶 400010)
據國際糖尿病聯合會2019年報告顯示,全球糖尿病患者數約為4.63億,中國患病人數高達1.16億,居世界第一。近年來,隨著生活水平的提高,我國糖尿病患者數量不斷增加,其防治已成為我國重要的公共衛生問題。糖尿病是繼心腦血管疾病、惡性腫瘤之后第三大威脅人類健康的慢性病,糖尿病患者可能會出現嚴重并發癥,如腦血管意外、視網膜脫落、腎臟損傷等,不僅給患者的生活帶來嚴重影響,還給社會帶來了沉重的經濟負擔。對于大多數糖尿病患者,如果及早發現并開始治療,并發癥將很容易控制,甚至可以避免發生。因此,進行早期糖尿病風險預測,對于降低糖尿病及其并發癥的發病率、節約國家醫療資源具有重要意義。
機器學習是重要的信息挖掘技術,目前已有很多國內外學者采用機器學習方法預測糖尿病患病風險。例如,Joshi等采用支持向量機(Support Vector Machine,SVM)、logistic回歸、神經網絡3種機器學習方法預測患者糖尿病患病風險,最后發現SVM的預測效果最好;Singh等運用樸素貝葉斯、隨機森林(Random Forest,RF)和基于函數的多層感知器算法進行糖尿病患病風險建模,結果顯示RF的預測準確率最高;Gill等將遺傳算法和RF用于糖尿病的有效診斷和預測;Bassam等運用SVM預測2型糖尿病的患病風險;陳思含等結合多因素Logistic回歸分析和具有集成學習框架的XGBoost算法,構建了2型糖尿病并發癥預測模型;郭奕瑞等對社區居民進行流行病學調查,分別應用神經網絡和Logistic回歸建立2型糖尿病預測模型,應用受試者工作特征曲線評價預測模型的檢驗效能,結果顯示神經網絡模型較Logistic回歸模型具有更好的預測效能;陳真誠等為實現糖尿病的早期篩查,利用鄰近算法和神經網絡兩種方法進行分類,發現神經網絡,能對糖尿病進行更好的分類和識別,起到早期篩查的作用。
通過梳理現有文獻發現,較少學者采用集成學習模型對糖尿病進行分類預測。集成學習算法不是一種單獨的機器學習算法,而是通過結合多個機器學習器完成學習任務,可以說是集百家之所長,具有較高的準確率。因此,本文以糖尿病患病風險預測作為分析視角,分別采用代表性集成學習算法RF、GBDT(Gradient Boosting Decision Tree)和XGBoost,以及已有文獻研究證實分類效果較好的單一分類器模型SVM和BP(Back Propagation)神經網絡建立5種分類預測模型,通過多種性能評價指標探討預測糖尿病患病風險的最佳分類模型。
SVM是一種有監督學習算法,可用于解決數據挖掘或模式識別領域中的數據分類問題。其基本思想是建立一個最優決策超平面,使得該平面兩側距平面最近的兩類樣本之間的距離最大化,從而使得該模型用于分類問題時能具有良好的泛化能力。SVM適用于樣本較小、非線性及高維空間問題,可與其他機器學習算法聯合使用。SVM通過引入拉格朗日常數解決凸二次優化問題,表示為:
ω
||為正常超平面的范數,b
為常數,λ
為拉格朗日乘數,x
(i
=1,2,…n
)為線性可分的向量,y
為輸出類。人工神經網絡是一種抽象的非線性信息處理系統,模擬大腦神經網絡處理、記憶信息的方式。BP神經網絡作為最基礎的神經網絡,由1個輸入層、任意個隱含層和1個輸出層構成,是一種通過誤差反向傳播算法訓練的前饋性網絡。BP神經網絡的基本思想是整個學習過程由信號的正向傳播和誤差的反向傳播兩部分組成,當輸出值與期望值之間的誤差達到截止誤差后,訓練即停止;若輸出值和期望值不一致,則進入誤差的反向傳播階段。誤差反向傳播即將誤差以某種形式分攤給各層的所有單元,從而獲得誤差信號作為修正各單元權值的依據。
RF模型是在CART(Classification and Regression Tree)決策樹模型的基礎上衍生而來,結合了Bagging集成學習方法和隨機子空間理論。作為一種監督學習算法,RF能克服單一分類預測模型的一些弊端,獲得更高的分類預測準確率。其是通過集成學習將多棵決策樹集成在一起的一種機器學習算法,比單個決策樹性能更優。RF在樣本和特征選取上具有隨機性,這兩個隨機性的引入使其不容易陷入過擬合,具有很好的抗噪能力。
GBDT是由Freidman提出的改進Boosting算法,其以CART決策樹作為基分類器,將一系列CART基分類器串聯起來得到集成模型。GBDT的基本思想是借鑒梯度下降法,根據當前模型損失函數的負梯度信息不斷訓練新加入的弱分類器,然后將訓練好的弱分類器以累加的形式整合到現有模型中。GBDT用于二分類的損失函數表示為:
XGBoost算法是一個優化的分布式梯度增強庫,其以CART決策樹作為基分類器,采用新增樹形成的新函數擬合之前預測的殘差,然后累加所有樹的預測結果,得到最終預測結果。XGBoost的目標函數為:
n
為訓練樣本數量,k
為決策樹數量,f
為基學習器。損失函數l
用于衡量真實分數與預測分數的差距。正則化項Ω包含兩個部分,其中T
表示葉子節點數量,W
表示葉子節點分數;γ
和λ
表示懲罰力度,可控制葉子節點數量并限制節點分數,防止模型過分貼合訓練數據而損失預測效果導致過擬合。Y
表示,解釋變量依次用X
(i
=1,2,…,16)表示。Table1 Variable assignment表1 變量賦值
將520個樣本按照7∶3的比例分為訓練集和測試集兩部分。將患病賦值為1,未患病賦值為0,組間比較采用卡方檢驗。選取對糖尿病患病有顯著影響的變量作為自變量輸入建立預測模型,采用有結果標簽的訓練集對模型進行訓練,然后對其各項參數和評價指標進行優化,利用網格搜索確定各模型最優參數,再采用測試數據對預測模型進行分類準確性的評價比較。采用Python對其進行數據分析。
X
),delayed healing(X
)兩個變量對是否患糖尿病無顯著性影響,因此在構建分類模型時,采用余下14個變量作為自變量輸入。Table2 Single factor analysis of diabetespre valence表2 糖尿病患病情況單因素分析
在二分類預測模型評估指標中,混淆矩陣可用于判斷分類器分類效能優劣,具體如表3所示。采用準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1分數和AUC 5個指標評價各模型性能。
Table3 Confusion matrix表3 混淆矩陣
(1)準確率(Accuracy,ACC)。該指標為預測結果和真實結果同為正例和同為反例占所有樣本的比例,反映分類器對整個樣本的判定能力,表示為:
(2)精確率(Precision)。該指標為預測正確的正例數占預測為正例總量的比例,表示為:
(3)召回率(Recall)。該指標為預測正確的正例數占真正正例數的比例,表示為:
(4)F1分數。該指標表示為精確率與召回率的調和平均值,表示為:
(5)AUC。該指標表示ROC曲線下的面積,取值在0.5~1之間;ROC曲線橫軸表示負例分錯的概率,縱軸表示正例分對的概率。AUC可以直觀地評價分類器性能優劣,其值越大越好。
基于SVM、BP神經網絡、RF、GBDT、XGBoost算法建立預測模型,5種分類器的預測結果見表4,性能比較結果見表5。可以看出,XGBoost的區分度最好,AUC達到99.41%。從準確率、精確率、召回率和F1結果可以看出,XGBoost的預測準確率最高,達到97.44%,其精確率和召回率在5個模型中最佳。單個分類器SVM的預測準確率最差。在集成學習模型中,XGBoost的預測結果略優于GBDT,明顯優于RF。總體而言,集成學習模型的預測性能比單個分類器有所提升,能夠更為精確地進行糖尿病風險預測。
預測性能最好的XGBoost算法給出的變量重要性如圖1所示。影響權重排名前十的因素依次為煩渴、多尿癥、脫發、感到無力疲憊、體重突然減輕等。
Table 4 Prediction results of the five classifier test sets表4 5個分類器測試集預測結果
Table 5 Comparison of prediction performance of five classifiers表5 5個分類器預測性能比較
Fig.1 Variable importance ranking圖1 變量重要性排序
本研究使用UCI數據庫,基于集成學習算法RF、GBDT和XGBoost建立糖尿病患病風險預測模型。就預測準確率而言,XGBoost(Accuracy=97.44%)略優于GBDT(Accuracy=96.79%),明顯優于RF(Accuracy=94.23%)。與單一分類器SVM(Accuracy=93.59%)和BP神經網絡(Accuracy=94.87%)相比,XGBoost的預測效果最好,而RF和BP神經網絡的預測準確率僅相差0.64%。針對其他評價指標,XGBoost算法的精確率、召回率、F1值、AUC值均最高,分別達到99.02%、97.12%、98.06%、99.41%。集成學習算法是目前對結構化數據擬合效果最好的算法之一,本文研究結果也證實了這一點。
研究表明,糖尿病患者血糖升高導致血管內滲透壓升高,使大腦產生口干欲飲的感覺。患者大量飲水后導致全身血流量增加,腎臟灌注壓升高,從而導致尿量增加。此外,糖尿病患者存在胰島素分泌不足或胰島素抵抗等現象,機體細胞不能正常利用血糖供能,使患者產生饑餓感,促使其不斷進食保證能量供應,且機體會通過分解脂肪、蛋白質等供能,因此患者體重減輕。本文建立的XGBoost模型分析影響因素權重排名前十的因素為煩渴、多尿癥、脫發、無力、體重減輕等,與醫學研究結論相符。
綜上所述,本文通過集成學習算法構建的早期糖尿病患病風險預測模型可較為精確地分類出潛在患病人群,但仍有優化空間。未來可采用更大規模的數據集以及更準確的特征分類算法進行糖尿病患病風險預測,以幫助臨床醫生識別早期糖尿病患者,減少糖尿病并發癥發生,提高患者生活質量,減輕社會負擔。