基于最小化损失学习的不平衡样本分类方法与流程

文档序号:13446889阅读:201来源:国知局

本发明属于数据分类技术领域,具体涉及一种不平衡样本分类方法。



背景技术:

随着移动互联网技术的兴起,越来越多的原始数据被收集起来用于分析与挖掘,其中很多领域内的数据是严重不平衡的,即属于不同类别的样本数量相差极为悬殊。传统的机器学习方法通常采用全局分类准确率作为训练目标,在不平衡数据集上表现欠佳,所以不平衡数据分类算法也逐渐成为一个受人关注的课题。

根据现有的研究成果,经典的解决不平衡数据集的主要方法可以总结为以下几种:

(1)原始训练数据重构:通过重采样技术改变多数类或少数类样本的数目,从而使原始数据变得相对平衡;

(2)集成学习方法:训练多个弱分类器,最后通过投票或权值相加的方法得出分类结果,通常在训练过程中通过权值改变或原始数据集分割来解决不平衡问题;

(3)代价敏感学习方法:改变原始数据在评判标准中的权值,通常使用人为设定的敏感代价矩阵来协助计算分类损失,以解决不平衡问题。

传统分类器优化算法有一个共同的特点,就是针对不平衡样本分类问题,它们不再是像经典不平衡处理方法那样针对不平衡的数据集进行一些平衡化的调整,它们的主要思想是通过修改分类器的训练过程或者分类过程来适应不平衡的数据集,既通过优化算法的训练过程来减轻不平衡分布对训练过程的影响,或者采用正常的训练思路训练模型后,通过一系列其他过程进行对模型的调整,又或是得到普通的模型之后在分类阶段采用与经典分类阶段不同的方法来解决不平衡问题。

传统分类算法是无法直接用于不平衡样本分类问题的,而对于经典的不平衡样本分类算法,其通常的思路都很直观,大都是直接作用于数据集上,无论是直接改变数据集中样本的权值分布,还是通过某种特殊的方法来增删数据集中的各类的样本,最后都是为了让原始的不平衡数据集可以达到一个相对平衡的状态,最后便可以应用传统的分类方法来解决原始问题。

众所周知,传统的分类方法其根本思想都是通过对训练样本空间进行一致性假设的归纳,既归纳偏置,从而可以对整个样本空间中未出现过的样本进行预测,对于不同的分类器来说,只不过是它们采用的vc维(vapnikchervonenkisdimension)函数,以及偏置条件不同。

不幸的是经典不平衡分类算法恰好与传统机器学习的思想相左,由于经典不平衡分类算法大多是通过改变原始样本分布来解决不平衡问题的,而传统机器学习算法是建立在训练数据与真实数据是独立同分布的基础上的,如果改变了训练数据的分布,完全可能对结果产生未知的影响。虽然这一种影响对于一些判别模型的影响还达不到可以破坏整个模型效果的级别,但是可以肯定的是,这一定会影响模型的决策过程。而且这种影响对真实空间的最终预测过程是偏向好的方向还是坏的方向通常是无法判断的,尤其是对一些有随机过程参与的算法,如smote算法等,其改变分布的情况更为严重,即使使用交叉验证的方法来训练模型,也会造成多次试验中平均的分类准确率或分类f1值都会波动相对较大。



技术实现要素:

为解决现有技术中存在的问题,本发明设计了一种直接以f1值为训练目标的算法来解决不平衡数据集分类问题,并取得了不错的效果。

本发明具体通过如下技术方案实现:

一种基于最小化损失学习的不平衡样本分类方法,应用于人工神经网络模型中,其特征在于:所述方法包括:

s1:设置学习率η、最大迭代次数m、隐藏节点数目l和目标f1值f,输入样本集合

s2:对输入—隐藏层连接系数矩阵ωkl和隐藏—输出层连接系数向量θl进行初始化,每一个分量范围为(-0.1,0.1);令ωkl′←0、θl′←0、f′←0;

s3:根据现有模型对样本集合对样本集合求解并求解当前f1值fnow;

s4:如果fnow>f,则返回当前ωkl、θl;否则执行s5;

s5:如果fnow>f′,则ωkl′←ωkl,θl′←θl;

s6:根据下式(a)与(b)更新θl,根据下式(c)更新ωkl,

s7:回到步骤s3,直到迭代次数达到m;

s8:返回ωkl′、θl′;

s9:利用优化后的人工神经网络模型对不平衡样本进行分类。

附图说明

图1是数据集概率密度曲线示意图。

