宋玉平 楊默藝 杜文杰
摘要:在大數(shù)據(jù)的時代背景下,人工智能技術(shù)不斷發(fā)展和普及,機器學習技術(shù)越來越多地被運用到醫(yī)療領(lǐng)域中。該文基于TensorFlow框架構(gòu)建深度神經(jīng)網(wǎng)絡(luò)算法診斷糖尿病,并與KNN模型、邏輯回歸模型、高斯貝葉斯模型、SVM模型、隨機森林模型、AdaBoost模型和XGBoost模型七種傳統(tǒng)機器學習模型從模型準確率、精確率、召回率、AUC值和F1-Score五項指標進行對比分析,發(fā)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)算法所構(gòu)建的預(yù)測模型準確率最高,更適合于糖尿病預(yù)測問題的分析研究。
關(guān)鍵詞:糖尿病預(yù)測模型;數(shù)據(jù)預(yù)處理;機器學習;深度神經(jīng)網(wǎng)絡(luò)(DNN);模型評估
中圖分類號: TP181? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)32-0018-03
Abstract: In the context of the era of big data, artificial intelligence technology continues to develop and spread, and machine learning technology is increasingly being used in the medical field. This paper builds a deep neural network algorithm for diagnosing diabetes based on the TensorFlow framework, and works with KNN models, logistic regression models, Gaussian Bayesian models, SVM models, random forest models, AdaBoost models, and XGBoost models. Comparative analysis of five indicators: accuracy rate, recall rate, AUC value and F1-Score, found that the prediction model constructed by the deep neural network algorithm has the highest accuracy rate, which is more suitable for the analysis and research of diabetes prediction problems.
Key words:diabetes prediction model; data preprocessing; machine learning; deep neural network (DNN); model evaluation
近年來,糖尿病患病人數(shù)在全球范圍內(nèi)仍不斷增加,且目前尚未出現(xiàn)有效的方法來治愈糖尿病,因此及時準確地發(fā)現(xiàn)糖尿病成為控制病情的重中之重。隨著大數(shù)據(jù)時代的到來,機器學習和深度學習技術(shù)越來越多地被運用到醫(yī)療診斷領(lǐng)域中[1],為醫(yī)學診斷提供科學輔助。在糖尿病的預(yù)測分類問題上,國內(nèi)外很多學者早已利用機器學習算法來研究分類預(yù)測模型。Patil在對皮馬印第安糖尿病數(shù)據(jù)集的研究中提出一種混合預(yù)測模型(HPM)[2],該模型運用Simple K-means 聚類算法,同時將C4.5算法通過k折驗證方法構(gòu)建最終分類器模型,以提高分類準確度。Vijayan V. 基于UCI(UCI,University of California Irvine)數(shù)據(jù)集分析了基于支持向量機,樸素貝葉斯和決策樹三種算法不同預(yù)處理技術(shù)的益處[3]。賀其等采用神經(jīng)網(wǎng)絡(luò)、決策樹、貝葉斯、支持向量機五種機器學習算法進行糖尿病預(yù)測[4],得出決策樹預(yù)測結(jié)果最佳的結(jié)論。吳興惠等基于決策樹、隨機森林、支持向量機和K近鄰算法建立糖尿病預(yù)測模型[5],通過比較四種模型對糖尿病診斷的價值得出隨機森林算法效果最優(yōu)。
深度學習技術(shù)相比于基礎(chǔ)的機器學習算法,更能提高預(yù)測模型的準確性,做出及時準確的醫(yī)療診斷。在糖尿病分類預(yù)測應(yīng)用研究上,現(xiàn)有文獻多數(shù)集中于傳統(tǒng)的機器學習模型,較少使用深度學習模型。綜上所述,本文將通過基于TensorFLow框架建立深度神經(jīng)網(wǎng)絡(luò)預(yù)測模型為糖尿病預(yù)測分類,并與傳統(tǒng)的機器學習算法進行比較,為深度學習在醫(yī)學中應(yīng)用提供思路。
1 深度神經(jīng)網(wǎng)絡(luò)算法
神經(jīng)網(wǎng)絡(luò)技術(shù)起源于感知機模型(Rosenblatt,1957),感知機模型有輸入層、輸出層和一個隱藏層[6]。輸入的特征向量通過隱藏層變換到達輸出層,在輸出層輸出分類結(jié)果。而神經(jīng)網(wǎng)絡(luò)則在感知機模型基礎(chǔ)上做了提升與拓展,主要有以下三點:
1) 加入多層隱藏層,在增強模型表達能力的同時也增加了模型復(fù)雜度;
2) 增加輸出層神經(jīng)元,即可有多個輸出,使得模型更加靈活;
3) 增加激活函數(shù)的選擇,感知機的激活函數(shù)為[sign(z)],其處理能力有限。在神經(jīng)網(wǎng)絡(luò)中有多種不同的激活函數(shù),如Sigmoid、ReLU、softmax、tanh等,增強模型表達能力。
深度神經(jīng)網(wǎng)絡(luò)可以理解為有多層隱藏層的神經(jīng)網(wǎng)絡(luò)模型,且層與層之間是全聯(lián)接,以圖1所示的兩層隱藏層的深度神經(jīng)網(wǎng)絡(luò)為例。
對于第一層隱藏層的神經(jīng)元計算,有如下公式:
2 實驗部分
2.1 數(shù)據(jù)說明與處理
本文采用UCI上的公開數(shù)據(jù)集:皮馬印第安糖尿病數(shù)據(jù)集(PIMA Indians Diabetes Dataset,簡稱PIDD)。PIDD中共有768條數(shù)據(jù)項,每個數(shù)據(jù)項中包含8個特征屬性和1個分類標簽,其具體特征屬性含義如下所示:
1) Pregnancies:懷孕次數(shù);
2) Glucose:血糖值,即兩小時內(nèi)服葡萄糖耐量測試的血糖濃度值;
3) Blood Pressure:舒張壓;
4) Skin Thickness:皮脂厚度,即肱三頭肌皮下脂肪的厚度;
5) Insulin:兩小時血清胰島素;
6) BMI(Body mass index):體重指數(shù);
7) Diabetes Pedigree Function:糖尿病譜系功能,表示具有糖尿病的遺傳系數(shù);
8) Age:年齡。
Outcome表示每個數(shù)據(jù)項的類別標簽,其值為0和1,其中1表示患有糖尿病,1表示未患有糖尿病。實驗部分首先通過觀察數(shù)據(jù)并結(jié)合生活實際對糖尿病數(shù)據(jù)集進行預(yù)處理[7],利用箱形圖[8]判斷異常值,在去除異常值后用平均值替代缺失值完成對數(shù)據(jù)集的預(yù)處理步驟。通過對PIDD數(shù)據(jù)集進行簡單預(yù)處理工作,最終得到的新數(shù)據(jù)集中共包含765個數(shù)據(jù)點,其中標簽值為0的樣例為265個,標簽值為1的樣例為500個。
數(shù)據(jù)預(yù)處理之后進行深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練,經(jīng)過參數(shù)調(diào)優(yōu)后,本文深度神經(jīng)網(wǎng)絡(luò)模型的參數(shù)設(shè)定為:輸入層神經(jīng)元10個,輸出層神經(jīng)元1個,隱藏層共3層,其神經(jīng)元個數(shù)分別為128,64,32,訓(xùn)練次數(shù)為3500次。
2.2 實驗平臺
本文深度學習預(yù)測模型搭建運用Tensorflow框架完成。Tensorflow是谷歌2015年開源的通用高性能計算庫,主要用于機器學習和構(gòu)建神經(jīng)網(wǎng)絡(luò)方面的研究。目前,隨著機器學習的興起,Tensorflow已發(fā)展成為一個完整的機器學習生態(tài)系統(tǒng)。
2.3 實驗結(jié)果與分析
對于七種傳統(tǒng)機器學習模型和深度神經(jīng)網(wǎng)絡(luò)模型進行比較分析,評估標準采用五項指標:準確率(Accuracy)、精確率(Precision)、召回率(Recall)、AUC值和F1-Score。其中準確率表示糖尿病數(shù)據(jù)測試集中預(yù)測正確的樣本數(shù)占所有樣本數(shù)的比例大小;精確率表示模型預(yù)測為正例的樣本中,實際確實患有糖尿病的比例;召回率表示測試集實際為正例的樣本中,模型預(yù)測為患有糖尿病的比例; AUC值即為ROC曲線下方圍成區(qū)域的面積大小,能夠穩(wěn)定的反應(yīng)模型本身的好壞;F1-Score可理解為精確率和召回率的調(diào)和平均數(shù)。在現(xiàn)實醫(yī)學診斷中,我們總是希望盡可能準確地找出實際患有糖尿病的患者,因此查準率和查全率均為越高越好。
由表1和表2可以看出,深度神經(jīng)網(wǎng)絡(luò)模型在準確率、精確率、召回率、AUC值和F1-Score五項指標上均為最高,反映出深度學習模型在預(yù)測模型中具有較好的效果。
除了模型性能評估比較以外,利用Python樹模型中feature_importances_屬性判斷出PIDD數(shù)據(jù)集中屬性重要程度比對,如圖2所示。由圖2可以看出,重要程度從高到低依次為:Glucose(血糖值)、BMI(體重指數(shù))、Age(年齡)、Diabetes Pedigree Function(糖尿病譜系功能)、Insulin(血清胰島素)、Pregnancies(懷孕次數(shù))、Blood Pressure(舒張壓)和Skin Thickness(皮脂厚度)。因此,血糖值在一定程度上對糖尿病預(yù)測問題有較大的影響力,為日后的糖尿病醫(yī)學診斷提供一定的參考和預(yù)警。
3 結(jié)論
本文通過運用深度神經(jīng)網(wǎng)絡(luò)(DNN)模型以實現(xiàn)預(yù)測糖尿病問題,并與七種傳統(tǒng)機器學習算法(KNN模型、邏輯回歸模型、高斯貝葉斯模型、SVM模型、隨機森林模型、AdaBoost模型和XGBoost模型)所構(gòu)建的糖尿病預(yù)測模型進行對比分析。通過利用準確率、精確率和召回率三種指標對八種模型性能比較可以發(fā)現(xiàn)深度學習模型較于傳統(tǒng)機器學習模型具有一定的優(yōu)勢。隨著數(shù)據(jù)量的增大,深度學習以其強大的學習能力,擬合更為復(fù)雜的預(yù)測模型,達到更高的預(yù)測準確率。
參考文獻:
[1] 陳嘉博.機器學習算法研究及前景展望[J].信息通信,2017,30(6):5-6.
[2] Patil B M,Joshi R C,Toshniwal D.Hybrid prediction model for Type-2 diabetic patients[J].Expert Systems with Applications,2010,37(12):8102-8108.
[3] Vijayan V V,Anjali C.Decision support systems for predicting diabetes mellitus—A Review[C]//2015 Global Conference on Communication Technologies (GCCT).April 23-24,2015,Thuckalay,India.IEEE,2015:98-103.
[4] 賀其,趙崗,菊云霞,等.機器學習算法在糖尿病預(yù)測中的應(yīng)用[J].貴州大學學報(自然科學版),2019,36(2):65-68.
[5] 吳興惠,周玉萍,邢海花,等.機器學習分類算法在糖尿病診斷中的應(yīng)用研究[J].電腦知識與技術(shù),2018,14(35):177-178,195.
[6]. Yin S , Chen D , Le J . [IEEE 2017 Fifth International Conference on Advanced Cloud and Big Data (CBD) - Shanghai, China (2017.8.13-2017.8.16)] 2017 Fifth International Conference on Advanced Cloud and Big Data (CBD) - Deep Neural Network Based on Translation Model for Diabetes Knowledge Graph[C]// International Conference on Advanced Cloud & Big Data. IEEE Computer Society, 2017:318-323.
[7] 胡紅曉,謝佳,韓冰.缺失值處理方法比較研究[J].商場現(xiàn)代化,2007(15):352-353.
[8] Schwertman N C,Owens M A,Adnan R.A simple more general boxplot method for identifying outliers[J].Computational Statistics & Data Analysis,2004,47(1):165-174.
【通聯(lián)編輯:唐一東】