1. 引言
目前糖尿病已经逐渐发展成为发病率最高的危害人类健康的疾病之一,并且多数患者意识不到糖尿病前期的症状,最终错过了最佳治疗时期。因此,对糖尿病的预测以便及时进行治疗具有十分重要的意义。现有的糖尿病患者识别较多地使用支持向量机、Logistic回归分类、BP神经网络、K近邻算法和决策树算法。邓琳[1]等学者使用支持向量机建立了妊娠期糖尿病的预测模型;李飞[2]等学者使用神经网络模型对检测对象患有糖尿病的可能性进行了评估;Permana B A C [3]等学者使用C4.5决策树对糖尿病患者进行了预测;Haohui [4]等学者将Logistic回归、支持向量机、Nayeve Bayes、决策树、Random Forest、XGBoost和人工神经网络8种算法作为糖尿病预测模型进行了对比,得出Random Forest模型优于其他模型。由以上文献梳理可以看出,大部分学者都是使用其中一种机器学习算法作为糖尿病预测模型,忽略了糖尿病的各特征之间信息存在冗余,各个属性之间存在较强的相关性,直接输入到机器学习算法中,可能会导致模型过拟合。使用主成分分析方法(PCA)可以进行数据精简和降维处理,选取不相关、包含大部分信息的主成分[5]。BP神经网络作为一种分类和预测方法,通过神经网络建立特征属性与识别对象间的联系来进行分类预测,该方法效果较好,被广泛应用到各个领域。因此,本研究使用PCA算法将数据进行降维,然后将降维后的主成分使用神经网络模型来进行糖尿病患者预测。
2. 算法理论
2.1. BP神经网络
人工神经网络是对生物神经机制研究基础上产生的智能仿生模型。处理单元,或称之为神经元,是神经网络的最基本的组成部分。一个神经网络系统中有许多处理单元,每个处理单元的具体操作都是从其相邻的其他单元中接受输入,然后产生输出送到与其相邻的单元中去。神经网络的处理单元可以分为三种类型:输入单元、输出单元和隐含单元。输入单元是从外界环境接受信息,输出单元则给出神经网络系统对外界环境的作用。隐含单元则处于神经网络之中,它从网络内部接受输入信息,所产生的输出则只作用于神经网络系统中的其它处理单元。隐含单元在神经网络中起着极为重要的作用,BP神经网络的示意图如下图1所示。
假设给定训练集
,隐层共含有q个神经元。记隐层第h个神经元接受到的输入为
,输出层第j个神经元接受到的输入为
,
为隐层第h个神经元的输出。
对训练样本
,记神经网络的输出为
,即
Figure 1. BP neural network and variables
图1. BP神经网络及变量
(1)
均方误差为:
(2)
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整,对式(2)的误差给定学习率
,有
(3)
通过推导,得出BP算法的更新公式为:
(4)
其中,
,
,
,学习率
控制着算法每一轮迭代中的更新步长,太大容易震荡,太小收敛速度过慢。
BP神经网络算法步骤为:1) 初始化网络及学习参数,如设置网络初始权矩阵,学习因子
等[2];2) 提供训练模式,训练网络,直到满足学习要求;3) 前向传播过程:对给定训练模式输入,计算网络的输出模式,并与期望模式比较,若有误差,则执行步骤4;否则,返回步骤2;4) 反向传播过程:计算同一层单元的误差,修正权值和阈值,返回步骤2。
2.2. 主成分分析
主成分分析是一种常用的降维算法,在损失很少信息的前提下把多个指标转化为几个综合指标,通常把转化生成的综合指标称为主成分,每个主成分是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能。
设样本有p个指标,分别用
表示,这p个指标构成随机向量
。设随机向量X的均值为μ,协方差矩阵为。对X进行线性变换,形成新的综合变量Y,Y满足下式:
(5)
其中:1)
2)
与
相互无关
3)
是
满足原则的所有线性组合中方差最大者,
是与
不相关的
的所有线性组合中方差最大者,
都是
的所有线性组合中方差最大者。
满足以上三条原则的综合变量
分别称为原始变量的第一、第二…第p个主成分,并且各综合变量在总方差中所占的比重依次递减。
2.3. 评价指标
二分类评价指标是基于混淆矩阵(如表1所示)得出的,常用的评价指标有精准率、召回率、F值、查准率和Matthews相关系数MCC。
Matthews相关系数MCC:预测分类与观测分类之间的一致性度量指标,取值越大,一致性则越好,分类器效果越好。
(6)
Table 1. Confusion matrix
表1. 混淆矩阵
预测值 真实值 |
Yes |
No |
sum |
Yes |
TP |
FN |
P |
No |
FP |
TN |
N |
精准率:
召回率:
查准率:
F值:
3. 实证分析
3.1. 数据来源
数据来自UCI数据集里的皮马印第安人糖尿病数据集,该数据集含有600样本,8个属性变量和1个标签变量。其中,标签值为1代表患糖尿病,标签值为0表示未患糖尿病。这八个属性分别是怀孕次数、血糖值、血压值、皮脂厚度、胰岛素量、BMI、糖尿病遗传性和年龄。
3.2. 数据处理
本实验在python3环境下运行,首先利用StandardScaler库对数据进行了标准化处理,以消除量纲对模型的影响。然后对属性变量进行PCA分析,得出各成分的方差及方差比例见下表2,并将方差比例进行可视化如图2所示。
Table 2. Variance and proportion of variance of each component
表2. 各成分方差及方差比例
|
怀孕次数 |
血糖值 |
血压值 |
皮脂厚度 |
胰岛素量 |
BMI |
糖尿病遗传性 |
年龄 |
方差 |
2.157 |
1.740 |
1.038 |
0.879 |
0.752 |
0.619 |
0.424 |
0.404 |
方差比例 |
0.269 |
0.217 |
0.130 |
0.110 |
0.094 |
0.077 |
0.053 |
0.050 |
Figure 2. Proportion of variance by attribute
图2. 各属性方差比例
由图2可知,第一主成分、第二主成分和第三主成分提供了大部分信息,因此利用sklearn库中的PCA将数据降为三维。将降维后的三维数据进行二维可视化如下图3所示。
Figure 3. Data visualization after dimensionality reduction
图3. 降维后的数据可视化
3.3. 模型建立
将数据按照6:4的比例划分数据,建立训练集和测试集。神经网络建模利用sklearn中的MLPClassifier函数,其中参数设置为solver为lbfgs,lbfgs为quasi-Newton方法的优化器,可以更快的收敛并且表现更好;设置alpha为e−5,alpha为L2惩罚参数;hidden_layer_sizes设置为(5, 2),表示有两层隐藏层,第一层隐藏层有5个神经元,第二层隐藏层有2个神经元。模型结果得到训练集准确率为0.9,测试集准确率为0.87。
3.4. 模型评估
二分类模型的评价指标有精准率、召回率、F值、查准率、Matthews相关系数MCC和ROC (Receiver Operating Characteristic)曲线,将PCA + BP神经网络模型与BP神经网络进行对比,得出混淆矩阵如下图4和图5所示,分类结果比较如下表3所示。
Figure 4. BP neural network confusion matrix
图4. BP神经网络混淆矩阵
Figure 5. PCA + BP neural network confusion matrix
图5. PCA + BP神经网络混淆矩阵
Table 3. Comparison of test set classification results
表3. 测试集分类结果比较
分类模型 |
标签 |
混淆矩阵 |
精确率 |
召回率 |
F值 |
查准率 |
MCC |
PCA + BP |
1 |
48 |
23 |
0.87 |
0.68 |
0.75 |
0.84 |
0.67 |
0 |
9 |
160 |
BP |
1 |
0 |
71 |
0.71 |
0 |
0 |
0 |
0 |
0 |
0 |
169 |
ROC的全称为“受试者工作特征”曲线,是二分类模型优劣的一种评价指标,表示正例排在负例前面的概率,曲线的横坐标表示假阳率,纵坐标表示真阳率。AUC表示ROC曲线下的面积,主要用于衡量模型的泛化能力,AUC值越大(ROC曲线越接近左上角),分类效果越好。文中两模型的ROC曲线和AUC值如下图6所示。
Figure 6. ROC curves and AUC values for BP and PCA + BP models
图6. BP和PCA + BP模型的ROC曲线和AUC值
由以上分类评价指标可得,PCA + BP比BP模型的精确率、召回率、F值、查准率和MCC的值都大,且ROC曲线下的面积AUC也比BP大0.31。因此,从各个指标可以看出,对于糖尿病患者的预测,PCA + BP神经网络模型的效果比单纯的BP神经网络分类模型效果好,在数据集的预测精度表现更佳。
4. 结束语
中国作为糖尿病患病人数最多的国家,利用机器学习算法提高糖尿病预测模型性能及可解释性,对于辅助医生的诊断工作具有重要的现实意义[6]。本文使用PCA对皮马印第安人糖尿病数据集进行了降维,良好的处理了数据集中复杂的非线性问题。利用降维后的3个主成分使用BP神经网络进行分类,预测准确率达到0.86,比单纯用BP神经网络准确率高了0.16。因此,PCA + BP神经可以为糖尿病患者预测提供一种有效的方法。有助于及时地对糖尿病作出提早预防和风险控制[7],进而降低医疗成本,减少误诊率。