职场文秘网

首页 > 心得体会 > 学习材料 / 正文

面向分类模型学习的样本类别均衡化方法

2023-02-04 11:10:10

李国和 刘顺欣 张予杰 郑艺峰 洪云峰 周晓明

1(中国石油大学(北京)石油数据挖掘北京市重点实验室 北京 102249) 2(中国石油大学(北京)信息科学与工程学院 北京 102249) 3(塔里木油田克拉油气开发部 新疆 库尔勒 841000) 4(中国反侵权假冒创新战略联盟 浙江 杭州 310010) 5(厦门瀚影物联网应用研究院 福建 厦门 361021)

类别不均衡数据广泛存在于生产生活中,如医疗诊断、信用卡欺诈和文本分类等[1-3],直接采用此类数据进行学习建模,少数类样本稀少,模型难以获取数据空间分布的内部真实规律,存在潜在分类偏好,从而导致分类精度降低,因此,对此类数据的均衡化处理受到关注。

类别均衡化方法主要在算法层面或数据层面进行,以提升对少数类样本识别率。在算法层面,主要是改进分类算法或设计对不均衡分布不敏感的新算法,如代价敏感学习[4]、单类学习[5]和集成学习[6]等。在数据层面,通过过采样(生成样本)或欠采样(删除样本)以均衡化样本类别分布。过采样通过复制或人工生成少数类样本,更多保留样本信息,得到广泛研究。随机过采样通过随机地复制少数类样本,方法简单,但存在大量重复样本,容易造成过拟合。为了避免过拟合问题,SMOTE算法[7]利用K近邻和线性插值生成少数类样本。这些样本的分布取决于所选择的样本(即种子样本)及其近邻样本(辅助样本)。如果种子样本或辅助样本为噪声样本,容易生成新的噪声样本。样本空间中处于边界的少数类样本具有更重要的信息,Borderline-SMOTE算法仅对边界样本进行SMOTE采样[8]。根据数据分布的自适应生成采样算法ADASYN[9],通过决定每个少数类样本的权重生成不同数量的样本。K-means SMOTE算法[10]通过K-means算法对原始样本进行聚类,并过滤少数类与多数类之比小于给定阈值的簇,在满足给定阈值的簇中使用SMOTE方法进行过采样。G-SMOTE算法[11]通过在每个种子样本周围的几何区域内生成新样本,扩大了样本的生成范围。FTL-SMOTE算法[12]利用SVM对数据集分类后,使用噪声样本识别三原则对噪声样本进行剔除,再对少数类进行采样。

上述方法根据少数类样本的分布特点生成少数类新样本,但主要存在以下问题:(1) 采用线性插值容易导致生成重复样本;
(2) 部分算法未考虑类内分布不均衡;
(3) 对边界样本进行采样可能使边界更加模糊。为此本文提出基于高斯混合模型和Jensen-Shannon(JS)散度的过采样方法GJ-RSMOTE,生成合理分布的少数类样本,完善样本空间。

1.1 高斯混合模型

中心极限定理证明了大量相互独立的随机变量的均值分布的极限是正态分布,即高斯分布。

(1) 单高斯模型。多维高斯分布的概率密度函数:

(1)

式中:μ和Σ分别表示d维随机变量X的均值向量和协方差矩阵。

(2) 高斯混合模型。高斯混合模型(Gaussian Mixture Model,GMM)为若干个单高斯模型按一定比例组合而成的模型,可近似地模拟出任意分布,其定义如下:

(2)

式中:C为高斯混合模型中子模型的个数;
αc为第c个子模型的权重;
μc和Σc分别表示第c个子模型的均值向量和协方差矩阵;
P(x|μc,Σc)为第c个子模型的概率密度函数,即单高斯模型。

对GMM的概率估计就是对参数αc、μc和Σc的求解,如EM(Expectation Maximization)算法[13]。

1.2 Jensen-Shannon散度

1) KL散度。KL散度(Kullback-Leibler Divergence)(又称KL距离或相对熵)用于度量两个概率分布之间的差异。设P1、P2为随机变量X上两个概率分布,当X为离散型随机变量时,KL散度计算式表示为:

(3)

当X为连续型随机变量时,KL散度表示为:

(4)

KL散度具有如下两个性质:

(1) 非负性:KL(P1‖P2)≥0

(2) 不对称性:KL(P1‖P2)≠KL(P1‖P2)

由上述性质可知,如果两个概率分布P1、P2越相似,则KL散度值越小;
当P1=P2时,KL散度值为0。

