李佳思
(上海工程技術(shù)大學(xué) 數(shù)理與統(tǒng)計(jì)學(xué)院,上海 201620)
糖尿病是一種常見(jiàn)的慢性疾病,過(guò)去30 年來(lái),中國(guó)糖尿病的發(fā)病率急劇增加,國(guó)際糖尿病聯(lián)盟協(xié)會(huì)(IDF)統(tǒng)計(jì)顯示,2019 年中國(guó)糖尿病患者達(dá)到1.16億,位于世界第一位,成為威脅人們身體健康的一大問(wèn)題[1-2]。糖尿病的典型癥狀為多食、多飲、多尿、體重減輕,根據(jù)病因不同可以分為1 型糖尿病、2型糖尿病、妊娠糖尿病和其它特殊類型糖尿病。其中,以2 型糖尿病最為常見(jiàn),約占糖尿病患者的90%,主要由于遺傳、環(huán)境等因素,使得胰島素調(diào)節(jié)血糖能力下降[3]。糖尿病具有高達(dá)100 多種并發(fā)癥,如糖尿病心血管并發(fā)癥、糖尿病足、神經(jīng)等病變[4-5]。目前,糖尿病仍以飲食控制和藥物治療為主,給人們的生活帶來(lái)極大不便,早發(fā)現(xiàn)早治療可以減少由糖尿病并發(fā)癥引起的死亡率。因此,尋找一種更加高效、準(zhǔn)確的診斷方法具有重要意義。
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展與計(jì)算機(jī)性能的不斷提升,機(jī)器學(xué)習(xí)和人工智能逐漸應(yīng)用于各個(gè)領(lǐng)域,將機(jī)器學(xué)習(xí)方法與疾病診斷相結(jié)合,為醫(yī)生提供輔助決策,建立智能化的疾病診斷系統(tǒng)成為熱點(diǎn)研究方向。如今,機(jī)器學(xué)習(xí)已經(jīng)形成成熟的理論體系,發(fā)展出許多算法模型,如:經(jīng)典的決策樹(shù)(Decision Tree)、邏輯回歸(Logistic Regression)、支持向量機(jī)(Support Vector Machine)和K-近 鄰(K-nearest Neighbor)等單學(xué)習(xí)器,以及隨機(jī)森林(Random Forest)、AdaBoost 和XGBoost 等集成學(xué)習(xí)算法,在模式識(shí)別、文本分類、醫(yī)療診斷等方面均得到了廣泛應(yīng)用。
目前,許多學(xué)者將機(jī)器學(xué)習(xí)算法應(yīng)用于糖尿病的診斷。侯偉[6]等提出一種基于一維卷積神經(jīng)網(wǎng)絡(luò)的DPN 糖尿病預(yù)測(cè)方法,使用天津醫(yī)科大學(xué)代謝病醫(yī)院的898 個(gè)患者數(shù)據(jù)進(jìn)行模型驗(yàn)證,分別建立了1D-CNN 模型、支持向量機(jī)和BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。實(shí)驗(yàn)結(jié)果顯示,1D-CNN 模型的效果最好,準(zhǔn)確率達(dá)到98.3%。喬瀚[7]等將基于多特征屬性患者相似性的方法用于糖尿病診斷,通過(guò)聚類方法,分析了不同特征的相似性并進(jìn)行分組,使用隨機(jī)森林對(duì)分組結(jié)果進(jìn)行擬合得到疾病預(yù)測(cè)結(jié)果。實(shí)驗(yàn)結(jié)果顯示,所提方法相比其它方法更具有效性,預(yù)測(cè)準(zhǔn)確率得到提升。章權(quán)[8]等將Stacking 集成學(xué)習(xí)方法應(yīng)用于糖尿病的診斷,在UCI 數(shù)據(jù)庫(kù)中的皮馬印第安人糖尿病數(shù)據(jù)集中使用支持向量機(jī)、隨機(jī)森林和人工神經(jīng)網(wǎng)絡(luò)作為基學(xué)習(xí)器進(jìn)行Stacking 集成。結(jié)果表明,融合后的模型比單個(gè)模型具有更好的分類效果,分類準(zhǔn)確率為92.2%。Sarwar[9]等將支持向量機(jī)、K-近鄰、邏輯回歸、隨機(jī)森林等機(jī)器學(xué)習(xí)算法應(yīng)用于糖尿病預(yù)測(cè),實(shí)驗(yàn)使用UCI 數(shù)據(jù)庫(kù)中的皮馬印第安人糖尿病數(shù)據(jù)集。結(jié)果顯示,支持向量機(jī)和K-近鄰的分類準(zhǔn)確率為77%,優(yōu)于其它分類算法,血糖濃度、體重指數(shù)和年齡是糖尿病預(yù)測(cè)的重要影響因素。于建宇[10]為了提升對(duì)妊娠期糖尿病的預(yù)測(cè)準(zhǔn)確率,分別使用了Xgboost、Lightgbm 和Catboost 等集成學(xué)習(xí)算法,對(duì)天池比賽中的糖尿病數(shù)據(jù)進(jìn)行預(yù)測(cè),實(shí)驗(yàn)中使用交叉驗(yàn)證與網(wǎng)格搜索,確定模型的最佳參數(shù)。結(jié)果顯示,Catboost 算法的預(yù)測(cè)準(zhǔn)確率最高,達(dá)到了76.5%。
機(jī)器學(xué)習(xí)算法在疾病預(yù)測(cè)方面的應(yīng)用可以提升診斷效率和準(zhǔn)確率,但是醫(yī)療數(shù)據(jù)通常具有大規(guī)模、高維度和異構(gòu)性等特點(diǎn),模型的預(yù)測(cè)準(zhǔn)確率會(huì)受到多種因素的影響,同一模型在不同數(shù)據(jù)集中的表現(xiàn)也具有很大差異。雖然當(dāng)前具有許多機(jī)器學(xué)習(xí)算法,但大多數(shù)算法都是黑箱模型,可解釋性不強(qiáng)。針對(duì)于此,本文使用單分類模型(決策樹(shù)、邏輯回歸、支持向量機(jī)、K-近鄰和樸素貝葉斯)和集成學(xué)習(xí)算法(隨機(jī)森林、AdaBoost 和XGBoost)用于糖尿病預(yù)測(cè),對(duì)UCI 數(shù)據(jù)庫(kù)中的皮馬印第安人糖尿病數(shù)據(jù)集進(jìn)行建模,通過(guò)5 折交叉驗(yàn)證和網(wǎng)格搜索獲得模型的最佳參數(shù),并使用5 折交叉驗(yàn)證準(zhǔn)確率和AUC 值選出最佳預(yù)測(cè)模型,然后引入SHAP 方法進(jìn)行特征分析,找出影響糖尿病的主要因素。
由于大多數(shù)機(jī)器學(xué)習(xí)算法的可解釋性較差,無(wú)法分析各個(gè)特征如何影響模型的預(yù)測(cè)結(jié)果,而這對(duì)于疾病診斷來(lái)說(shuō)非常重要。因此,本文采用SHAP方法對(duì)模型中的糖尿病影響因素進(jìn)行分析。
沙普利可加性模型解釋方法(SHapley Additive exPlanation,SHAP)是Lundberg 和Lee[11]在2017 年提出的,其基本思想是通過(guò)計(jì)算每個(gè)特征加入模型時(shí)的邊際貢獻(xiàn)達(dá)到解釋模型的目的,可用于解釋各種黑箱模型。該方法首先計(jì)算出每個(gè)特征的貢獻(xiàn)值,可能為正向貢獻(xiàn),也可能為負(fù)向貢獻(xiàn),然后將所有特征的貢獻(xiàn)值累加得到最終預(yù)測(cè)結(jié)果[12-14]。
假設(shè)第i個(gè)樣本為xi,第i個(gè)樣本的第j個(gè)特征為xij,模型對(duì)該樣本的預(yù)測(cè)值為yi,整個(gè)模型的基線(即模型對(duì)所有樣本預(yù)測(cè)值的均值)為ybase,則SHAP 值服從以下等式:
式中,f(xij) 表示第i個(gè)樣本中第j個(gè)特征對(duì)模型預(yù)測(cè)結(jié)果yi的貢獻(xiàn)值。當(dāng)f(xij)>0 時(shí),表示該特征對(duì)模型預(yù)測(cè)結(jié)果具有正向影響,反之,該特征對(duì)模型預(yù)測(cè)結(jié)果具有負(fù)向影響[15-16]。SHAP 方法示意如圖1所示。
圖1 SHAP 示意圖Fig.1 Schematic diagram of SHAP
模型需要依靠合適的評(píng)價(jià)指標(biāo)進(jìn)行評(píng)估,對(duì)于二分類問(wèn)題,常常使用混淆矩陣對(duì)模型的分類效果進(jìn)行評(píng)價(jià),混淆矩陣可以直觀地反應(yīng)出模型的分類結(jié)果,由混淆矩陣可以得到準(zhǔn)確率(Accuracy)、精準(zhǔn)率(Precision)、召回率(Recall)和F1值,對(duì)模型性能進(jìn)行全面評(píng)估。其中,準(zhǔn)確率是分類正確的樣本數(shù)量與總樣本數(shù)量的比值;精準(zhǔn)率表示預(yù)測(cè)為糖尿病的樣本中實(shí)際也為糖尿病患者的比例;召回率表示真實(shí)為糖尿病的樣本中,被預(yù)測(cè)為糖尿病的比例;F1 值為精準(zhǔn)率與召回率的調(diào)和平均值。各評(píng)價(jià)指標(biāo)的計(jì)算公式如下:
其中,TP表示真實(shí)為糖尿病同時(shí)也被預(yù)測(cè)為患糖尿??;TN表示真實(shí)為未患糖尿病同時(shí)也被預(yù)測(cè)為未患?。籉N表示真實(shí)為患糖尿病而被預(yù)測(cè)為未患??;FP表示真實(shí)未患病而被預(yù)測(cè)為患糖尿病。
受 試 者 工 作 特 征(Receiver Operating Characteristic,ROC)曲線,表示了模型在不同閾值下真正率(True Positive Rate,TPR)和假正率(False Positive Rate,F(xiàn)PR)之間的關(guān)系。TPR和FPR的計(jì)算公式如下:
分別計(jì)算出不同閾值下的真正率和假正率,以假正率為橫軸,真正率為縱軸,將各點(diǎn)在平面直角坐標(biāo)系中繪制出來(lái)并進(jìn)行連接得到ROC曲線(如圖2所示),ROC曲線越靠近左上角,表示模型效果越好。AUC 值是ROC曲線下的面積大小,其值越接近于1,表示模型預(yù)測(cè)效果越好。本文通過(guò)5 折交叉驗(yàn)證準(zhǔn)確率和AUC 值對(duì)各個(gè)模型的性能進(jìn)行評(píng)價(jià)。
圖2 ROC 曲線示意圖Fig.2 ROC curve diagram
本文實(shí)驗(yàn)過(guò)程主要包括數(shù)據(jù)預(yù)處理、建立預(yù)測(cè)模型、模型性能評(píng)估和影響因素分析4 部分,實(shí)驗(yàn)流程如圖3 所示。實(shí)驗(yàn)使用UCI 數(shù)據(jù)庫(kù)中的皮馬印第安人糖尿病數(shù)據(jù)集,該數(shù)據(jù)集共有768 個(gè)樣本,其中,500 例未患糖尿病,268 例患有糖尿病。數(shù)據(jù)集含有8 個(gè)特征,各個(gè)特征的含義見(jiàn)表1,其中,Outcome 為標(biāo)簽列,表示是否患有糖尿病。
圖3 實(shí)驗(yàn)流程Fig.3 Experimental steps
表1 糖尿病數(shù)據(jù)集特征描述Tab.1 Feature description of diabetes dataset
在數(shù)據(jù)預(yù)處理前通常需要對(duì)數(shù)據(jù)進(jìn)行可視化分析,其有利于分析數(shù)據(jù)自身特性,幫助提升模型的分類效果。通過(guò)Python 中Pandas 庫(kù)的describe 函數(shù),對(duì)原始數(shù)據(jù)進(jìn)行描述性統(tǒng)計(jì),可知各特征間的均值和方差存在較大差異。特征Glucose、BloodPressure、SkinThickness、Insulin 和BMI 5 個(gè)特征存在不同程度的缺失情況,其中Insulin 的缺失比例達(dá)到48.7%。由于缺失數(shù)據(jù)較多,若直接刪除含有缺失值的樣本,將會(huì)導(dǎo)致模型擬合能力下降,因此,對(duì)于上述5 個(gè)特征使用中位數(shù)進(jìn)行缺失值填充。然后,使用數(shù)字異常值方法處理異常值,計(jì)算各列特征的四分位數(shù)間距IQR,將低于Q1-1.5IQR的值或高于Q3+1.5IQR的值作為異常值。其中,Q1為下四分位數(shù),Q3為上四分位數(shù),IQR為上四分位數(shù)與下四分位數(shù)之差。最后,將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理以消除特征之間的量綱差異。
本文對(duì)UCI 數(shù)據(jù)庫(kù)中的皮馬印第安人糖尿病數(shù)據(jù)進(jìn)行缺失值、異常值處理并進(jìn)行標(biāo)準(zhǔn)化后,分別使用決策樹(shù)、邏輯回歸、支持向量機(jī)、K-近鄰、樸素貝葉斯5 種單分類器,以及隨機(jī)森林、AdaBoost 和XGBoost3 種集成學(xué)習(xí)算法對(duì)預(yù)處理后的數(shù)據(jù)集進(jìn)行擬合。實(shí)驗(yàn)過(guò)程中,使用70%的數(shù)據(jù)作為訓(xùn)練集,30%的數(shù)據(jù)作為測(cè)試集,采用網(wǎng)格搜索和交叉驗(yàn)證尋找各個(gè)模型的最優(yōu)參數(shù),將5 折交叉驗(yàn)證準(zhǔn)確率作為確定模型最優(yōu)參數(shù)的評(píng)估指標(biāo)。將建立好的模型在測(cè)試集中進(jìn)行測(cè)試,以5 折交叉驗(yàn)證準(zhǔn)確率和AUC 值作為模型優(yōu)劣的評(píng)價(jià)標(biāo)準(zhǔn),各模型的預(yù)測(cè)結(jié)果,見(jiàn)表2。
表2 不同模型性能比較Tab.2 Performance comparison of different models
由表2 可知,在皮馬印第安人糖尿病數(shù)據(jù)集中,決策樹(shù)模型的預(yù)測(cè)效果最差,5 折交叉驗(yàn)證準(zhǔn)確率為70.70%,AUC 值為0.706;XGBoost 算法的分類效果最好,5 折交叉驗(yàn)證準(zhǔn)確率達(dá)到了77.83%,AUC值為0.822,高于其它分類模型。
為了進(jìn)一步研究糖尿病的主要影響因素,提升分類模型的可解釋性,引入SHAP 方法對(duì)糖尿病數(shù)據(jù)集進(jìn)行特征分析。圖4 為糖尿病數(shù)據(jù)集的特征重要性分析圖。由圖中可知,葡萄糖濃度、身體質(zhì)量指數(shù)和年齡是影響糖尿病的重要因素,這與臨床經(jīng)驗(yàn)基本一致。
圖4 特征重要性分析Fig.4 Feature importance analysis
圖5 展示了各特征的SHAP 值分布,從上到下按各個(gè)特征的重要性進(jìn)行排序。橫軸是模型的SHAP 值,點(diǎn)的顏色表示特征值的大小。越接近紅色,表示特征的值越大,越接近藍(lán)色表示特征的值越小。SHAP 值為正,表示對(duì)模型預(yù)測(cè)為患糖尿病具有正向貢獻(xiàn);SHAP 值為負(fù),表示對(duì)模型預(yù)測(cè)為患糖尿病具有負(fù)向貢獻(xiàn)。由圖5 可知,Glucose 對(duì)模型的預(yù)測(cè)結(jié)果影響最大,且隨著Glucose 的值增大,會(huì)增加樣本預(yù)測(cè)為患糖尿病的概率,即該特征對(duì)預(yù)測(cè)為患糖尿病具有正向影響。BMI 的趨勢(shì)與Glucose 類似,隨著B(niǎo)MI 值的增大,樣本被判定為患糖尿病的概率增加,而B(niǎo)MI 值的減小,則會(huì)增加模型判定樣本不患糖尿病的概率,這與生活中肥胖患者更易患糖尿病相一致。
圖5 特征分析Fig.5 Feature analysis
SHAP 方法不僅可以在整體層面對(duì)預(yù)測(cè)模型的影響因素進(jìn)行分析,還可以針對(duì)個(gè)體進(jìn)行影響因素分析。分別選取一名被預(yù)測(cè)為糖尿病患者和一名被預(yù)測(cè)為非糖尿病患者進(jìn)行個(gè)體影響因素分析。
圖6 為一名被預(yù)測(cè)為糖尿病患者的SHAP 特征貢獻(xiàn)圖,紅色部分表示對(duì)預(yù)測(cè)為糖尿病有正向影響,藍(lán)色表示對(duì)預(yù)測(cè)為患糖尿病有負(fù)向影響。由圖6 可以解釋這名患者被預(yù)測(cè)為患糖尿病的原因是葡萄糖濃度較高、身體質(zhì)量指數(shù)較高、年齡較大等。
圖6 預(yù)測(cè)為糖尿病患者的SHAP 解釋示例Fig.6 Example of SHAP interpretation for predicting diabetes
圖7 為一名被預(yù)測(cè)為非糖尿病患者的SHAP 特征貢獻(xiàn)圖。由圖7 可以解釋其被預(yù)測(cè)為非糖尿病的原因?yàn)槠咸烟菨舛容^低、年齡較小、身體質(zhì)量指數(shù)較低等。
圖7 預(yù)測(cè)為非糖尿病患者的SHAP 解釋示例Fig.7 Example of SHAP interpretation for predicting Non-diabetes
糖尿病作為中國(guó)發(fā)病率較高的慢性疾病之一,給患者帶來(lái)許多不便和負(fù)擔(dān)。因此,將機(jī)器學(xué)習(xí)算法應(yīng)用到糖尿病預(yù)測(cè),對(duì)提升糖尿病診斷效率和準(zhǔn)確率,了解糖尿病的發(fā)病機(jī)制具有重要意義。本文基于機(jī)器學(xué)習(xí)算法,使用UCI 數(shù)據(jù)庫(kù)中的皮馬印第安人糖尿病數(shù)據(jù)集構(gòu)建了糖尿病預(yù)測(cè)的單分類模型(決策樹(shù)、邏輯回歸、支持向量機(jī)、K-近鄰和樸素貝葉斯)和集成學(xué)習(xí)模型(隨機(jī)森林、AdaBoost 和XGBoost),通過(guò)5 折交叉驗(yàn)證準(zhǔn)確率和AUC 值對(duì)各個(gè)模型進(jìn)行性能評(píng)估。實(shí)驗(yàn)結(jié)果表明,XGBoost 算法的預(yù)測(cè)效果最好,5 折交叉驗(yàn)證準(zhǔn)確率為77.83%,AUC 值為0.822。然后,引入了SHAP 方法增強(qiáng)模型的可解釋性,得到引起糖尿病的主要因素為葡萄糖濃度、身體質(zhì)量指數(shù)、年齡、懷孕次數(shù)等,醫(yī)生在進(jìn)行決策時(shí)可以多關(guān)注這些特征。在未來(lái),可以將更多與糖尿病相關(guān)的因素考慮到模型中,進(jìn)一步提升糖尿病診斷準(zhǔn)確率。