楊 光, 馬爾麗
(沈陽師范大學 數學與系統科學學院, 沈陽 110034)
2型糖尿病是一種代謝性非傳染疾病,多數病人在35~40歲之間發病,占糖尿病患者全體的90%左右。2型糖尿病病人產生胰島素的能力并沒有完全失去,一部分患者胰島素產生甚至過多,但胰島素的用途卻有名無實,因此,糖尿病患者缺乏胰島素是一種相對的缺乏,可以利用一些特定的口服試劑來激發患者胰島素的分泌,即使仍有些患者需要按照傳統的方式注射胰島素進行醫治。由于糖尿病的遺傳易感性的特質,容易在某些特定因素下觸動而發病。隨著互聯網的迅猛成長和人們活動方式的改變及人口老齡化等問題,在世界范圍內2型糖尿病的發病率逐年提高,特別是發展中國家增加速度更快(可能到2025年會翻倍),具有流行勢態。在全球范圍內糖尿病已然變成了在心血管病和腫瘤之后,對人們健康和生命造成危害的重大非傳染性疾病。因此,預防2型糖尿病,對于控制糖尿病人數具有重要意義。本文利用數據挖掘ID3算法和分類決策樹(CART)的算法構建簡單的決策樹模型,以此挖掘糖尿病的患病因素,為人們預防和醫院的診斷預測工作提供理論依據。
資料數據來源于河北省秦皇島市某醫院糖尿病患者病例以及健康人群的體檢數據,共1 922例,包含關于2型糖尿病的17項指標:性別、年齡、煙齡、身高與體重的綜合指數、收縮壓、舒張壓、甘油三酯、總膽固醇、低密度脂蛋白、糖尿病家族史、高血壓家族史、心腦血管病史、冠心病史、空腹血糖、家族史、既往史、高血壓史(SEX,AGE,BMI,SBP,DBP,TG,CHOL,LDL,GLU,FMH,PH,SL,HH,CHDH,CCDH,FHH)[1]。
1.2.1分類回歸樹 (Classification and Regression Trees,CART)
CART決策樹算法是在1984年由Breiman提出的,他指出如果當前目標變量是分類變量時,則是分類樹,如果目標變量是定量變量時,則為回歸樹。它以迭代的方式,從樹根開始反復建立二叉樹[2]。考慮一個具有兩類的因變量的兩個特征變量的數據。CART算法每次選擇一個特征變量將區域分成為兩個半平面。經過持續不斷地劃分之后,特征區間被分成了矩形區域。CART決策樹使用基尼指數來劃分屬性。
1.2.2ID3算法
20世紀70年代機器學習研究者Quinlan在1979年提出構造決策樹ID3算法,提出用信息論中的信息增益(information gain)作為決策樹屬性拆分節點的選擇,從而產生分類結構的程序[3]。
1.2.3統計學方法
決策樹模型的CART、ID3算法均由R3.4.4實現。

圖1 2型糖尿病的ID3算法模型Fig.1 ID3 algorithm model for type 2 diabetes
通過無放回抽樣方法在樣本中抽取1/4共同構成497例的測試樣本, 抽取3/4構成1425例的訓練樣本。分別用2種算法建立模型,用于建立模型的變量有Sex,Age,BMI,SBP,DBP,TG,CHOL,LDL,GLU,FMH,PH,SL,HH,CHDH,CCDH,FHH共17個變量。決策樹的根節點樣本總數為1 425,即訓練樣本總體。
2.1.1ID3決策樹模型
ID3模型如圖1所示。
在ID3決策樹中,左支表示糖尿病患者,其余表示非糖尿病患者。從圖1可以看出,如果GLU(空腹血糖)指標<6.09,可以診斷為沒有患該病;如果GLU>6.09,并且FMH=false(無糖尿病家族史),可診斷為沒有患病;如果有糖尿病家族史,需要觀測CCDH(心腦血管家族史),若CCDH=FALSE(沒有心腦血管家族史),則沒有患病,否則即為患病。
2.1.2CART模型
CART模型如圖2所示。

圖2 2型糖尿病的CART算法模型Fig.2 CART algorithm model for type 2 diabetes
在CART決策樹中,左支表示糖尿病患者,其余表示非糖尿病患者。從圖2可以看出,如果GLU(空腹血糖)指標<6.1,可以診斷為沒有患該病;如果GLU>6.1,并且FMH=false(無糖尿病家族史),可診斷為沒有患病;如果有糖尿病家族史,需要觀測CCDH(心腦血管家族史),若CCDH=FALSE(沒有心腦血管家族史),則沒有患病,否則即為患病。
2.2.1方法比較
決策樹算法的核心是拆分屬性的判斷,本文中的2種算法的拆分原則是不同的。
信息熵(information entropy)是度量樣本純度最常用的一種指標。假定當前樣本集合D中第k類樣本所占的比例為pk(k=1,2,…,|y|),則D的信息熵為
(1)
Ent(D)的值越小,則D的純度越高[14]。
假定離散屬性a有V個可能的取值,若使用a對樣本集D進行劃分,則會產生V個分支節點,其中第v個分支節點包含了D中所有在屬性a上取值為av的樣本,記為Dv。可以根據上式計算出Dv的信息熵,再考慮不同的分支節點所包含的樣本數不同,給分支節點賦予權重|Dv|/|D|,即樣本數越多的分支節點的影響越大[11-14]。于是可計算出用屬性a對樣本集D進行劃分所取得的信息增益(information gain):
(2)
一般而言,信息增益越大,意味著使用屬性a來進行劃分所取得的純度提升越大。本文中的ID3算法就是利用信息增益為準則來選擇劃分屬性的[11-14]。
下面給出CART算法的拆分原理,設拆分變量為j,拆分點為s,定義一對半平面:
Ri(j,s)={X|Xj≤s},R2(j,s)={X|Xj>s}
(3)
分類問題計算出分類變量j和分裂點s,其中k是提前給出的類別數[13]。
(4)
搜尋式(5),求出分裂變量j和分裂點s:
(5)

(6)
找到最佳拆分后,將數據劃分為2個結果區域,對每個區域重復拆分過程[13]。最后將空間劃分為M個區域R1,R2,…,RM區域Rm對應為勢最大的類cm,得到CART預測模型為
(7)
CART使用的是GINI信息度量方法選擇變量[13]。
2.2.2結果比較
利用模型對測試樣本中的診斷結果進行預測,以評價該模型。預測結果如表1所示。

表1 ID3算法和CART算法的預測結果Tab. 1 Prediction results of the ID3 algorithm and the CART algorithm
從結果表格來看CART模型優于ID3模型。
糖尿病作為世界第3大威脅人類生命的非傳染性疾病,探究糖尿病的發病原因是全世界從事糖尿病醫學工作者的重要課題和任務。本文利用決策樹算法建立的模型簡單明了,解讀性強,有一定的臨床參考價值[8]。從模型中可以看出空腹血糖、糖尿病家族史、心腦血管既往病史等因素對2型糖尿病發病的重要性,并且通過本文的研究,可以通過空腹血糖、糖尿病家族史、心腦血管既往病史這3個指標來預測糖尿病,避免了很多繁瑣的醫院檢查程序,節約了醫療資源,并且為一些偏遠地區的診斷預測提供了指導性建議[9]。
此外,對模型的評價說明利用CART模型挖掘臨床檢驗資料有一定價值,且直觀易理解。但由于數據和地域的影響,后續工作仍需要大量的數據和調查資料,合理客觀評價模型[1]。