2) JS散度。在KL散度基础上,定义JS散度(Jensen-Shannon divergence)[14]描述两个概率分布的近似程度,其计算式表示为:

(5)

式中:M=(P1+P2)/2。

JS散度具有如下两个性质:

(1) 对称性:JS(P1‖P2)=JS(P2‖P1)

(2) 有界性:0≤JS(P1‖P2)≤1

由上述性质可知,如果两个概率分布P1、P2越相似,则JS散度值越小。当P1=P2时,JS散度值为0。

基于GMM和JS散度的过采样过程包括:(1) 利用高斯混合模型对少数类进行聚类;
(2) 根据簇的密度为每个簇分配采样数量;
(3) 以簇为单位,根据样本权重选择种子样本,并以种子样本的K近邻中多数类的分布选择不同的半径,在超球体范围内生成样本;
(4) 根据JS散度的阈值控制采样的数量,加速采样过程。

2.1 少数类样本聚类

为了采样后的新样本更加符合数据的真实分布,利用GMM对少数类样本进行建模。通过赤池信息量准则(Akaike Information Criterion,AIC)[15]确定子模型的个数C。

2.2 采样数量设定

由GMM得到C个少数类簇,针对每个簇在样本空间中的范围及密度不同导致类内不均衡,对稀疏的簇采样较多的样本,提高识别率,而对于密集的簇,采样较少的样本,减少过拟合风险。记第C个少数类簇为Clustc(c=1,2,…,C),其密度由簇中样本数量和样本之间的欧氏距离确定:

(6)

式中:numc为Clustc中样本的数量;
d为样本维数;
aveDistc为Clustc中两两样本之间的欧氏距离的平均值。

Clustc的稀疏度sparsityc:

(7)

Clustc的采样率Rc与densityc成反比,与sparsityc成正比。对sparsityc归一化,可得到Clustc的采样率Rc:

(8)

总的采样数量为numsample_sum:

numsample_sum=nummaj-nummin

(9)

即多数类样本数量nummaj减去少数类样本nummin数量。

Clustc的采样数量numsample_c:

numsample_c=numsample_sum×Rc

(10)

2.3 少数类样本生成

生成样本由种子样本和辅助样本共同决定。为了保证样本多样性,拓宽少数类样本的潜在区域,以种子样本为中心,在一定半径超球体内生成样本。

1) 选择种子样本。对于簇Clustc,记第i个样本xc_i被选为种子样本的概率为pc_i:

(11)

(12)

式中:d为样本特征的维数;
μc、Σc和numc分别为第c个簇的均值向量、协方差矩阵和样本个数。

由式(11)可知,如果样本距离聚类中心越近,则其权重越大,被选择作为种子样本xseed的概率也越大,反之亦然。

2) 确定少数类样本生成范围(半径)。根据种子样本K近邻中是否存在多数类样本进行判断,分两种情况:

(1) 如果种子样本xseed的K个近邻样本的标签全为少数类,则选择K个近邻样本中距离xseed最远的样本作为辅助样本xsup,xseed与xsup的距离dist(xseed,xsup)作为半径r。此时,r值较大,避免生成的少数类样本的局限性。

(2) 如果种子样本的K个近邻中存在多数类样本,则选择距离xseed最近的多数类样本作为辅助样本xsup,xseed与xsup的距离dist(xseed,xsup),以dist(xseed,xsup)/2作为半径r。此时,r值较小,避免少数类样本落入多数类样本区域中。

3) 生成少数类样本。在确定了种子样本xseed和半径r之后,可通过算法RSMOTE生成样本,具体过程如算法1所示。

算法1RSMOTE

输入:种子样本xseed,半径r。

输出:新样本xnew。

1.生成一个随机的d维向量vnorm,每一维服从标准正态分布N(0,1);

2.vnorm除以自身的模得到单位向量vunit;

3.对半径r进行缩放得到rscale=r×rand(0,1);

4.对vunit进行缩放和平移得到新样本。

xnew=xseed+vunit×rscale

2.4 JS散度阈值计算

通过JS散度评价均衡化程度,提前终止过采样过程。P1、P2为d维随机变量X上两个概率分布,记第f个特征上JS散度为JS(P1f‖P2f),其中,P1f、P2f为第f特征上的概率分布。P1、P2之间的JS散度JSd(P1‖P2):

(13)

原始样本概率分布P0,第j次采样后概率分布Pj(j=1,2,…,numsample_sum),P0与Pj之间的JS散度为JSd(Pj‖P0)。随着过采样过程进行,JSd(Pj‖P0)逐渐增大,意味着样本分布差异在扩大。为了保持少数类的分布特性,定义阈值为tjs,当JSd(Pj‖P0)>tjs,提前终止采样过程。