具体实施方式

下面结合附图说明及具体实施方式对本发明进一步说明。

本发明设计了一种通过以评价标准为目标从而直接对模型训练的方法,下面首先介绍最大化f1值训练法的基本思想以及该方法为何可以应用于不平衡数据集分类问题。

假设当前的数据集是一维不平衡数据集,包含多数类与少数类两种样本,概率密度曲线如图1所示,并假设多数类与少数类的样本比例为n:1,其中n>1。显然以传统分类器的基本思想既以最大化全局准确率为最终训练目标,对于两类的边界部分,即使其概率密度大小相似,但是因为多数类与少数类样本基数不同,所以边界部分的多数类样本个数会远多于少数类的样本个数,最终分类界线极有可能在图中线b的位置附近,处于偏向少数类的一侧。

而经典的不平衡数据集分类算法的思想是直接采用某种方法强行的缩小多数类与少数类之间的样本比值,通常会使两类的样本点数目达到相同或十分接近,然后应用传统分类算法时,如果原始数据集的概率密度曲线还是如图1所示,由于已经不存在两类样本基数不同这一问题,所以使全局分类准确率最高的分类界限应该是图中的线a。这条线是以两类概率密度曲线交点的横坐标作为分界阈值,分界线左边的少数类与右边的多数类为错分样本,由面积法易证,此时分类错误样本数最小。

然而由于样本空间的改变,我们只能认为该解(线a)是当前改变后的样本空间中最佳分类线,并不能确定该分界点是否也是原数据集上的最佳点,对于不平衡样本分类问题,在原始数据集上通常采用f1值等复合评价标准来评价最终分类效果的好坏,而经典不平衡样本分类方法通常只能使原始空间的不平衡分类评价指标有所上升,即使不采用正则项降低过拟合,通常也无法证明该解一定是该原始样本空间中的最优解或者一个极优解。

对于图1的数据集来说,由于它是一维数据,如果比例n固定的话,我们可以知道使该数据集的最终f1值达到最大的分界点一定只有一个,并且是可解的。本发明提出的方法便是基于该思路,跳过了经典算法中改变原始数据集分布的这一过程,直接寻找可以使原始数据集最终分类结果达到最大f1值的分类界限。对于一维问题,其求解方法显然很容易,而对于超过一维的问题并且需要基于传统分类算法设计求解该归纳偏置的时候,该问题的规模将指数上升,因此本发明设计了基于最小化损失学习算法思路的解决方法来解决此问题。

本发明中选取了f1这一最经典的复合评价标准作为优化目标,所以可以将损失函数设置为(1-f1)值。训练样本的特征集合和目标输出集合假设h由对单个样本的假设h:x→y变为了对所有训练样本的整体假设h:对应了所有样本输入以及所有的分类器输出。对于神经网络的训练,损失值最小和f1值最大其实是一样的,只要将梯度前的符号进行改变即可,所以这里将最小化损失的概念扩充到了最大化目标函数:

其中为所有假设空间,如式(6)所示,为对样本的假设。我们依然使用如式(2)中所示传统神经网络的sgn函数作为最终分类标准,对于整个训练集上的输出我们用来表示,而目标输出依然用来表示。为了用表示最终的f1值,首先需要求出召回率(recall)与精确率(precision),根据混淆矩阵与之间的关系,可以得出混淆矩阵中的参数tp满足式(3),并且可以将召回率公式转化为式(4)的形式,而精确率公式便可以变为式(5)的形式。所以最终的f1值可以表示为式(6)的形式。

然而观察式(6)可以发现因为都是0与1组成的序列,虽然可以通过表示出整个训练集的训练目标,但是由于求解的过程中包含了一步sgn(h(x))的操作,所以该f1值仍然是离散的,并无法与神经网络输出以及各个节点间的连接层建立直接的数值联系。在结构化支持向量机中求解任意目标函数时采用的是空间遍历以及双重优化的思路,也因此需要耗费巨量的时间,而在本发明的算法中,我们放弃了这一思路,转而采用神经网络输出层sigmod函数特有的式概率性的性质来将与h(x)建立起联系。

本发明的算法利用神经网络训练过程是采取先将使用当前状态的网络进行分类,然后求解损失并对此损失进行优化已达到下一更优状态这一思想,将训练中的评价过程进行变换,不再使用当前状态下神经网络的具体分类结果,而是采用当前输出的形如式(8)的概率求解损失的期望值,并对期望值进行优化,这样既可以建立输出和参数与目标间的直接联系,也可以通过优化期望值来增加目标获取更高值的概率,这样不失训练的意义。

