-
近年来随着网络信息的迅猛发展,在医疗、金融、生物等多个行业积累了海量的数据. 大数据在信息分析和行为预测方面起着重要的作用[1]. 由于数据分布不平衡,从如此大的数据集中分析和提取关键点是一项十分困难的任务. 基于最大化分类准确率的传统分类算法无法处理此类数据集,可能会导致分类结果有偏差和决策错误[2]. 因此,研究有效处理不平衡数据中少数类识别率的技术成为科研人员关注的热点问题.
当一种类别的样本数远小于其他类的样本数时,该数据集被认为是不平衡的. 由于不平衡大数据会导致分类算法的学习性能下降,并且存在小样本、重叠或小间断的问题,使得不平衡数据的分类面临巨大的挑战[3]. 当前大多数分类方法都是基于大数据平衡理论,而用于解决数据集类不平衡情况的方法还较少. Abdel等[4]提出一种基于动态Spark的不平衡大数据分类框架,通过对少数类样本进行重采样和增强处理,提高分类性能. Jing等[5]提出一种不相关的成本敏感多集学习方法用于解决高度不平衡的数据分类问题,该方法首先将不平衡数据随机分区构造出多个平衡子集,然后利用深度度量学习和多集特征学习技术解决每个子集中存在的非线性问题,实现更好的算法性能. Lu等[6]提出一种改进的加权极限学习机,通过将投票方法引入到加权极限学习机中解决不平衡数据分类问题. Zhang等[7]提出内核修改的最佳余量分配机分类方法,通过引入具有两个自由参数的共形函数来缩放ODM的核矩阵,提高特征空间中训练数据的可分离性以及消除数据不平衡的影响,使得改进后的分类器具有更平衡的检测率和更好的泛化性能. Li等[8]提出一种基于粒子群优化的自适应提升算法,该算法可以重新初始化参数以避免陷入局部最优,防止冗余或无用的弱分类器消耗过多的系统资源,能够更好地处理不平衡度较高的数据. 虽然上述算法能够在一定程度上处理不平衡数据的分类问题,但是在大多数情况下,模型的复杂性和数据分类的精度之间存在着不可避免的权衡,而且没有细致考虑数据分布问题及类之间的不平衡问题,因此容易产生分类精度低的效果.
针对上述存在的问题及分类优化算法容易陷入局部最优状态的现象,本文提出一种基于鲸鱼优化和深度学习的不平衡大数据分类算法,该算法分为特征选择、预处理和分类3个阶段. 在特征选择阶段,将使用鲸鱼优化算法消除不相关和多余的特征,以提高分类精度;在预处理阶段,通过预处理数据集来解决类不平衡问题,获取数据集类之间的平衡;在分类阶段,基于双向递归神经网络的深度学习方法对预处理后的数据集进行分类.
全文HTML
-
鲸鱼优化算法(whale optimization algorithm,WOA)是根据座头鲸捕猎行为提出的一种新的群智能优化算法[9]. 在海洋活动中,座头鲸采用一种bubble-net捕食策略,通过向上螺旋和双循环等觅食行为狩猎食物. Bubble-net捕食策略大致可以分为包围猎物、狩猎行为和搜索猎物3步. 在WOA算法中,假设鲸鱼种群规模为N,搜索空间为d维,第i只鲸鱼在搜索空间内的位置表示为Ki=(ki1,ki2,…,kid),猎物的位置表示全局最优解决方案.
WOA算法在模拟座头鲸包围猎物时,假定目标猎物为当前群体在搜索空间中的全局最优位置,其他个体可以通过最优解更新位置.
式(1)、式(2)中:t为当前迭代次数,K(t)和K*(t)分别为当前鲸鱼位置和最优解位置,D是搜索个体与猎物的距离,A和C是系数向量,可以定义为
式(3)、式(4)中:r1和r2是[0, 1]之间的随机数,a为随迭代次数增加而递减的控制参数.
采用下列模型模拟座头鲸螺旋向上的狩猎行为
式(6)中:D′=|K*(t)-K(t)|,l是[-1, 1]之间的随机数,q是对数螺旋线形函数的常数. 根据bubble-net捕食策略,座头鲸沿着螺旋形路径移动的同时还会缩小包围圈. 在优化过程中,选择在收缩圆圈机制中移动或选择螺旋模型来更新鲸鱼位置的概率被认为是0.5,即
式(7)中:P是[0, 1]之间的随机数,控制螺旋或圆形运动之间的转换.
在搜索猎物时,其数学模型为
式(8)、式(9)中:Krand(t)表示从种群中随机选择的个体位置. 参数A控制探索和开发之间的转换,为了保证算法的探索和收敛,当|A| < 1时,选择当前迭代中最优解位置来更新其他个体;当|A|≥1时,随机选择一个个体位置来更新其他鲸鱼的位置.
-
针对不平衡数据的分类问题,本文提出一种基于鲸鱼优化和深度学习的不平衡大数据分类算法,该算法由特征选择、预处理和分类3个阶段组成.
-
数据集中冗余或不相关特征对分类精度有很大的影响. 特征选择阶段的主要目标是寻找最佳特征子集,以提高分类精度. 在这个阶段考虑到每个特征子集是鲸鱼的一个位置,使用WOA算法进行特征选择. 每个子集将包含小于或等于na的随机特征数,其中na是原始数据集中的特征总数. 具有最少特征数和较高分类精度的鲸鱼将被视为最优解.
-
在该阶段将使用基于局部敏感哈希的合成少数类过采样技术(locality sensitive hashing synthetic minority oversampling technique,LSH-SMOTE)进行采样. 为了控制过拟合问题提出了合成少数类过采样技术(synthetic minority oversampling technique,SMOTE)[10]. SMOTE算法的基本思想是通过创建少数类的合成实例来处理属性域而不是实例域,从而生成少数类的合成样本. 通过沿k个少数类最近邻居来创建合成实例,少数类中的每个实例都被过采样. LSH-SMOTE技术是将局部敏感哈希技术用于快速高效地找到少数群体的最近邻居,而不是SMOTE算法中使用的标准技术K-最近邻居[11]. 这种过采样技术将数据集进行哈希处理并划分为多个存储桶,将具有相似哈希码的相似项分配在同一桶内,这会增加相似项之间的碰撞概率,并简化了每个桶中k邻近的搜索. 从每个桶中选择碰撞次数最多的实例,然后使用欧几里德距离对实例进行排序,仅选择K个最近邻的碰撞实例作为查询实例. 最后,将包含k邻近实例的列表返回到主SMOTE类以生成合成实例. 由于LSH复杂度低,因此将LSH技术与SMOTE算法相结合会大大节省运行时间.
-
在分类阶段,采用双向递归神经网络(bidirectional recurrent neural networks,BRNN)的深度学习方法,用于对预处理后的数据集进行分类. BRNN分类器具有权重和偏差两个重要参数,它们对BRNN分类器的性能产生巨大的影响. 为了提高BRNN的性能,本文采用鲸鱼优化算法来寻找两种类型参数的最佳值,从而解决BRNN不稳定梯度问题,提高分类的精度和准确性.
-
双向递归神经网络[12],其主要优点是增加了网络可用的输入信息量,弥补了标准递归神经网络、多层感知器和时延神经网络存在固定输入数据和没有未来信息的局限性. BRNN的基本思想是将隐藏层从相反方向连接到输出. 由于这种独特的结构,过去和将来的信息可随时输出.
递归神经网络可视为普通前馈多层感知器网络的扩展,其中输入值和输出值为向量而不是离散值. 假定X ={ xt}和Y ={ yt}分别表示递归神经网络的输入和输出,其中xt∈Rn和yt∈Rn是每个时间步长t下的向量. 通过建立P(Y | X)分布模型来求取最终解,在此过程中,不仅利用递归神经网络将输入向量映射到输出向量,同时还需要使用RNN来预测下一个输入.
单向递归神经网络的输出yt可以表示为
式(10)、式(11)中:Wy是将隐含层连接到输出层的权重矩阵,Wh是隐藏到隐含层的权重矩阵,Wx是将输入层与隐含层连接的权重矩阵. by为输出层偏差向量,bh为隐含层偏差向量. 对于最终的非线性σ,可以使用sigmoid,tanh和relu作为分类的激活函数. RNN将根据隐含层传播的信息来评估输出yt,而不管它是否直接或间接地依赖于值(xi)i=1t={ x1,…,xt}.
双向RNN(BRNN)是单向RNN的扩展,它引入了第2个隐含层,其中隐含层与隐含层的连接按相反的时间顺序排列. 因此,该模型能够利用过去和将来两个方向的数据,其输出yt可以表示为
式(12)、式(13)、式(14)中:上标f所表示的前进方向具有独立的非束缚重量,上标bac表示后向隐藏的激活. 在式(12)、式(13)、式(14)中,由于非循环连接,yt不会从xt中获取数据. 因此,可以通过设置Y = X以无监督的方式使用该模型,用于预测输入序列中给定时间的下一步长输出值. 在BRNN的向后传递中,有两个反向传播时间阶段,该阶段采用最小化均方误差来更改权重值.
BRNN中的权重是决定输入对输出影响程度和控制隐藏层学习率的最重要因素. 在线性回归中,输出是通过将权重乘以输入然后相加而形成的. 权重是控制神经元相互影响程度的数值,对于任何神经元,输出可以表示为权重与输入乘积的和的形式.
式(15)中:b是偏差,用于调整输出与神经元输入间的平衡.
-
采用WOA算法对BRNN中最重要因素的权重和偏差进行优化,通过找到权重和偏差的最佳值来实现BRNN的最佳训练,进而达到更好的分类精度. WOA算法的优化变量可以表示为
式(16)中:输入节点的数目为n,从第i个节点到第j个节点的连接权重为Wij,偏移量为bj,其中i,j∈{1,2,…,n}.
由于BRNN训练的目标是能够达到最高分类精度,而均方误差MSE是度量BRNN分类效果的常用指标,因此采用MSE作为WOA算法优化的目标函数. 该度量的工作原理:通过对BRNN应用一组训练实例,计算期望输出和BRNN输出之间的差异.
式(17)中:m是输出数,oik和dik分别表示使用第k个训练实例时第i个输入神经元的实际输出和最佳输出. 为了使BRNN更有效,采用所有训练实例的MSE平均值来评估BRNN的性能.
式(18)中:s是训练实例数. 最后,可以用WOA算法的变量和平均MSE来表示BRNN的训练问题,即
在使用WOA训练BRNN的整个过程中,WOA算法采用最小化所有训练实例平均均方误差的方式为BRNN优化了权值和偏差. 因此,当迭代次数足够多时,WOA可以收敛到最优解.
2.1. 特征选择
2.2. 预处理
2.3. 分类
2.3.1. 双向递归神经网络
2.3.2. 基于鲸鱼优化的BRNN
-
为了评价本文算法的性能,所有实验在一台配置为i7-6700HQ CPU @2.60 GHz,12 GB RAM的电脑上运行. 在3.9.1版Weka学习环境和Matlab2018a软件上进行测试实验,并在相同条件下与基于粒子群优化的自适应提升算法(PSO+AdaBoost)[8]、基于遗传算法改进的随机森林分类器(GA-RF)[13]和基于蚁群-遗传优化的支持向量机(ACOGA+SVM)[14]等现有算法相比较.
-
本文选择KEEL数据集[15]中类别不平衡比(imbalance ratio,IR)大于9的8个数据子集和ECBDL′14数据集[16]作为测试数据(表 1).
针对不平衡分类性能的评估问题,研究人员提出了许多算法,本文采用受试者工作特征曲线(ROC)下的面积AUC和均方误差MSE来评估不平衡数据集上的分类性能,其中AUC的定义为
式(20)中:Sensitivity和Specificity分别表示召回率和特异性,其定义为
式(21)、式(22)中,TP,FP,TN和FN是二分类问题中的术语,分别表示真阳性、假阳性、真阴性和假阴性.
-
比较本文算法与其他3种算法在9个数据集的测试结果,并利用AUC和MSE两个指标进行评估. 表 2和表 3分别给出了不同算法在九个数据集的测试对比结果. 表 3的结果表明,本文算法在所有数据集上都取得了最好的AUC分数,这有力地证明了本文算法具有更高的效率.
从表 3结果可知,本文算法在所有数据集上的MSE得分最低,从而说明本文算法在大的不平衡数据集上具有很高的局部最优回避能力. 总的来说,本文算法能够有效处理极不平衡的大数据集,获得高精度的分类结果.
3.1. 数据集和评估指标
3.2. 实验结果
-
本文提出了一种基于鲸鱼优化和深度学习的不平衡大数据分类算法,用于解决当前大多数不平衡数据分类算法中存在的分类精度低和容易陷入局部最优状态的问题. 本文算法包括3个阶段:在第一阶段利用鲸鱼优化算法对不平衡数据进行特征优化,消除冗余特征,寻找最优特征子集;第二阶段采用LSH-SMOT技术对数据集进行预处理,获得大多数类和少数类之间的平衡;第三阶段通过WOA算法优化双向递归神经网络,使用优化后的BRNN对预处理后的数据集进行分类. 实验结果表明,本文算法能够处理极不平衡的大数据集,获得高精度的分类结果.