不平衡数据的随机平衡采样bagging算法分类研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不平衡数据的随机平衡采样bagging算法分类研究
作者:季梦遥袁磊
来源:《贵州大学学报(自然科学版)》2017年第06期
摘要:不平衡数据广泛存在于现实世界中,严重影响了传统分类器的分类性能。本文提出了随机平衡采样算法(random balance sampling,RBS),并以此为基础提出了随机平衡采样bagging算法(RBSBagging)用于解决不平衡数据集的分类问题。最后,采用6组UCI数据集对提出的分类算法进行验证,结果表明本文提出的RBSBagging算法可以较好地解决不平衡数据集的分类问题。
关键词:不平衡数据;采样;bagging算法
中图分类号:TP311.11文献标识码: A在现实世界的应用领域中,不平衡数据广泛存在。例如:在故障诊断[1-2]中,故障的机率远远低于正常运行情况,此类情况还广泛分布于网络入侵[3-5]、疾病诊断[6-7]、信用卡欺骗[8-9]等。在分类问题中,分类对象的样本分布通常是不均匀的,即某一类的样本数目远远大于其他类的样本数目,称之为不平衡数据集。在不平衡数据集中,样本较少的类称之为少数类,样本较多的类称之为多数类,而且少数类通常包含更加重要的有用信息。然而,传统的机器学习算法大都基于样本的数据分布是均匀的,分类器对整体的预测准确性较高,但对少数有用信息的预测准确率却十分低。例如:网络入侵的历史数据中,只有1%的入侵记录,其余99%的非入侵记录。传统分类算法对所有网络运行分类为非入侵,其分类准确率可高达99%,但对1%的有用信息的分类准确率却十分低。因此,如何提高不平衡数据集有用信息的分类准确率成了机器学习领域的一个研究热点和难点。
目前,不平衡数据集的分类问题受到很多学者的关注。如,文献[10]提出采用随机抽取不平衡数据集中少数类的数据,增加至新数据集中,从而增加少数类在不平衡数据集中的比例,即随机过采样技术,但容易引起过拟合的问题[11-12]。隨机欠采样算法与文献[10]相反,即随机减少多数类的样本个数,但是其可能会造成有用多数类信息的丢失。集成分类学习算法是通过集成多个基分类器组成一个组合分类器,从而提高集成分类器的学习效果,最常用的是Boosting算法和bagging算法[13]。其中,bagging算法实现简单、泛化能力强,被广泛用于处理不平衡数据集问题,如OverBagging、UnderBagging、SMOTEBagging[14]等。但依然会存在着过拟合、信息丢失、学习时间过长等问题。为解决上述问题,本文提出了一种全新的数据再平衡算法——随机平衡数据采样算法(Random Balance Sampling,RBS),并将该采样算法与bagging算法相结合,构建了随机平衡采样bagging算法(RBSBagging),结果证明该算法可以很好地解决不平衡数据集的分类问题。
1数据定义与评价标准
为了便于描述,本文特做如下数据定义。n表示多数类(negative,负类样本),p表示少数类(positive,正类样本),m=n+p,p≥2。不平衡数据集不平衡率(imbalance ratio,IR=多数类个数/少数类个数=n/p)。原始数据集为S={(x1,y1),(x2,y2),…,(xm,ym)},原始训练集为St={(x1,y1),(x2,y2),…,(xt,yt)},原始测试集为
T={(x1,y1),(x2,y2),…,(xz,yz)},子训练集为Sk={(x1,y1),(x2,
y2),…,(xk,yk)},k
2随机平衡采样算法
2.1随机平衡采样数据集生成
过采样、欠采样、SMOTE算法都是通过不同程度地加入或减少少数类或多数类样本个数,从而达到重新再平衡不平衡数据集的采样算法。这几种算法对最佳新数据集的数据构成判断比较复杂,并且直接影响分类器的性能。为了克服该问题,本文提出了随机平衡采样算法,该算法是一种完全依靠随机率(random ration,RR)改变不平衡数据集不平衡率(imbalance ratio,IR=RR=多数类个数/少数类个数)的数据再平衡采样算法,其中RR的变化完全是随机的,如图1所示。从图1可以看出,原始不平衡数据集的RR=5,当循环次数T=2,3,…I时的RR完全是随机的,其中包括RR=8、RR=0.125和RR=4。
不平衡数据的随机平衡采样bagging算法分类研究随机平衡采样算法是一种随机改变IR的数据再平衡采样算法,其算法描述如下:输入:原数据集S={(x1,y1),(x2,y2),…,(xm,ym)},
yi∈Y={-1,+1},xi∈X∈Rn
输出:新的数据集S′
1. totalSize←S
2. SN←{(xi,yi)∈S|yi=-1}
3. SP←{(xi,yi)∈S|yi=+1}
4. majoritySize←SN
5. minoritySize←SP
6. newMajoritySize←[2,totalSize-2]之间的随意整数
//随机产生多数类;
7. newMinoritySize←totalSize ̄newMajoritySize
//随机产生少数类;
8. if newMajoritySize
9. S′←SP
10. S′←S′+newMajoritySize
11. S′←S′+SMOTe(newMinoritySize ̄MinoritySize)
//SMOTE(newMinoritySize ̄MinoritySize)表示用SMOTE
算法产生|newMinoritySize ̄MinoritySize|少数类样本;
12. else
13. S′←SN
14. S′←S′+newMinoritySize
15. S′←S′+SMOTE(newMajoritySize ̄MajoritySize)
//SMOTE(newMajoritySize ̄MajoritySize)表示用SMOTE
算法产生|newMajoritySize ̄MajoritySize|多数类样本;
16. end if
17. 输出S′可以看出,随机平衡采样并未改变不平衡数据集的大小,从而克服了欠采样算法丢失有用信息和SMOTE算法由于数据集的扩张导致学习时间加长的缺陷。
2.2理论支撑
随机平衡采样算法的主要目的是重新平衡原始的不平衡数据集,平衡后的数据集包含部分原始数据样本和人工合成的样本两部分。但是原始不平衡数据集中少数类或多数类入选平衡后的数据集的概率却不相同,其中少数类入选新数据集的概率为:
p+=1m-3∑p-1i=2ip+∑m-2i=p1