青海師范大學(xué)數(shù)學(xué)與統(tǒng)計學(xué)院 謝妮妮
糖尿病是多發(fā)慢性病,如何準(zhǔn)確預(yù)測是否患有糖尿病以及找到影響糖尿病的因素對預(yù)防和控制糖尿病顯得尤為重要。本文通過幾種機器學(xué)習(xí)算法分析一組糖尿病數(shù)據(jù)比較幾種模型的優(yōu)劣及影響糖尿病的主要因素。首先在訓(xùn)練集上通過交叉驗證找到每個模型的最優(yōu)參數(shù),然后根據(jù)混淆矩陣圖計算出每個模型的F1-score作為模型的評價標(biāo)準(zhǔn)。研究發(fā)現(xiàn)最適合該數(shù)據(jù)集的預(yù)測模型是Voting,其次是KNN、SVM及隨機森林;屬性的順序是 :Glucose, BMI, Diabetes Pedigree Function,Age,Blood Pressure,Pregnancies,Insulin,Skin Thickness。
糖尿病是一種多發(fā)慢性病,會引發(fā)眾多并發(fā)癥,比如視力減退、中風(fēng)、心臟病發(fā)作等,讓患者身心備受煎熬,一直被社會廣泛關(guān)注。據(jù)國際糖尿病聯(lián)盟(IDF)的2017年調(diào)研結(jié)果顯示,全球約有4.25億的糖尿病患者,患病率逐年上升,其中我國糖尿病患者比例大于25%[1],預(yù)防控制糖尿病是世界各國面臨的重大公共衛(wèi)生問題[2,3]。糖尿病中的2型糖尿病臨床確診前有較長的潛伏期且患病人數(shù)眾多。因此,對高危人群的篩查預(yù)防是控制2型糖尿病患病率的有效途徑[4,5]。糖尿病發(fā)病風(fēng)險預(yù)測模型是針對健康人群(非糖尿病患者)的糖尿病風(fēng)險評估工具,也是識別高危人群的有效工具。許多學(xué)者利用機器學(xué)習(xí)算法對糖尿病進(jìn)行分析預(yù)測。例如,Smith等人使用了早期的神經(jīng)網(wǎng)絡(luò)模型(ADAP)來預(yù)測Pima India高危人群糖尿病的發(fā)病率,通過邏輯回歸和線性感知器對ADAP結(jié)果進(jìn)行比較[6];Yuvaraj等研究了基于Hadoop集群的機器學(xué)習(xí)算法在醫(yī)療保健系統(tǒng)中的糖尿病預(yù)測[7];Hsin-Yi等利用支持向量機、決策樹、邏輯回歸等方法來研究糖尿病引起的眼底病變[8]等。
大多數(shù)糖尿病患者,在他們生病之前并沒有察覺到太多,而且僅僅憑借診斷過程中的各種癥狀來判斷是否患糖尿病是不科學(xué)的。醫(yī)院目前進(jìn)行糖尿病診斷主要是通過檢測各類指標(biāo)[9,10],包括血糖、尿糖、尿酮體等。不僅需要檢測這些指標(biāo)是否在正常范圍[11],而且在至少2周的觀察期后,還要在醫(yī)院進(jìn)行血糖測定等,這需要耗費大量的人力、物力、財力等資源。基于機器學(xué)習(xí)算法的糖尿病檢測與分類研究,不僅不能提供高效的檢測方法,還可以探索導(dǎo)致糖尿病的一些被忽視的疾病因素,提高醫(yī)生效率,減少隱藏患病危險性。目前,抵抗糖尿病最安全的方法是使用機器學(xué)習(xí)算法來分析和預(yù)測糖尿病,為治療提供新的思路。本文基于機器學(xué)習(xí)算法來比較幾個模型的優(yōu)缺點和影響糖尿病的主要因素,致力于促進(jìn)糖尿病治療的發(fā)展,它具有很大的研究價值和重要性。
PimaIndians糖尿病數(shù)據(jù)集有9個特征,通過幾種機器學(xué)習(xí)算法分析數(shù)據(jù),根據(jù)診斷指標(biāo)來分析預(yù)測是否患病,以及找到主要影響因素。樣本量為768,500個被標(biāo)記為0,用圓錐表示;268個標(biāo)記為1,用圓柱表示?!敖Y(jié)果(標(biāo)簽:是否患?。笔俏覀儗⒁A(yù)測的特征,0意味著未患病,1意味著患病。數(shù)據(jù)結(jié)構(gòu)如表1所示,預(yù)測變量具體情況如表2所示,變量的描述統(tǒng)計量如表3所示,樣本標(biāo)記情況如圖1所示。
表1 數(shù)據(jù)結(jié)構(gòu)表Tab.1 Data structure table
表2 預(yù)測變量表Tab.2 Predictive variability scale
表3 變量的描述統(tǒng)計量Tab.3 Descriptive statistics of variables
圖1 樣本標(biāo)記情況圖Fig.1 Sample labeling diagram
KNN是機器學(xué)習(xí)中最簡單且應(yīng)用最廣泛的方法之一,所以,我們要先考慮用KNN。KNN是一種惰性學(xué)習(xí),沒有特定的學(xué)習(xí)過程。因此,KNN首先要考慮3個要素:K值、距離測量和分類規(guī)則。我們用歐氏距離測量距離,用投票的方法得到最終的分類結(jié)果,所以我們只需要考慮如何選擇K值,K值的選擇基于交叉驗證法。交叉驗證的思想是將數(shù)據(jù)隨機劃分,然后,使用訓(xùn)練集在不同條件下訓(xùn)練模型,例如改變參數(shù)的數(shù)量,改變參數(shù)的值。從這些模型中可以找到檢驗誤差最小的模型,即精度最高的模型。
如圖2所示為不同K值下KNN模型的精度。橫軸表示鄰居數(shù),即K值,縱軸表示K值對某一特定值的精度。這里取的K值范圍是(0,10)。訓(xùn)練集用藍(lán)線 表示,測試集用黃線 表示。由圖2分析可得,訓(xùn)練集的準(zhǔn)確率隨著k的增加有下降的趨勢。測試集的準(zhǔn)確率總體趨勢是隨著k的增加先增加后趨于穩(wěn)定。我們想要學(xué)習(xí)模型,在測試集中獲得更高的準(zhǔn)確率。我們發(fā)現(xiàn),當(dāng)k為(6,10)時,測試集的準(zhǔn)確率略高于訓(xùn)練集;當(dāng)k=7時,精度最高。
圖2 KNN模型的訓(xùn)練集和測試集精度圖Fig.2 Precision diagrams of training set and test set of KNN model
通過觀察不同k值下KNN模型訓(xùn)練集和測試集的準(zhǔn)確率,我們發(fā)現(xiàn)當(dāng)k=7時,測試集的正確率較高,因此我們選擇k=7進(jìn)行建模,得到KNN的混淆矩陣:實際類別是1,預(yù)測類別是-1,樣本量是20;實際類別是-1,預(yù)測類別是-1,樣本量是34;實際類別是1,預(yù)測類別是-1,樣本量是117;實際類別是-1,預(yù)測類別是1,樣本量是20。通過計算,我們可以得到在K=7時,測試集Accuracy=0.79,F(xiàn)1-score=0.85。
支持向量機是特征空間中具有最大距離的線性分類器,其本質(zhì)是解決凸二次規(guī)劃的優(yōu)化問題,即最小化正則化的損失函數(shù)。SVM最重要的兩個參數(shù),一個是懲罰因子C,懲罰因子C的作用是通過改變大小,來控制SVM分類標(biāo)準(zhǔn)的嚴(yán)格程度。當(dāng)C趨于無限大時,意味著分類嚴(yán)格不能有偏差;當(dāng)C趨近于很小時表示錯誤容忍度較高。因此分析可得,懲罰因子取值C=1。核函數(shù)是第二個重要的參數(shù),由于支持向量機可以在特征空間中線性分離樣本,所以特征空間的選擇非常重要。特征空間隱式依賴于核函數(shù)。同時,哪個特征空間最適合模型是未知的。因此選取核函數(shù)對于支持向量機尤為重要。核函數(shù)選取的如果不合適,特征空間就會選擇不合適,從而也會導(dǎo)致模型選擇不當(dāng)。通過交叉驗證,我們選擇了線性核函數(shù),因為當(dāng)選取線性核函數(shù)時,測試集正確率最高,Accuracy=0.78。
選擇線性核函數(shù)和懲罰因子后,通過建立支持向量機模型得到支持向量機混淆矩陣圖。由混淆矩陣可以得到:在預(yù)測類別是-1,實際類別是1時,樣本量是19;在預(yù)測類別是-1,實際類別是-1時,樣本量是31;在預(yù)測類別是1,實際類別是1時,樣本量是118;在預(yù)測類別是1,實際類別是-1時,樣本量是23,F(xiàn)1-score=0.849。
隨機森林基于決策樹。隨機森林構(gòu)建完成,新樣本將進(jìn)入隨機森林。每棵樹都會根據(jù)樣本做出相應(yīng)的判斷結(jié)果,整個隨機森林的預(yù)測結(jié)果遵循少數(shù)服從多數(shù)的原則。
構(gòu)建隨機森林是決策樹的隨機組合,其中非葉節(jié)點是決策點和測試條件;分支是測試結(jié)果,葉節(jié)點代表最終的分類標(biāo)記,構(gòu)建決策樹的基本思想是隨著樹的深度增加,節(jié)點的熵加快降低,熵值降低的越低越好,因此,可以得到最短的決策樹,如果熵值變小,則表示當(dāng)前的分類效果比上一步好,分類效果得到了提高,分類進(jìn)度用信息增益表示。信息熵的值越小,特征的純度越高。決策樹分割的屬性選擇需要信息增益,信息增益越大,通過屬性分割得到“純度改善”越大。
隨機森林的優(yōu)點是速度快,容易實現(xiàn)并行計算,并且可以檢測到屬性之間的相互作用,根據(jù)收斂定理,當(dāng)隨機森林的數(shù)量趨于無窮時,可以用大數(shù)定理證明訓(xùn)練誤差和檢驗誤差可以收斂在一起。在實際問題中,決策樹的數(shù)量不是無限的,模型參數(shù)的改變也會影響模型的訓(xùn)練結(jié)果,擬合效果也不同,樹的數(shù)量是隨機森林的一個重要參數(shù)。不同決策樹下隨機森林訓(xùn)練集和測試集正確性可視化如圖3所示。橫坐標(biāo)表示決策樹的個數(shù),縱坐標(biāo)表示準(zhǔn)確率,當(dāng)決策樹個數(shù)為n(0,10)時,訓(xùn)練集的準(zhǔn)確率趨于提高;當(dāng)n>10時,訓(xùn)練集的精度趨于穩(wěn)定,測試集的總體趨勢波動很大;當(dāng)n為(10,15)時,測試集的準(zhǔn)確率最高,通過觀察,當(dāng)決策樹數(shù)量為n=13時,測試集的準(zhǔn)確率相對最好,為0.77。
圖3 隨機森林模型的訓(xùn)練集和測試集精度圖Fig.3 Precision graphs of training and testing sets of random forest model
基于不同決策樹數(shù)下訓(xùn)練集的準(zhǔn)確率和隨機森林測試集的準(zhǔn)確率的比較圖,當(dāng)決策樹個數(shù)為n=13時,測試集的準(zhǔn)確度為0.77??紤]到訓(xùn)練集正確率隨決策樹數(shù)的變化趨勢,一般情況下,我們?nèi)匀贿x擇決策樹個數(shù)n=13進(jìn)行隨機森林建模,由混淆矩陣圖可以看出,當(dāng)預(yù)測類別為-1,實際類別為1時,樣本量為29;當(dāng)預(yù)測的類別為-1,實際類別為-1時,樣本大小為37;當(dāng)預(yù)測類別為1,實際類別為1時,樣本量為108;當(dāng)預(yù)測類別為1,實際類別為-1時,樣本量為17,計算是可用的,隨機森林的優(yōu)點之一是它可以比較每個屬性的重要性。
通過分析,得到了隨機森林中的特征排序圖如圖4所示,橫軸表示屬性索引值,縱軸表示特征的重要性,從特征排序圖中我們可以看到,糖尿病檢測最重要的屬性是:血糖、BMI和糖尿病遺傳系數(shù)。
圖4 隨機森林特征排序圖Fig.4 Random forest feature ranking diagram
在機器學(xué)習(xí)中對于分類問題, 投票法是最常用的結(jié)合策略。首先每個弱分類器做出分類預(yù)測,接著基于投票法結(jié)合后得出最終結(jié)果。投票法在機器學(xué)習(xí)中有不同的投票方式,簡單投票是最頻繁使用的方法,通過基于簡單投票法中的相對多數(shù)表決法結(jié)合不同分類器的預(yù)測結(jié)果,投票數(shù)最大的類別是綜合模型的最終預(yù)測類別。
通過投票對多個模型的結(jié)果進(jìn)行聚合就是分類聚合投票,模型的選擇應(yīng)該是好的或壞的,這樣,最終的聚合效果提高。在這里,選擇KNN,支持向量機和隨機森林作為基本聚合模型,每個模型基于一個簡單的交叉驗證方法選擇最佳參數(shù)。
研究分析可得,由混淆矩陣可知:在預(yù)測類別是-1,實際類別是1時,樣本量是14;在預(yù)測類別是-1,實際類別是-1時,樣本量是29;在預(yù)測類別是1,實際類別是1時,樣本量是123;在預(yù)測類別是1,實際類別是-1時,樣本量是25。計算可得,Voting測試集準(zhǔn)確率為0.80,F(xiàn)1-score=0.86。
我們通過KNN、SVM、隨機森林以及Voting分類聚合模型可以看出,每個模型對數(shù)據(jù)的影響是不同的,通過比較模型的效果,最終選擇F1-score作為模型效果的評價基準(zhǔn)。
在單一分類模型中,我們使用KNN和SVM,它們的分類效果也比較顯著,在對KNN和SVM模型建模之前,我們采用交叉驗證方法,使用測試集精度最高的參數(shù),然后通過建模得到模型結(jié)果的混淆矩陣圖,由KNN模型的混淆矩陣圖可知,Accuracy=0.79,F(xiàn)1-score=0.854;從支持向量機的混淆矩陣圖可得Accuracy=0.78,,F(xiàn)1-score=0.849。顯然,在單分類器中,KNN模型得分結(jié)果要好于SVM模型,效果最好的是KNN分類器。
本文選取了并行積分方法中的隨機森林法,隨機森林是通過Bagging的擴(kuò)展和變化得到的,在基于決策樹的學(xué)習(xí)裝置的基礎(chǔ)上,它在訓(xùn)練過程中比套袋有更多的隨機屬性選擇,綜合考慮后,選擇隨機森林算法。
結(jié)合不同學(xué)習(xí)者的學(xué)習(xí)效果,選擇效果相對較好的分類器對投票模型進(jìn)行聚合,在投票聚合模型中,我們選擇了3個效果比較好的分類器,分別是KNN、SVM和Random Forest,通過建立分類聚合模型,得到了混淆矩陣圖,由投票的混淆矩陣圖,我們可以得到:測試集Accuracy0.80,從前面的分析可以看出,KNN是分類效果最好的單一分類器,Random Forest是集合中最好、最適合的分類模型,但它們的得分都低于分類投票的聚合模型。
在機器學(xué)習(xí)的單一模型中,我們選擇了SVM和KNN兩個分類效果最好的模型,KNN更適合于糖尿病的預(yù)測,因為KNN的F1-score=0.854,同時獲得KNN的準(zhǔn)確性:Accuracy=0.79,將單個學(xué)習(xí)者表現(xiàn)最好的模型和與分類投票聚類模型綜合學(xué)習(xí)效果最好的模型的結(jié)果進(jìn)行比較,發(fā)現(xiàn)分類投票聚類模型的效果最好,因為我們在實驗中選擇了KNN、SVM和Random Forest這3個最好的模型作為聚合的基本模型,我們想驗證:如果我們把所有優(yōu)秀的模型結(jié)合起來,是否可以得到更好的模型?從我們選擇的皮瑪印第安人糖尿病的數(shù)據(jù)集來看,答案是肯定的,我們是否能在其他數(shù)據(jù)集中得到一致的答案還需要進(jìn)一步驗證。
因此,我們最終選擇了最好的分類投票聚合模型,然后選擇了KNN以及支持向量機和隨機森林。在選取的8個屬性中,屬性的重要性由高到低依次為:血糖值、BMI、遺傳指數(shù)、年齡、血壓、懷孕次數(shù)、胰島素含量、皮脂厚度。從預(yù)防糖尿病的觀點來看,應(yīng)該更加注意血糖值是否在穩(wěn)定的范圍內(nèi),隨著年齡的增長,患糖尿病的風(fēng)險較高,控制體重尤為重要,由于遺傳因素,我們不能有心理負(fù)擔(dān),要保持良好的精神、積極的生活方式和健康習(xí)慣。
引用
[1]CHO N H,SHAW J E,KARURANGA S,et al.IDF Diabetes Atlas:Global Estimates of Diabetes Prevalence for 2017 and Projections for 2045[J].Diabetes Research and Clinical Practice,2018,138(1):271-281.
[2]LU C,SUN W.Prevalence of Diabetes in Chinese Adult[J].JAMA,2014,311(2):199-200.
[3]YANG W,LU J,WENG J,et al.Prevalence of Diabetes Among Men and Women in China[J].The New England Journal of Medicine,2010,362(25):2425-2426.
[4]BHUSHAN R,ELKIND H K E,BHUSHAN M,et al.Improved Glycemic Control and Reduction of Cardiometabolic Risk Factors in Subjects with Type 2 Diabetes and Metabolic Syndrome Treated with Exenatide in a Clinical Practice Settin[J].Diabetes Technol Ther,2009,11(6):353-359.
[5]TUOMILEHTO J,LINDSTR?M J,ERIKSSON J G,et al.Prevention of Type 2 Diabetes Mellitus by Changes in Lifestyle Among Subjects with Impaired Glucose Tolerance[J].New England Journal of Medicine,2001(344):1343-1350.
[6]SMITH J W,EVERHART J E,DICKSON W C,et al.Using the ADAP Learning Algorithm to Forecast the Oneset of Diabates Mellitus[J].Prock Annu Symp Comput Appl Med Care,1988,56(10):261-265.
[7]YUVARAJ N,SRIPREETHAA K R.Diabetes Prediction in Healthcare Systems Using Machine Learning Algorithms on Hadoop Cluster[J].Cluster Computing,2017(1):1-9.
[8]TSAO H Y,CHAN P Y,SU E C Y.Predicting Diabetic Retinopathy and Identifying Interpretable Biomedical Features Using Machine Learning Algorithms[J].BMC Bioinformatics,2018,19(S9):195-205.
[9]馬曉云.糖化血紅蛋白與果糖胺在妊娠糖尿病患者中的診斷效果及價值研究[J].糖尿病新世界,2016,24(12):122-123.
[10]程捷,萬斌,李雯霞.影響2型糖尿病患者血糖監(jiān)測依從性相關(guān)因素調(diào)查分析[J].護(hù)士進(jìn)修雜志,2012,27(18):1654-1656.
[11]PARK P J,GRIFFIN S J,SARGEANT L,et al.The Performance of a Risk Score in Predicting Undiagnosed Hyperglycemia[J].Diabetes Care,2002(25):984-988.