然而建立期望联系我们并不能采用精确求解过程,首先是因为精确求解需要耗费的时间,这有悖于本发明设计快速算法的初衷,其次可以看到精确求解算法最后求解出的状态—概率空间已经无法存储每一样本对其的贡献,也就是无法直接建立期望与样本之间的关系,所以也无法直接建立期望与神经网络权值之间的关系,为了解决这两个主要问题,本发明采用式(7)中的近似关系。

p(y=1|x;θm,ωnm)≈h(x)(8)

e(xy)=e(x)e(y)+e((x-e(x))(y-e(y)))(9)

由于有期望与协方差的关系(9),所以,对于式(7)中的分子分母分别取期望,分子的期望便如式中右侧的分子的形式,而分母的期望由于后续反向传播算法中希望可以对有所样本都可以带入,而不是对于一部分样本会舍去分类器输出,所以继续采用的平方的形式而不是直接期望的形式,但是即使取平方由于最终将会接近于0或1,所以其整体值是接近的。而对于式(9)中的后一项两个变量的协方差,我们可以发现x与y均为它们分别在分子与分母,所以x与y的变化趋势相反,根绝协方差的性质,可以认为协方差将一直为0,所以有关系(10),当算法不断优化右方的近似值的同时,由于期望值为近似值的上界并且相对接近,所以也可以不断使期望扩大,收敛于一个全局最优解或者局部极优解,已达到训练目的。

综上,我们便将原始的神经网络训练目标h:x→y完全转变为了式的形式,并根据不平衡样本分类评价标准中常用的f1值进行了目标函数的设计,然后将离散函数近似为一个连续函数,使该函数可以完美的与每个训练集样本输出建立联系,进而与神经网络参数建立联系,并且证明了神经网络的训练过程中可以在优化该近似函数的同时优化整个训练集上的最终f1值,满足最初的设计思想。

上文中已将介绍了本发明的算法解决不平衡问题的特定目标函数最大化的思想,并利用不平衡样本分类的评价标准构建了应用于训练集的关于整体f1值的目标函数,之后,我们将最大化f1值算法应用到了人工神经网络(ann)模型中,对于神经网络模型,其最常用的有效权值策略便是反向传播算法,由于本算法的最终结果将目标函数训练到最大值,所以其更新过程如式(11)与(12)所示。其中η代表了学习率,其大小影响了神经网络的收敛速度以及收敛精度,偶尔也可能会影响到最终收敛于哪一个极优解附近。

所以为了求解出每一个权值的更新量,我们需要求解出整个目标函数f1对于每一个节点中每一个参数的偏微分,对于输出节点:

其中netj代表节点j的内积结果通过sigmod函数前的结果,而oj为netj经过sigmod函数处理后的结果。对于隐藏节点更新量,这里并没有办法直接使用目标函数求解,所以要根据每个隐藏节点的下游节点来更新其连接参数,其更新方案如式(15)所示。由于本算法为二分类问题,所以输出节点也就是netk只有一个,可以得到式(16)的形式,其中δk为输出节点的偏微分ωkj为节点k的第j个分量(j=1,…,l),也就是输出节点与第j个隐藏节点之间的连接权值,downstream为一个隐藏层节点的所有下游节点结合。

本发明的算法具体过程如下所示。

算法1最小化损失神经网络

θl和ωkl都是神经网络模型中的参数,其更新方式都是如(11)(12)中通过梯度下降法进行更新,即每次加上输出层偏差对每个节点的偏导数得到(这里的ωkl与θl在形式上是可以替换的,都是按这个方程进行计算)。(13)和(14)即是对于输出层参数θ求得的偏微分,计算方式就是

为了对该算法的有效性进行验证,本发明做了以下对比实验。实验数据集均来自于uci机器学习数据集,对于数据集的选取过程,主要是选取那些在其他不平衡数据集分类算法研究中出现过的数据集,共以下8个数据集,其参数如下表1所示。

表1数据集参数表

本发明采用了smote算法、adaboost算法、结构化支持向量机算法(ssvm)、经典神经网络算法(ann)、敏感代价学习算法(scl)以及本发明的算法(ml-ann)进行了对比,其结果如表2所示。

表2不同算法在8个数据集上交叉验证f1值

由上表可见,本发明的算法在不平衡数据集分类算法上取得了一定的成功,其结果通常优于以往的算法。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1