基于深度神经网络的糖尿病预测分析与研究
2020-12-29宋玉平杨默艺杜文杰
宋玉平 杨默艺 杜文杰
摘要:在大数据的时代背景下,人工智能技术不断发展和普及,机器学习技术越来越多地被运用到医疗领域中。该文基于TensorFlow框架构建深度神经网络算法诊断糖尿病,并与KNN模型、逻辑回归模型、高斯贝叶斯模型、SVM模型、随机森林模型、AdaBoost模型和XGBoost模型七种传统机器学习模型从模型准确率、精确率、召回率、AUC值和F1-Score五项指标进行对比分析,发现深度神经网络算法所构建的预测模型准确率最高,更适合于糖尿病预测问题的分析研究。
关键词:糖尿病预测模型;数据预处理;机器学习;深度神经网络(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
近年來,糖尿病患病人数在全球范围内仍不断增加,且目前尚未出现有效的方法来治愈糖尿病,因此及时准确地发现糖尿病成为控制病情的重中之重。随着大数据时代的到来,机器学习和深度学习技术越来越多地被运用到医疗诊断领域中[1],为医学诊断提供科学辅助。在糖尿病的预测分类问题上,国内外很多学者早已利用机器学习算法来研究分类预测模型。Patil在对皮马印第安糖尿病数据集的研究中提出一种混合预测模型(HPM)[2],该模型运用Simple K-means 聚类算法,同时将C4.5算法通过k折验证方法构建最终分类器模型,以提高分类准确度。Vijayan V. 基于UCI(UCI,University of California Irvine)数据集分析了基于支持向量机,朴素贝叶斯和决策树三种算法不同预处理技术的益处[3]。贺其等采用神经网络、决策树、贝叶斯、支持向量机五种机器学习算法进行糖尿病预测[4],得出决策树预测结果最佳的结论。吴兴惠等基于决策树、随机森林、支持向量机和K近邻算法建立糖尿病预测模型[5],通过比较四种模型对糖尿病诊断的价值得出随机森林算法效果最优。
深度学习技术相比于基础的机器学习算法,更能提高预测模型的准确性,做出及时准确的医疗诊断。在糖尿病分类预测应用研究上,现有文献多数集中于传统的机器学习模型,较少使用深度学习模型。综上所述,本文将通过基于TensorFLow框架建立深度神经网络预测模型为糖尿病预测分类,并与传统的机器学习算法进行比较,为深度学习在医学中应用提供思路。
1 深度神经网络算法
神经网络技术起源于感知机模型(Rosenblatt,1957),感知机模型有输入层、输出层和一个隐藏层[6]。输入的特征向量通过隐藏层变换到达输出层,在输出层输出分类结果。而神经网络则在感知机模型基础上做了提升与拓展,主要有以下三点:
1) 加入多层隐藏层,在增强模型表达能力的同时也增加了模型复杂度;
2) 增加输出层神经元,即可有多个输出,使得模型更加灵活;
3) 增加激活函数的选择,感知机的激活函数为[sign(z)],其处理能力有限。在神经网络中有多种不同的激活函数,如Sigmoid、ReLU、softmax、tanh等,增强模型表达能力。
深度神经网络可以理解为有多层隐藏层的神经网络模型,且层与层之间是全联接,以图1所示的两层隐藏层的深度神经网络为例。
对于第一层隐藏层的神经元计算,有如下公式:
2 实验部分
2.1 数据说明与处理
本文采用UCI上的公开数据集:皮马印第安糖尿病数据集(PIMA Indians Diabetes Dataset,简称PIDD)。PIDD中共有768条数据项,每个数据项中包含8个特征属性和1个分类标签,其具体特征属性含义如下所示:
1) Pregnancies:怀孕次数;
2) Glucose:血糖值,即两小时内服葡萄糖耐量测试的血糖浓度值;
3) Blood Pressure:舒张压;
4) Skin Thickness:皮脂厚度,即肱三头肌皮下脂肪的厚度;
5) Insulin:两小时血清胰岛素;
6) BMI(Body mass index):体重指数;
7) Diabetes Pedigree Function:糖尿病谱系功能,表示具有糖尿病的遗传系数;
8) Age:年龄。
Outcome表示每个数据项的类别标签,其值为0和1,其中1表示患有糖尿病,1表示未患有糖尿病。实验部分首先通过观察数据并结合生活实际对糖尿病数据集进行预处理[7],利用箱形图[8]判断异常值,在去除异常值后用平均值替代缺失值完成对数据集的预处理步骤。通过对PIDD数据集进行简单预处理工作,最终得到的新数据集中共包含765个数据点,其中标签值为0的样例为265个,标签值为1的样例为500个。
数据预处理之后进行深度神经网络模型的训练,经过参数调优后,本文深度神经网络模型的参数设定为:输入层神经元10个,输出层神经元1个,隐藏层共3层,其神经元个数分别为128,64,32,训练次数为3500次。
2.2 实验平台
本文深度学习预测模型搭建运用Tensorflow框架完成。Tensorflow是谷歌2015年开源的通用高性能计算库,主要用于机器学习和构建神经网络方面的研究。目前,随着机器学习的兴起,Tensorflow已发展成为一个完整的机器学习生态系统。
2.3 实验结果与分析
对于七种传统机器学习模型和深度神经网络模型进行比较分析,评估标准采用五项指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、AUC值和F1-Score。其中准确率表示糖尿病数据测试集中预测正确的样本数占所有样本数的比例大小;精确率表示模型预测为正例的样本中,实际确实患有糖尿病的比例;召回率表示测试集实际为正例的样本中,模型预测为患有糖尿病的比例; AUC值即为ROC曲线下方围成区域的面积大小,能够稳定的反应模型本身的好坏;F1-Score可理解为精确率和召回率的调和平均数。在现实医学诊断中,我们总是希望尽可能准确地找出实际患有糖尿病的患者,因此查准率和查全率均为越高越好。
由表1和表2可以看出,深度神经网络模型在准确率、精确率、召回率、AUC值和F1-Score五项指标上均为最高,反映出深度学习模型在预测模型中具有较好的效果。
除了模型性能评估比较以外,利用Python树模型中feature_importances_属性判断出PIDD数据集中属性重要程度比对,如图2所示。由图2可以看出,重要程度從高到低依次为:Glucose(血糖值)、BMI(体重指数)、Age(年龄)、Diabetes Pedigree Function(糖尿病谱系功能)、Insulin(血清胰岛素)、Pregnancies(怀孕次数)、Blood Pressure(舒张压)和Skin Thickness(皮脂厚度)。因此,血糖值在一定程度上对糖尿病预测问题有较大的影响力,为日后的糖尿病医学诊断提供一定的参考和预警。
3 结论
本文通过运用深度神经网络(DNN)模型以实现预测糖尿病问题,并与七种传统机器学习算法(KNN模型、逻辑回归模型、高斯贝叶斯模型、SVM模型、随机森林模型、AdaBoost模型和XGBoost模型)所构建的糖尿病预测模型进行对比分析。通过利用准确率、精确率和召回率三种指标对八种模型性能比较可以发现深度学习模型较于传统机器学习模型具有一定的优势。随着数据量的增大,深度学习以其强大的学习能力,拟合更为复杂的预测模型,达到更高的预测准确率。
参考文献:
[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] 贺其,赵岗,菊云霞,等.机器学习算法在糖尿病预测中的应用[J].贵州大学学报(自然科学版),2019,36(2):65-68.
[5] 吴兴惠,周玉萍,邢海花,等.机器学习分类算法在糖尿病诊断中的应用研究[J].电脑知识与技术,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].商场现代化,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.
【通联编辑:唐一东】