石勝源,朱 磊,葉 琳,羅鐵清
(湖南中醫藥大學 信息科學與工程學院,長沙410208)
隨著中國經濟的發展和人民生活水平的提高,人們的飲食結構和生活方式發生了很大的改變,這也給健康帶來了很多問題,而健康問題是促進人的全面發展的必然要求,是經濟社會發展的基礎條件[1]。慢性病是嚴重威脅中國居民健康的一類疾病,已成為影響國家經濟社會發展的重大公共衛生問題[2]。
慢性病是指不構成傳染、具有長期積累形成疾病形態損害的疾病的總稱。有報告顯示,70%國人有過勞死危險,76%的白領處于亞健康狀態,20%國人患慢性病[3]。其中,中國心腦血管病現患人數2.9億,心血管疾病仍占城鄉居民總死亡原因首位[4]。具體情況見圖1所示。

圖1 中國心腦血管病現患人數Fig.1 Number of cardiovascular disease patients in China
在心血管病領域,疾病的診斷或是病情的轉歸原本就十分復雜,更需要依托現代計算機技術來對疾病進行準確評估和預測[5]。
Ambale-Venkatesh等對比研究了隨機生存森林法和傳統危險因素對多種族動脈粥樣硬化的6種心血管事件的預測差異[6];Li等利用SVM來構建預測心血管疾病的模型,研究對象為甲狀腺功能正常且非糖尿病的538位患者,并挖掘疾病影響變量[7];鄭曉燕基于機器學習的算法,建立了心血管疾病預測模型并開發了相對應的預測Web系統[8];李孝虔利用卷積神經網絡構建了心臟病預測模型[9];王振飛等提出了一種自適應模塊化神經網絡結構模型,采取聚類的方法預測心血管疾病[10]。
基于心血管疾病數據維數高和數據之間關系復雜的特點,且已有研究利用隨機森林在其它疾病的預測上取得了良好的效果,本文提出采取隨機森林來預測心血管疾病,從而防止模型過擬合,并進一步提高預測的穩定性和準確率。
選取知名機器學習競賽網站Kaggle上關于心血管疾病的數據集,數據信息包括:年齡、身高、體重、性別、收縮壓、舒張壓、膽固醇、葡萄糖、是否吸煙、是否飲酒、是否經常運動等信息,共計70 000例。
參考中國成人健康體檢基本數據集標準(HRC00.04),對以上數據集進行清洗,剔除重復項及數據異常者,如身高和體重異常,舒張壓高于收縮壓,血壓為負值數據等。此次構建CVD疾病預測模型,最終納入分析的樣本總量為60 142。對數據進行數據歸一化(Scaler)處理,具體方法為式(1):

其中,x代表數據集當前數據的值;x min代表數據集的最小值;x man代表數據集的最大值。
隨機森林是一種機器學習方法,本質上是許多決策樹的集合,可以對數據進行綜合分類,關聯性檢驗、預測和解釋[11]。研究的結局變量為研究對象是否發生CVD,是研究的根本目的,解釋變量為一系列對CVD發生率有影響的危險因素,如血壓,膽固醇的檢測值,用于支持結局變量的準確性。建立隨機森林模型的步驟如下:
(1)通過簡單交叉驗證方法對樣本隨機劃分為訓練子集和測試子集,其中訓練集樣本為70%,測試集為30%;
(2)通過sklearn庫方法對特征進行重要性評估,并根據評分對特征降序排序,運行SWSFS過程篩選最優變量數;
(3)利用網格搜索的方式對隨機森林在局部范圍內找出最優參數;
(4)建立決策樹,不對樹進行修剪,根據所有決策樹的投票結果決定數據的分類。
隨機森林在擬合訓練的同時也完成了特征的重要性評估,其目的是對解釋變量在結局發展中的重要性進行評價,評估基于基尼指數式(2):

其中,k代表k個類別,P K代表類別k的樣本權重。
在隨機森林模型的建立過程中,結局變量的分類主要是依據解釋變量的分類程度,變量的重要性評分越高,則表明該變量對模型準確率貢獻越多。
共計納入60 142例研究對象,年齡為30~65(53.33)歲,其中女性為39 254例(其中12 553±1例為患者),男性為20 888例(其中3578±1例為患者),隨機選取30%為測試組,70%為訓練組,兩組一般資料差異無統計學意義(p>0.05),具有可比性。
根據重要性評分,對特征進行降序排序見表1,并運行(SWSFS)過程,即從重要性得分最大的變量開始,逐個引入變量,每加入一個變量即運行一次隨機森林并繪制準確率圖,如圖2所示。結果顯示,在變量數為8時具有最優的分類準確性,所以將重要性評分排在前8位的特征納入隨機森林模型進行分析,所選變量為收縮壓、膽固醇、性別、葡萄糖、舒張壓、年齡、體重、吸煙情況。

表1 變量重要性得分Tab.1 Importance of variables score

圖2 SWSFS過程分類準確圖Fig.2 SWSFS process classification accuracy chart
運行網格搜索,分類器個數從10~100,以10為步長,最大深度從10~100,以5為步長。結果顯示當分類器個數為60,決策樹最大深度為10時,模型準確率最高,即為局部最優參數。
為了衡量該模型的性能,將其與邏輯回歸(Logistic Regression)、K近鄰分類器(k-nearest neighbor classifier)、支持向量機(SVC)進行了比較。
實驗使用混淆矩陣進行預測結果的分類,共分為T P、TN、F P、F N4類,見表2。

表2 混淆矩陣Tab.2 Confusion Matrix
實驗結果由準確性、精度、召回率、F1-s co r e這幾個指標來表示。具體公式如式(3)~(6):
準確性:

精度:

召回率:

F1-s cor e:

本文實驗的預測結果見表3,可以看出隨機森林模型在4個指標上都優于其它3種方法。

表3 不同預測方法的性能指標Tab.3 Performance index of different prediction methods
為了更清晰地比較各預測方法的性能,將表3中的各數據表示成圖3形式。

圖3 不同預測方法的性能指標Fig.3 Performance index of different prediction methods
顯然,在心血管數據集上進行的實驗表明本文提出方法有更好的性能。分析原因如下:
(1)隨機森林采用了集成算法,本身精度比大多數單個算法要好;
(2)兩個隨機性的引入,使得隨機森林具有一定的抗過擬合能力和抗噪聲能力,對比其他算法具有一定的優勢。
本文提出將隨機森林算法應用在心血管疾病預測上,并與其他主流機器學習分類算法作了比較,證明隨機森林相對于其他算法更適用于該心血管疾病數據集,且預測準確率為73.5(±1),對于識別心血管病人,并對其進行及時、有效的醫療有一定的現實意義。
但本研究還存在一定的局限性,打算在后續的工作中進一步改善以下問題:首先,對于數據的清洗過于籠統,未能咨詢相關醫學背景的學者達到更深層次的清洗;其次,對特征的選擇上,只能簡單地利用現有的特征進行重要性評估,可能更為重要的特征未被納入數據集;最后,本研究采用數據來源為北美地區,所得結果具有局限性,需要進一步擴大樣本來源驗證結果的適用性。