畢迎春 王培培 潘媛媛 甘良進(jìn) 葉明全
摘要:目的:探討分類算法在2型糖尿病風(fēng)險(xiǎn)預(yù)測(cè)中的應(yīng)用價(jià)值。方法:針對(duì)Pima Indians Diabetes數(shù)據(jù)集,經(jīng)過2種情況的數(shù)據(jù)預(yù)處理,選擇邏輯回歸、支持向量機(jī)、多層感知機(jī)、隨機(jī)森林等4種分類算法分別構(gòu)建2型糖尿病風(fēng)險(xiǎn)預(yù)測(cè)模型,分析對(duì)比準(zhǔn)確率和F值等評(píng)價(jià)指標(biāo),以驗(yàn)證其對(duì)具有空值數(shù)據(jù)集的應(yīng)用性能。結(jié)果:經(jīng)過比較,對(duì)原始數(shù)據(jù)進(jìn)行分類預(yù)測(cè)時(shí),多層感知機(jī)的值最高,隨機(jī)森林的值最低,4種分類算法對(duì)刪除屬性后的數(shù)據(jù)集也取得了較好的預(yù)測(cè)效果。結(jié)論:分類算法可以有效預(yù)測(cè)2型糖尿病,并對(duì)具有一定缺失值的數(shù)據(jù)集具有良好的實(shí)用價(jià)值。
關(guān)鍵詞:糖尿病預(yù)測(cè);數(shù)據(jù)預(yù)處理;邏輯回歸;支持向量機(jī);多層感知機(jī);隨機(jī)森林
中圖分類號(hào):TP181 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)28-0008-03
Abstract: Objective:To explore the application value of classification algorithm in the risk prediction of type 2 diabetes mellitus(T2DM). Methods:According to the data set of Pima India diabetes, after two kinds of data preprocessing, four kinds of classification algorithms such as logistic regression, support vector machine, multi-layer perceptron and random forest are selected to construct the risk prediction model of type 2 diabetes respectively, and the evaluation indexes such as accuracy and F-Measure are analyzed and compared to verify its application performance to the data set with null value.Results:After comparison, when the original data is classified and predicted, the value of multi-layer perceptron is highest, and the value of random forest is lowest. Four classification algorithms have also achieved better prediction results for the data set after attribute deletion.Conclusion:The classification algorithm can effectively predict T2DM and has a good practical value for data set with certain missing values.
Key words: diabetes prediction; data preprocessing; logistic regression; support vector machine; multi-layer perceptron; random forest
糖尿病是世界上最致命的慢性病之一,預(yù)計(jì)到2045年,全球?qū)⒂薪?億人患糖尿病[1]。我國糖尿病以2型糖尿病為主,2013年全國調(diào)查中2型糖尿病患病率為10.4%,未診斷糖尿病比例高達(dá)63%[2]。2型糖尿病的早期癥狀輕微,甚至無任何癥狀,很難及早干預(yù),當(dāng)出現(xiàn)臨床癥狀再去就診時(shí),由于拖延了病程,很多患者已經(jīng)病情較重,甚至開始伴隨多種并發(fā)癥,由于無法根治,糖尿病患者將承受巨大的疾病痛苦和沉重的經(jīng)濟(jì)負(fù)擔(dān),2型糖尿病的早期預(yù)測(cè)顯得尤為重要。分類算法已經(jīng)廣泛應(yīng)用于醫(yī)學(xué)領(lǐng)域,應(yīng)用分類算法構(gòu)建2型糖尿病風(fēng)險(xiǎn)預(yù)測(cè)模型,輔助臨床決策,早發(fā)現(xiàn),早診斷,提升患者的防治意識(shí),提高2型糖尿病的防治水平。
研究表明決策樹、支持向量機(jī)、貝葉斯、隨機(jī)森林、深度學(xué)習(xí)等方法在糖尿病風(fēng)險(xiǎn)預(yù)測(cè)中都獲得了較好的預(yù)測(cè)結(jié)果[3-5],但不同的實(shí)驗(yàn)環(huán)境、不同的數(shù)據(jù)集、不同的數(shù)據(jù)預(yù)處理,很難將各種算法進(jìn)行有效對(duì)比,本文在以Python3為核心程序的Anaconda3平臺(tái)上,選用UCI上的Pima Indians Diabetes數(shù)據(jù)集(簡稱PIDD),在不同的數(shù)據(jù)預(yù)處理情況下,分別應(yīng)用邏輯回歸(簡稱LR)、支持向量機(jī)(簡稱SVM)、多層感知機(jī)(簡稱MLP)和隨機(jī)森林(簡稱RF)等4種分類算法,構(gòu)建2型糖尿病預(yù)測(cè)模型,進(jìn)行實(shí)驗(yàn)對(duì)比,為2型糖尿病早期預(yù)測(cè)提供科學(xué)依據(jù)。
1 數(shù)據(jù)與方法
1.1 數(shù)據(jù)來源
本文選用的糖尿病數(shù)據(jù)集為UCI上的PIDD經(jīng)典數(shù)據(jù)集,該數(shù)據(jù)集包含了768例21歲以上女性患者的醫(yī)療信息,共8個(gè)與糖尿病相關(guān)的數(shù)值型特征屬性和1個(gè)標(biāo)簽,其中268例為糖尿病患者,標(biāo)簽值為1,500例為非糖尿病患者,標(biāo)簽值為0,具體見表1。
1.2 研究方法
1.2.1 數(shù)據(jù)預(yù)處理
用空值替換PIDD數(shù)據(jù)集中各屬性的0值,得到數(shù)據(jù)缺失值情況,如圖1所示,共5個(gè)屬性有缺失值,其中Glucose和BMI屬性缺失值較少,分別缺失5個(gè)和11個(gè),BloodPressure屬性缺失35個(gè),SkinThickness屬性缺失227個(gè),Insulin屬性缺失374個(gè)。在數(shù)據(jù)預(yù)處理時(shí)均未做插值處理,因?yàn)橥ㄟ^實(shí)驗(yàn)證實(shí),用均值等插值方法處理空數(shù)據(jù)后,得到的實(shí)驗(yàn)結(jié)果并未得到明顯改進(jìn),所以為保持原始數(shù)據(jù)的完整性和驗(yàn)證各分類算法對(duì)數(shù)據(jù)集的處理能力,不做插值處理。
本文將數(shù)據(jù)預(yù)處理分為兩種情況:1)去掉缺失值最多的SkinThickness和Insulin2個(gè)屬性;2)圖2為PIDD數(shù)據(jù)集中隨機(jī)森林的特征重要度,去掉重要度中最低的3個(gè)屬性,分別為SkinThickness、Insulin和BloodPressure屬性。
1.2.2 總體思路
實(shí)驗(yàn)環(huán)境選擇以Python3為核心程序的Anaconda3(64-bit)平臺(tái),針對(duì)PIDD數(shù)據(jù)集,首先進(jìn)行數(shù)據(jù)預(yù)處理,實(shí)驗(yàn)中分3種情況下的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)對(duì)比,分別為1)原始數(shù)據(jù)集;2)根據(jù)數(shù)據(jù)預(yù)處理中第一種情況,去掉2個(gè)缺失值最多的屬性后得到的數(shù)據(jù)集;3)根據(jù)數(shù)據(jù)預(yù)處理中第二種情況,去掉3個(gè)特征重要度最小的屬性后得到的數(shù)據(jù)集。隨后將這3種數(shù)據(jù)集分別按照8:2比例劃分為測(cè)試集和驗(yàn)證集,其中訓(xùn)練集中標(biāo)簽為1和0的數(shù)量分別為214和400,測(cè)試集中標(biāo)簽為1和0的數(shù)量分別為54和100。為保證數(shù)據(jù)特征在同一尺度范圍內(nèi)變化,分別對(duì)訓(xùn)練集和測(cè)試集數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,選用StandardScaler類的fit_transform方法,把數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)正態(tài)分布,數(shù)據(jù)度量標(biāo)準(zhǔn)化后,分別應(yīng)用LR、SVM、MLP和RF共4種分類算法進(jìn)行模型訓(xùn)練,調(diào)整模型參數(shù),構(gòu)建2型糖尿病預(yù)測(cè)模型,最后利用測(cè)試集進(jìn)行模型性能評(píng)估,具體如圖3。
1.2.3 參數(shù)設(shè)置
在8:2的數(shù)據(jù)集比例下,應(yīng)用sklearn中的train_test_split函數(shù),將PIDD數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集和測(cè)試集,為了在擬合過程中獲得一個(gè)確定的行為,保證重復(fù)實(shí)驗(yàn)時(shí)能夠在同樣的訓(xùn)練集和測(cè)試集下計(jì)算得到相同的實(shí)驗(yàn)結(jié)果,便于數(shù)據(jù)分析,設(shè)置固定的random_state參數(shù)值,其中train_test_split函數(shù)中的random_state參數(shù)設(shè)置為66,各算法中random_state參數(shù)均設(shè)置為1。
LR算法中將solver設(shè)置為'liblinear',即選擇Liblinear優(yōu)化算法,應(yīng)用坐標(biāo)軸下降法來迭代優(yōu)化損失函數(shù),penalty設(shè)置為'l2',使用L2正則化;SVM算法中kernel設(shè)置為'rbf',即選擇徑向基(RBF)內(nèi)核訓(xùn)練SVM,懲罰系數(shù)C設(shè)置為1;MLP算法中設(shè)置solver設(shè)置為'adam','adam'參數(shù)為應(yīng)用基于隨機(jī)梯度的優(yōu)化器[6], hidden_layer_sizes設(shè)置為[120,],表示只有一層隱藏層,該隱藏層包含120個(gè)神經(jīng)元,隱藏層的激活函數(shù)activation設(shè)置為線性整流函數(shù)'relu',即f(x) = max(0, x)[7]。RF算法中n_estimators設(shè)置為100,利用該參數(shù)限定森林里樹的數(shù)目,criterion設(shè)置為'gini',即基尼不純度(Gini impurity),樹的最大深度max_depth根據(jù)實(shí)驗(yàn)驗(yàn)證,在無刪除屬性時(shí)設(shè)置為3,有刪除屬性時(shí)設(shè)置為4。其余各算法的參數(shù)均選用系統(tǒng)默認(rèn)值。
2 結(jié)果
2.1 模型評(píng)價(jià)標(biāo)準(zhǔn)
選擇準(zhǔn)確率(Accuracy)、查準(zhǔn)率(Precision)、召回率(Recall)和F值(F-Measure)作為評(píng)價(jià)標(biāo)準(zhǔn),其中TP(True Positive)、TN(False Negative)、FP(False Positive)和FN(False Negative)的總和為測(cè)試樣本總數(shù),F(xiàn)值為查準(zhǔn)率和召回率的調(diào)和平均值[8]。公式如下:
Accuracy=(TP+TN)/(TP+FP+TN+FN) ? ? ? ? ? ? ? ?(1)
Precision=TP/(TP+FP) ? ? ? ? ? ? ? ? ? ? ? ?(2)
Recall=TP/(TP+FN) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
F-Measure=2*(Precision*Recall)/(Precision+Recall) ? ? (4)
2.2 模型比較
為能夠同時(shí)觀察各分類算法預(yù)測(cè)糖尿病和非糖尿病的能力,表2~表4分別為各分類算法在原始數(shù)據(jù)集和經(jīng)過2種數(shù)據(jù)預(yù)處理后得到的數(shù)據(jù)集下的準(zhǔn)確率、精確率、召回率和F值,其中0-Precision,0-Recall,0-F-Measure,1-Precision,1-Recall,1-F-Measure分別為預(yù)測(cè)標(biāo)簽0和1所對(duì)應(yīng)的Precision、Recall和F-Measure值。因標(biāo)簽為1的樣本數(shù)量少,所以大部分情況下,預(yù)測(cè)標(biāo)簽0的查準(zhǔn)率和召回率均高于預(yù)測(cè)標(biāo)簽1的值。由于F-Measure均衡了Precision和Recall,所以主要觀察Accuracy和F-Measure的值,值越高預(yù)測(cè)效果越好。
表2~表4中,算法之間進(jìn)行對(duì)比分析,MLP算法的Accuracy、0-F-Measure和1-F-Measure均比其他三個(gè)分類算法高,RF算法對(duì)應(yīng)的值均最低;表2中無刪除屬性時(shí)MLP算法的效果最好。同一算法在不同情況下比較時(shí),LR算法在無刪除屬性時(shí)計(jì)算得到的值最高,而刪除2個(gè)屬性和刪除3個(gè)屬性時(shí),取得了相同的結(jié)果;SVM算法在三種情況下均得到了相同的Accuracy,但0-F-Measure和1-F-Measure均不同,在刪除2個(gè)屬性時(shí)SVM算法預(yù)測(cè)后得到的1-F-Measure高于其他兩種情況下獲得的值;MLP算法在無刪除屬性時(shí)值最高,在刪除3個(gè)屬性時(shí)值最低;RF算法在刪除3個(gè)屬性時(shí)Accuracy最低,其他兩種情況下取得了相同的值,無刪除屬性時(shí)0-F-Measure最高,刪除2個(gè)屬性時(shí)1-F-Measure最高。
3 討論
在對(duì)比評(píng)價(jià)標(biāo)準(zhǔn)的同時(shí),圖4畫出三種情況下各分類算法的ROC(Receiver Operating Curve)曲線,并計(jì)算出ROC曲線下面積AUC(Area Under Curve),對(duì)比AUC的值,a表中SVM最高,b表中MLP最高,c表中SVM最高,三個(gè)表中LR的AUC值均是最低的,其中最高的是c表中的SVM,最低的是c表中的LR。
表3、表4與表2相比算法結(jié)果均有所下降,但下降幅度較小,刪除2個(gè)或3個(gè)屬性,既節(jié)省了空間復(fù)雜度也提高了運(yùn)算時(shí)間,可見這四種分類算法對(duì)于有空值的數(shù)據(jù)集處理能力均較強(qiáng),尤其是SVM和MLP算法,對(duì)預(yù)測(cè)5年內(nèi)是否患有糖尿病均能起到很好的效果,建議同時(shí)應(yīng)用兩個(gè)以上算法進(jìn)行預(yù)測(cè),以期得到更準(zhǔn)確的結(jié)果。PIDD數(shù)據(jù)集數(shù)據(jù)量不大,應(yīng)用分類算法可直接作用在原始數(shù)據(jù)上,當(dāng)遇到大樣本數(shù)據(jù)時(shí),根據(jù)空值情況,或根據(jù)特征重要度有效去除部分屬性,減少特征數(shù)量,能夠有效提高計(jì)算速度,節(jié)約計(jì)算成本和時(shí)間,今后會(huì)從醫(yī)院體檢信息中整理更多實(shí)際數(shù)據(jù),驗(yàn)證這些分類算法的特性,為能夠更精準(zhǔn)的糖尿病預(yù)測(cè),探討更多分類方法。
本文應(yīng)用四個(gè)經(jīng)典的分類算法,對(duì)有缺失值的PIDD數(shù)據(jù)集,在經(jīng)過刪除缺失值最多的2個(gè)屬性和基于隨機(jī)森林特征重要度刪除特征重要度最小的3個(gè)屬性后,分別構(gòu)建風(fēng)險(xiǎn)預(yù)測(cè)模型,均得到了75%以上的準(zhǔn)確率,其中MLP的預(yù)測(cè)效果最好,實(shí)驗(yàn)證明分類算法能夠?qū)τ腥笔е档臄?shù)據(jù)集進(jìn)行有效的預(yù)測(cè)2型糖尿病。根據(jù)體檢信息對(duì)預(yù)測(cè)未來5年內(nèi)會(huì)患有2型糖尿病的高風(fēng)險(xiǎn)人群,進(jìn)一步臨床診斷,提早預(yù)防,及時(shí)干預(yù),加強(qiáng)防范意識(shí),能夠有效降低或減緩2型糖尿病的發(fā)生風(fēng)險(xiǎn),減輕個(gè)人的疾病損傷和經(jīng)濟(jì)負(fù)擔(dān),節(jié)約國家的醫(yī)療資源和經(jīng)濟(jì)開支。
參考文獻(xiàn):
[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, 271–281.
[2] 中華醫(yī)學(xué)會(huì)糖尿病學(xué)分會(huì).中國2型糖尿病防治指南(2017年版)[J].中國實(shí)用內(nèi)科雜志, 2018,38(4):292-344.
[3] Sisodia,D.,Sisodia,D.S.. Prediction of Diabetes using Classification Algorithms[J]. Procedia Computer Science, 2018, 132, 1578–1585.
[4] 白江梁, 張超彥, 李偉, 等. 某醫(yī)院體檢人群糖尿病預(yù)測(cè)模型研究[J].實(shí)用預(yù)防醫(yī)學(xué), 2018, 25(1):116-119.
[5] 賀其, 趙崗, 菊云霞,等. 機(jī)器學(xué)習(xí)算法在糖尿病預(yù)測(cè)中的應(yīng)用[J]. 貴州大學(xué)學(xué)報(bào):自然科學(xué)版, 2019, 36(2):65-68.
[6] Kingma, Diederik, and Jimmy Ba.Adam: A Method for Stochastic Optimization[J].Computer Science, 2014.
[7] Hahnloser R H R , Sarpeshkar R , Mahowald M A , et al. Digital selection and analogue amplification coexist in a cortex-inspired silicon circuit[J]. Nature, 2000, 405(6789):947-951.
[8]林鑫, 李晉, 劉蕾, 等. 二型糖尿病腎病風(fēng)險(xiǎn)預(yù)測(cè)模型的比較[J]. 中華醫(yī)學(xué)圖書情報(bào)雜志, 2019(4):44-48.
【通聯(lián)編輯:王力】