章 權, 周梁琦, 鄒 琪, 喻新民
(1 東華理工大學 信息工程學院, 南昌 330013; 2 東華理工大學 軟件學院, 南昌 330013)
研究可知,糖尿病是一種危害性非常大的慢性疾病,也是一種具有的遺傳特性的代謝性疾病,典型特征為多尿、多飲、多食和體重減輕。近些年來,全球糖尿病的患病人數增加較快,根據國際糖尿病聯盟調查,截至到2017年,全球糖尿病患者已超過4億,并且在報告中指出預計到2045年,糖尿病的患病總人數達到6億多[1]。實際上糖尿病不僅是世界性問題,中國糖尿病患者的規模是全球最大的,占全球患病總人數的四分之一還多,患病人數已到1.14億[2]。
由于慢性病難于治愈特點,在慢性病的治療上需要大量的醫療投入。目前,中國每年花費超三千億的醫療支出在糖尿病中[3]。糖尿病還具有不容易被發現的特點,據資料了解,糖尿病患者,僅僅有一半知道自己得病,剩下的一半還以為自己是正常人,因此多數患者均在不知道自己患病情況下,未能及時接受治療,導致病情發展更加迅速[4]。
綜前論述可知,目前糖尿病預測已然成為迫切需要解決的研究課題。因此,建立有效的糖尿病預測模型在糖尿病防治當中非常重要。近些年,機器學習方法在糖尿病預測領域得到廣泛應用,但是大多方法基于單一學習方法建模,泛化能力較差。本文即針對單一方法準確性不高,泛化能力不強的問題,提出一種基于集成學習思想的糖尿病預測方法。該方法采用Stacking的設計思路,使用支持向量機、隨機森林、人工神經網絡等分類方法作為初級分類器,使用邏輯回歸作為次級分類器建立糖尿病預測模型。
在早期的糖尿病預測模型研究中,研究人員主要使用回歸模型來建立預測模型,近期以來,隨著機器學習方法和深度學習方法的快速發展,機器學習和深度學習中的模型和方法逐漸被應用于糖尿病預測模型的研究和設計。
通常在糖尿病的預測中,以多元回歸模型或 Cox 回歸這兩種方法為主。基于多元回歸的預測模型研究中,Mehlsen等人[5]利用該方法建立模型用于對糖尿病中的視網膜病變進行預測。基于Cox回歸預測模型的研究中,如張紅艷等人[6]采用Cox回歸模型建立基于中國農村人群的非侵襲性2型糖尿病風險預測模型,該模型的靈敏度為65.96%,特異度為66.47%。周先鋒等人[7]則用Cox回歸模型研究不同程度的C反應蛋白與患有糖尿病之間的聯系。但是,多元回歸模型有著準確度較差、精度不高的缺點,而Cox回歸模型對數據要求高且成本大。
Anuja等人[8]提出了一種基于SVM的糖尿病預測模型,該模型是使用皮馬印第安人糖尿病數據集作為模型的驗證碼數據集,模型的準確性達到了78%;Aiswarya等人[9]使用J48決策樹和樸素貝葉斯作為分類器,對糖尿病的診斷進行分類。該系統使用了皮馬印第安人糖尿病數據集,J48決策樹和樸素貝葉斯的分類結果分別為74.8%,79.5%;Ahmad等人[10]在研究工作中,通過實驗發現懷孕次數這一屬性與是否患糖尿病的可能性之間關聯性較弱,故在去掉這一屬性之后,剪枝J48樹進一步提高了準確性,達到了89.7%。江燕等人[11]將主成分分析和最小乘向量機結合,采用徑向基核函數,對于血糖水平預測可以達到94.82%準確率。
李飛等人[12]考慮到高血糖患者具有皮膚組織熒光特性,在此基礎上利用神經網絡建立糖尿病無創評估模型,整體準確率達到74.9%;Ramesh等人[13]使用遞歸神經網絡(RNN)預測2種糖尿病。Ashiquzzaman等人[14]使用深度神經網絡(DNN),該神經網絡由多層感知器(MLP)、廣義回歸神經網絡(GRNN)和徑向基函數(RBF)組成。該方法的評估基于Pima印度數據集,正確率為88.41%。深度學習方法對非線性數據友好,具備很強的記憶功能、自學本領等,但是解釋性很差,并且模型建立需要的數據量較大,這樣限制其在糖尿病的一些小的數據集上應用。
本文所用的數據來自UCI數據集里的皮馬印第安人糖尿病數據集,該數據集最初來自美國國家糖尿病/消化/腎臟疾病研究所。數據集的目標是基于數據集中包含的某些預測變量來預測患者是否患有糖尿病。
該數據集具有一些明顯的約束條件,數據集中的患者都是Pima印第安至少21歲的女性。數據集由多個醫學預測變量和一個目標變量Outcome組成,當Outcome的值為1時代表患有糖尿病,當Outcome的值為0時表示未患糖尿病。預測變量包括患者的懷孕次數、BMI、胰島素水平、年齡等,具體見表1。