2.5 过采样过程

过采样算法GJ-RSMOTE的完整流程如算法2所示。

算法2基于高斯混合模型和JS散度的过采样算法GJ-RSMOTE

输入:采样前的训练集rawTrain,近邻个数K,聚类个数C,阈值tjs。

输出:采样后的训练集sampledTrain。

1.初始化簇的稀疏度集合sparsity、新样本集合newData、种子样本概率集合probseed;

2.利用GMM对少数类样本进行聚类;

3.Forc=1,2,…,Cdo

//对少数类每个簇

4.利用式(6)和式(7)得到第c个簇的稀疏度sparsityc;

5.添加sparsityc至集合sparsity;

6.利用式(11)和式(12)得到第c个簇的种子样本概率集合probc;

7.添加probc至集合probseed;

8.End for

9.利用式(8)得到采样率集合R;

10.利用式(9)得到总的采样数量numsample_sum;

11.Forc=1,2,…,Cdo

//对少数类每个簇

12.利用式(10)得到第c个簇的采样数量numsample_c;

13.Forj=1,2,…,numsample_cdo

14.依概率分布probc得到种子样本xseed;

15.半径选择策略得到半径r;

16.利用算法RSMOTE生成新样本xnew;

17.添加xnew至集合newData;

18.利用式(13)得到Pj与P0之间的JS散度JSd(Pj‖P0);

19.IfJSd(Pj‖P0)>tjs:

20.Break;

//采样过程提前终止

21.End for

22.End for

23.sampledTrain=clearTrain∪newData;

24.ReturnsampledTrain;

3.1 实验数据基础

9个数据集来自UCI数据库(如表1所示),其中不均衡度是指多数类样本数与少数类类样本数的比值。不均衡度范围在(1,3]、(3,6]、(6,9]和(9,+∞)分别定义为“低”“中”“高”和“极高”四个等级。每个数据集每次采用10折交叉验证,即数据集被随机地分为等额的10份,其中9份作为训练集,结合过采样算法并训练分类器,剩下的1份作为测试集,重复10次实验,以10×10次实验结果平均值作为最终结果。算法参数的实验以决策树C4.5为分类器,对比实验以C4.5和SVM作为分类器。以Python为开发语言。硬件环境为CPU:Intel(R) Core(TM) i7- 8750H;
内存:8 GB。

3.2 评价指标

使用混淆矩阵的准确率(Accuracy)、F1-measure、G-mean和AUC评估分类效果。混淆矩阵如表2所示,其中:TP、TN分别表示实际正确类别的正类样本数量和负类样本数量;
FP、FN分别表示实际错误类别的正类样本数量和负类样本数量。

表2 混淆矩阵

F1-measure是召回率Recall和精确率Precision的调和平均值:

G-mean为召回率和真负率(TNR)的几何平均值:

ROC为受试者工作特征曲线,其与坐标围成的面积(AUC)评价分类效果,以上评价指标的取值范围均在[0,1]内,值越大则分类效果越好。

3.3 实验参数设定

GJ-RSMOTE参数包括近邻K值和阈值tjs。

(1) 近邻参数K。在Harberman、Vehicle和Page数据集上对近邻参数K进行效果验证。数据集不均衡等级分别为“低”“中”和“高”,采用G-mean和AUC作为评价指标。K取值范围为[3,8],步长为1,实验结果如图1至图3所示。可以看出,对于同一个数据集,随着K值的增加,G-mean和AUC呈现相同的变化趋势;
对于不同数据集,评价指标取最优值时K的取值不同。K的取值范围为3~8之间。

(2) 阈值tjs。Ecoli、Page和Yeast- 02579数据集上对阈值tjs进行效果验证。数据集不均衡等级分别为“高”“高”和“极高”,采用G-mean和AUC作为评价指标,实验结果如图4-图9所示。除了对比评价指标G-mean和AUC外,还比较了在不同阈值tjs下,采样及训练模型的平均时间。

从图4和图5中可以看出,Ecoli数据集在tjs=0.024之后的时间不发生变化,而在tjs=0.018时分类效果上升缓慢。由图6和图7可知,Page数据集在tjs=0.028时,分类效果达到最优。由图8和图9可知,Yeast- 02579数据集在tjs=0.016时分类效果达到最优。综上所述,tjs阈值越大,则最终采样的样本数越多,运行时间越长。因此,选择合适的tjs能在保证分类效果的同时减少训练时间。

3.4 实验结果对比

