优化BP神经网络在非均衡数据分类中的应用
2019-07-17黄启萍
童 威, 黄启萍
(1.安徽文达信息工程学院, 安徽 合肥 231201;2.安徽电气工程职业技术学院, 安徽 合肥 230051)
0 引 言
非均衡数据广泛分布在当今社会中,在部分领域,少数类样本被准确分类的关键程度显著高于一般数据样本[1-2]。但大部分经典分类方法都假设样本平衡或错分代价一致,在对非均衡数据进行处理的过程中,少数类样本信息通常会被多数类样本信息掩盖,导致少数类样本分类准确性低于多数类样本[3-4]。非平衡数据分类问题成为亟需解决的问题,被广泛关注。
传统分类方法大多在假设数据平衡的条件下有很高的分类精度,也就是对非平衡数据进行分类的过程中,少数类样本在很大程度上会被错分至多数类样本中,尽管整体分类精度高,但针对少数类样本的分类效果较差[5]。所以部分经典分类方法不适于对非平衡数据进行分类。一方面,非平衡数据种类繁多,部分少数类样本的价值更高,为主要关注对象[6];另一方面,传统方法解决非平衡数据分类问题的能力较差。所以,如何在非平衡数据集中增强少数类数据的分类精度变成分类领域的难点问题,为模式识别领域提供新的研究方向。
针对传统方法的弊端,将优化BP神经网络应用于非均衡数据分类中。通过BP神经网络实现输入输出映射,引入代价敏感学习和梯度下降法,利用反向传播对神经网络权值与阈值进行调整,以完成对BP神经网络的改进。将其应用于非均衡数据分类中,经实验验证,所提方法可有效解决非均衡数据分类问题,对小数据集样本的分类准确性很高。
1 数据预处理
通过SMOTE方法对非均衡数据进行预处理[7],假设少数类样本间的样本仍旧为少数类,在间隔较小的少数类样本间插入人工设置少数类样本,将其看作噪声,以增加少数类样本量,提高整个数据集的均衡化程度[8]。
yi=xi+rand(0,1)×(xi-xj),
(1)
式中,rand(0,1)用于描述(0,1)范围内的随机数。将上述新合成样本加入原始少数类样本中,形成新的训练集。
SMOTE样本描述合成过程如图1所示。
图1 SMOTE样本合成过程
图中,xi用于描述原训练集中少数类样本,(xi1,xi2,xi3,xi4,xi5)用于描述xi的5个近邻样本,(y1,y2,y3,y4,y5)用于描述新合成样本点。SMOTE合成方法可防止过度拟合,增强了分类结果的泛化能力。
2 改进BP神经网络在非均衡数据分类中的应用
2.1 BP神经网络
多层前向网络反向传播算法被简称为BP神经网络,由输入层、输出层以及隐含层构成,同层神经元之间互相独立,不同层神经元间向前连接。按照多层前向网络的逼近理论,在隐神经元数量充分的情况下,存在sigmoid非线性活动函数的三层神经网络可在设定精度下完成从输入空间至输出空间的任意非线性函数映射[9-10]。所以只分析三层前向神经网络,结构如图2所示。
图2 BP神经网络结构
图中:Oi----输出单元;
vj----隐单元;
yi----输入单元;
wjk----从输入单元k至隐单元j的连接权;
Wij----从隐单元j至输出单元i的连接权。
BP神经网络就是通过误差向后传播对权进行调整,使得网络实际输出和期望输出均方差达到最小。
针对既定输入模式γ,隐单元j的输入可通过下式求出
(2)
隐单元j的输出为
(3)
式中:q1----适于选择的隐层活化函数。
输出单元i的输入可描述成
(4)
最终的输出可描述成
(5)
式中:q2----适于选择的输出层活化函数。
针对任意输入模式γ与输出单元i,在线误差函数均可通过下式求出
(6)
针对输出单元i,总误差函数可通过下式求出
(7)
2.2 优化BP神经网络
针对传统方法在对非均衡数据进行分类过程中存在的参数不确定性和对少数类样本分类精度低的问题[11],借助BP神经网络非线性拟合性能和降噪自编码器对特征描述更优的优势,提出一种优化的降噪BP神经网络方法,将其应用于非均衡数据分类,模型结构如图3所示。
图3 改进BP神经网络模型
优化BP神经网络在输入层和隐含层间添加了特征受损层,对模型建立代价损失函数,获取最小函数损失值,令其对非均衡数据分类的泛化能力大大提高,增强了非平衡数据的分类准确性[12]。
2.3 代价确定
在实际应用中,错分种类不同时,造成的代价通常也存在差异。因此依据最小化错误率原则对BP神经网络进行建立,在错分代价不等的情况下,无法达到整体错分代价最小的条件[13]。代价敏感学习是机器学习领域研究的热点问题,针对不同种类错分采用不同惩罚代价因子,同时按照最小整体五分代价原则对BP神经网络进行设计,以满足错分代价存在差异的情况。
误分类代价可通过代价矩阵进行描述,以二分类情况为例,其代价矩阵见表1。
表1 代价矩阵
注:cost(i,j)=0代表把样本i分类为j类时所需的代价。
代价敏感学习即把不同种类各错分代价应用在分类决策中,以最大程度地降低误分类整体代价。A类数据集代价信息通过代价矩阵costa×a进行描述,准确分类的代价是0。
把样本x错分成第i类的期望风险可通过下式求出
(8)
在x样本实际种类未知的情况下,把样本划分至i类的风险通过样本x的后验概率与错分代价进行计算。针对各样本应将其划分至期望风险最小的种类。
2.4 梯度下降法确定最小函数损失值
在机器学习的过程中,针对大部分监督学习模型,为了获取最优权值,需对模型构造代价损失函数,再选择合理的方法获取最小的函数损失值。通常选用梯度下降法,其基本思想是:为了求出最小函数损失值,需求出损失函数的梯度,再依据梯度方向令函数损失值降低,对权值进行调整与更新,使得函数损失值达到最低,以获取最优解。
SGD是梯度下降的优化方法,每次随机选择样本进行迭代更新[14-15],并非针对全部样本,所以SGD方法可显著减少计算量。
SGD相关公式如下:
(9)
ω=ω-ηωg(ω),
(10)
式中:ω----神经网络参数权值;
g(ω)----损失函数;
yi----第i个样本的样本值;
m----整个迭代过程中的总迭代次数;
η----梯度下降中的步长,也就是学习率。
如果η设置过小,则需很多次迭代才可获取最优解,同时会减少神经网络的收敛速度,严重时会导致陷入局部最优解的情况。若提高学习率,尽管会增加训练速度,然而也会提高跳过最优解的机率,在很大程度上会出现无法获取最优解的情况。η为梯度下降法是否有效的决定性因素,为了获取有效的学习结果,需对学习率η进行自适应更新。
2.5 学习率自适应更新
现阶段BP神经网络中均将冲量引入SGD实现方式中,用于避免BP神经网络在最小损失值点继续迭代,陷入局部最优的情况出现,设置添加冲量为0.9。
为了解决SGD方法中学习率选择复杂的问题,引入学习率自适应更新方法对现阶段迭代数是否低于总迭代数进行判断,如果迭代数高于设置的初始更新数值,则对迭代次数和初始更新数值进行取模计算,获取学习率更新规则1;在迭代次数低于初始更新阈值的情况下,对规则进行更新,获取更新规则2,得到不同情况下的学习率。
为了避免η递减过快,设置了学习率更新规则1与更新规则2,按照更新规则每进行一次迭代就更新一次学习率η。随着迭代次数的增加,函数损失值逐渐降低,需适当降低学习率,所以学习率呈整体梯形下降趋势,但并非严格下降[16-17]。
2.6 非均衡数据分类流程
输入:样本数据x和一定噪声比例μ。
输出:分类最优参数o。
1)对参数进行初始化处理,o=(W,c),W代表改进BP神经网络的权值,c代表偏置项,输入层节点个数为n,输出层节点个数为m,隐含层节点个数为k。
2)把训练数据x通过式(1)添加人工噪声,获取y。
3)把获取的y输入改进BP神经网络中进行训练,得到输出o。
4)o通过梯度下降法改变,求出迭代次数。在训练次数达到既定值的情况下,结束迭代,获取分类最优参数o。如果没有达到训练迭代次数,则通过式(9)求出损失函数,如果达到既定损失值,则结束训练获取分类最优参数o;反之,重复进行步骤(2)~(4),直到结束训练,获取分类最优参数o。
3 实验结果及分析
3.1 数据来源
实验将提出方法应用于小额贷款公司客户信用风险评估中。将某小额贷款公司采集的421条借款记录当成实验原始数据,借款时间从2013年10月-2017年4月。所研究区域小企业与低收入人群所占比例较多,所以研究该区域小额贷款企业数据可体现小额贷款领域面临的风险。
在采集的数据集中,无违约记录共380条,违约记录共25条,总体不均衡比例是12.51,所以需对其进行分类,为风险评估提供数据依据,实验原始数据集描述见表2。
表2 实验原始数据集描述
针对采集的数据集,通过WEKA平台进行实验测试,将文献[5]基于簇中心群的时间序列数据分类方法、文献[6]基于支持向量上采样的不平衡数据分类方法、文献[7]用模糊积分集成重复训练极限学习机的数据分类方法作为对比,验证文中方法的有效性。
小额贷款企业借款人信息和实验数据集描述结果分别见表3和表4。
表3 小额贷款企业借款人信息
表4 实验数据集描述结果
3.2 预处理结果测试
采用SMOTE方法在形成新的少数类合成样本时假设少数类近邻均为少数类,达到控制少数类样本近邻区域,增强合成样本质量的目的,处理结果如图4所示。
图4(a)所示的非均衡原始数据集,少数类样本x1的5个少数类近邻与5个多数类近邻依次是{x2,x3,x4,x5,x6,y1,y2,y3,y4,y5},其中3个少数类近邻依次是{x2,x3,x4},2个多数类近邻依次是{y1,y2},因为x5、x6和少数类样本x1间的间隔较远,所以把从近邻候选集合删除,通过多数类近邻y1、y2代替x5、x6,以获取x1的5个候选近邻{x2,x3,x4,y1,y2},然后对各候选近邻依次形成新的少数类合成样本。
新形成样本用图4(b)进行描述,由图中可知,利用x1新增加的少数类合成样本大部分分布在周围。
(a) 非均衡原始数据集
(b) 新形成样本
图4 SMOTE方法处理结果
3.3 非均衡数据分类结果
实验选用交叉验证方法,把研究的4个数据集每个平均划分成4份,每次实验将其中3份当成训练集,将剩下1份当成测试集进行实验测试。
两类问题的混淆矩阵见表5。
表5 两类问题的混淆矩阵
表中描述的是两类问题的混淆矩阵,TP代表分类准确的正例个数,TN代表分类准确的负例个数,FP代表分类错误的负例个数,FN代表分类错误的正例个数。
在对小额贷款企业非平衡数据集分类中,通过z对分类性能进行衡量,计算公式为:
(11)
(12)
(13)
式中,acc+与acc-依次用于描述正负类样本的分类精度,z值和acc+、acc-的关系为正线性关系,acc+、acc-值越小,则z值越小,错分越少,分类性能越好。
不同方法的z值比较结果见表6。
表6 不同方法z值比较结果
分析表6可知,在4个数据集中,文中方法平均z值最低,说明文中方法可有效解决数据在空间分布存在差异的问题,合成的正类样本数据更加满足原始样本在数据空间的分布性状,说明文中方法对少类样本也有很高的分类精度。
为了进一步验证文中方法相比较于传统方法的优越性,针对不同方法的数据分类精度进行实验,结果如图5所示。
由图5可知,文献[5]基于簇中心群的时间序列数据分类方法稳定性较差,在数据样本数量不断增加的过程中精度出现较大浮动。文献[6-7]提出的基于支持向量上采样的不平衡数据分类方法则具有较为稳定的精度,这说明该方法具有一定应用稳定性,但是精度一直处于较低水平,数据分类精度无法满足当前应用要求。相比之下,文中方法在实验数据样本数量增多的同时,一直保持较高的分类精度,这说明文中方法稳定性较好,具有更好的性能。
图5 不同方法下数据分类精度对比
4 结 语
通过SMOTE方法对非均衡数据进行预处理,在间隔较小的少数类样本间插入人工设置样本,以增加少数类样本量,提高整个数据集的均衡化程度。分析了BP神经网络,在此基础上提出一种优化的BP神经网络方法,将其应用于非均衡数据分类。实验结果表明,文中方法具有较高分类精度。