表1 Pima印第安數據集中預測變量
SVM是一種基于統計學習理論的機器學習方法,并不是采用經驗風險最小的方式,而是采用結構化風險最小,因此有著較好的泛化能力,并在解決小樣本、非線性及高維模式識別中表現出較大優勢。本文使用的數據集樣本量較小,因此在研究中采用SVM作為初級學習器符合數據分析的結論。
支持向量機的主要思想是找到一個合適的分類函數對未知樣本進行預測。這個分類函數通過核函數以及懲罰因子來確定,而相關參數的確定對模型的準確度有著很大的影響。經典的支持向量機方法是一種二分類的算法,其最基本的思想是基于訓練集在樣本空間中找到一個劃分超平面,將不同類別的樣本分開,如圖1所示。對于非線性問題,使用直線已經不能很好地將樣本進行分類,模型使用核函數把樣本數據從低維度不可分的空間映射到高維度可分空間,并以此找出分類平面。
SVM方法關鍵就是選擇一個合適的核函數,通過對不同核函數進行分析,在本文SVM模型的構建中,選擇的核函數是linear核函數。
本文在初級學習器中選擇隨機森林回歸模型,該模型能夠處理高維度數據,并且不用做特征選擇,另外,在訓練完成后,還能給出比較重要的那些特征。該模型的泛化能力比較強,在訓練過程中能夠檢測特征間的互相影響。

圖1 SVM最優分類圖
隨機森林中最重要參數就是決策樹的個數,隨機森林中的棵樹太多或者太少都會影響模型的結果。因此,本文采用了網格搜索的方法,將森林規模確定為2 030棵樹時,模型效果最好。
本文使用的人工神經網絡(ANN),就是多層感知機。ANN的每層神經元與下一層神經元全互連,
神經元之間不存在同層連接,這種結構通常被稱為多層前饋神經網絡模型。訓練時要經過前向傳播和誤差反饋傳播兩個過程。
人工神經網絡具有較好的自適應學習能力,現如今已廣泛應用于模式識別、非線性等課題研究中。因此,本文通過向ANN 輸入Pima印第安數據集中預測變量數據,再加以訓練,并由ANN輸出最終結果。這些結果用于糖尿病的預測。
模型融合主要分為 Stacking、Blending 和 Voting 等方法,是一種通過增加算法的多樣性來減少泛化誤差,從而提高模型準確率的有效、且實用的技術。模型融合有2個基本要素,分別是:單一模型之間的相關性要盡可能小,單一模型之間的性能表現相差不大。本文擬采用Stacking方法設計預測模型,Stacking 的基本思想是使用大量基分類器,再使用另一種頂層分類器來融合基分類器的預測,旨在降低泛化誤差。本文中模型融合的整體流程如圖2所示。

圖2 模型融合流程圖
本文的模型均采用Scikit-Learn機器學習包來實現,實驗環境為Intel(R)Core(TM)i7-8700K CPU@3.70 GHz、16 GB RAM設備。同時,采用了5折交叉驗證方法依次對ANN、隨機森林、支持向量機三種糖尿病預測模型進行訓練,經由訓練得到數據將形成新的數據集,并基于Stacking的思想對邏輯回歸模型進行訓練,對訓練后的模型在測試集上進行預測,不同模型的預測結果和由其它相關工作獲得的模型結果對比見表2,而由本次研究得到的不同預測模型評估分析結果,見表3。
本文采用的評價標準除了準確率(accuracy)外,還有精確率(precision)、召回率(recall)和F1。其中,準確率(accuracy)是指被分類正確的樣本數占總樣本數的比值;precision表示預測為正的樣本中,實際為正的所占的比例;recall表示實際為正的樣本中,被預測為正的所占的比例;F1值是精準率和召回率的加權調和平均值。綜上各評價指標的數學公式可分別表示為:
(1)
(2)
(3)
(4)
其中,P表示陽性樣本總數;TP表示預測正確的陽性樣本數;TN表示預測錯誤的陽性樣本數。
表2 不同模型及其它預測方法準確率對比表
Tab. 2 Comparison of accuracy of different models and other prediction methods

模型/方法準確率/%SVM85.7隨機森林88.3ANN86.4文獻[10]89.7文獻[14]88.4本文92.2
表3 不同模型及其它預測方法評價指標對比表
Tab. 3 Comparison of evaluation indexes of different models and other prediction methods

%
本文提出了一種基于Stacking的糖尿病預測模型,以SVM、人工神經網絡和隨機森林構建的模型為基礎,采用了邏輯回歸分類器對以上三種模型訓練結果構建的新數據集進行了二次訓練,得到的預測模型在驗證集上正確率高于單個分類器,取得了較好的效果,在準確率和召回率上得到了較大提升,在驗證集上的準確率達到了92.2%,而且整個預測模型也表現出較強的泛化能力。