为了验证GJ-RSMOTE的有效性,将其与SMOTE、Borderline-SMOTE、K-means SMOTE和G-SMOTE进行对比,并采用准确率、F1-measure、G-mean和AUC为评价指标。分类器使用C4.5和SVM,SVM的核函数为高斯核。实验结果如表3-表10所示。为了便于观察与分析,每个数值均放大了100倍,算法Borderline-SMOTE、K-means SMOTE、G-SMOTE和GJ-RSMOTE分别用缩写B-S、K-S、G-S和GJ-S代替,数据集Harberman、Spectf_heart、Segment和Yeast- 02579分别用缩写Har、Spe、Seg和Y02579代替,每组数据集的评价指标的最优值加粗表示。

表4 过采样算法在C4.5上的F1-measure对比(%)

表5 过采样算法在C4.5上的G-mean对比(%)

表6 过采样算法在C4.5上的AUC对比(%)

续表6

表7 过采样算法在SVM上的准确率对比(%)

表8 过采样算法在SVM上的F1-measure对比(%)

表9 过采样算法在SVM上的G-mean对比(%)

续表9

表10 过采样算法在SVM上的AUC对比(%)

在表3中,GJ-RSMOTE算法在6个数据集上的准确率最佳。在表4中,GJ-RSMOTE算法在7个数据集上的F1-measure值最佳。值得注意的是,Borderline-SMOTE算法在Seg数据集上F1-measure值最优,但在Hab、Page和Y02579数据集上F1-measure值比原始数据上效果还差。在表5中,GJ-RSMOTE在8个数据集上G-mean最优,而Borderline-SMOTE在Hab、Page、Y02579数据集上G-mean比原始数据集上效果差。在表6中,GJ-RSMOTE算法在8个数据集上AUC值最优,而Borderline-SMOTE在Hab、Page和Y02579数据集上AUC比原始数据集上效果差。说明Borderline-SMOTE使用边界过采样有一定的风险使边界模糊,加大学习器的学习难度。在表7中,GJ-RSMOTE在6个数据集上的准确率得分第一。在表8中,GJ-RSMOTE在6个数据集上的F-measure得分最佳。在表9中,GJ-RSMOTE在7个数据集上G-mean最优。在表10中,GJ-RSMOTE算法在7个数据集上AUC值最佳。GJ-RSMOTE同时考虑样本的整体分布与局部分布,使得生成的样本在样本空间中有较为合理的分布,对于各种不平衡度数据集的分类性能均有一定提升。

监督学习是机器学习重要分支,其根据学习算法从有监督数据集中自动获取分类模型的过程。如果有监督数据集中样本的标签类别分布极度不均衡,即有些标签样本极少,将会导致分类模型过度偏好,从而降低少数类样本的识别率。为了最终提高分类器的分类效果,需要对类别极度不均衡的训练样本集进行均衡化预处理。采用过采样生成少数类样本,其关键完善合理的样本空间分布。为了有效解决少数类样本类内不均衡,GJ-RSMOTE利用高斯混合模型对少数类进行聚类,并根据簇的密度分配采样数量,并在一定半径范围内的超球体中生成少数类新样本,增大生成样本的多样性,降低学习过拟合。此外,利用Jensen-Shannon散度控制最终生成样本的数量,从而达到加速采样过程的目的。GJ-RSMOTE与其他均衡化算法对比,在各种不均衡度的数据集上具有良好的适应性,有效地提升均衡效果,均衡化后的数据集用于分类学习表现良好。关于均衡化参数的选择需通过实验确定,下一步将研究均衡化参数的自适应选取。

猜你喜欢 均衡化集上阈值 关于短文本匹配的泛化性和迁移性的研究分析计算机研究与发展(2022年1期)2022-01-19土石坝坝体失稳破坏降水阈值的确定方法建材发展导向(2021年19期)2021-12-06基于小波变换阈值去噪算法的改进计算机仿真(2021年6期)2021-11-17基于互信息的多级特征选择算法计算机应用(2020年12期)2020-12-31采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值临床骨科杂志(2020年1期)2020-12-12基础教育均衡化的实施对于现阶段教育发展的重要性中小企业管理与科技·上旬刊(2016年12期)2017-01-05辽宁强对流天气物理量阈值探索统计分析Advances in Meteorological Science and Technology(2015年5期)2015-12-10师如明灯,清凉温润文苑(2015年9期)2015-09-10几道导数题引发的解题思考新课程学习·中(2013年3期)2013-06-14EDIUS 5.1音量均衡化数码影像时代(2009年8期)2009-09-07

Tags: 样本   均衡   模型  

搜索
网站分类
标签列表