非平衡数据集的分类_付优
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第25卷 第4期2010年8月 电力学报
JO U RN A L O F ELECT RIC PO W ER
V o l.25N o.4
Aug.2010
文章编号: 1005-6548(2010)04-0349-04
非平衡数据集的分类
付 优
(山西建筑职业技术学院,太原030006)
摘 要:非平衡数据集在金融、商业以及学术的研究等诸多的领域有着广泛的应用,主要研究的是对于非平衡数据集的处理和分类问题,首先使用了Sm ot e算法对于非平衡数据集进行平衡化处理,然后采用Weka软件中提供的分类算法建立分类模型,最后与没有进行预处理而建立的分类模型进行分析和比较,验证了Smot e算法对于非平衡数据集分类的必要性,同时也指出有待于进一步的改进。
关键词:非平衡数据集;Smo te算法;Weka软件;分类算法
中图分类号:T P301.6 文献标识码:A
随着计算机网络的发展和普及,网络上的数据量越来越繁重。因此网络上的数据安全也就成为了计算机安全领域的一个令人关注的问题。网络上的数据纷繁复杂,而且对于网络安全的研究来说,海量的网络数据中不安全的数据信息仅占很少的部分,这就涉及到了非平衡数据集的问题。顾名思义,非平衡数据集就是指所研究的数据集里的种类差别很大,例如在网站的日志记录里,非法的登录日志和合法的登录日志相比,差别是非常大的,而我们所研究的却是占很少比例的非法登录日志,来确保计算机网络坏境的安全。
1 非平衡数据集
在本文中,采用了KDD C UP'99DATASE T 作为研究的对象,该数据集是由训练数据集和测试数据集两个部分所组成,而且在数据集中不同的攻击类别的分布差别是非常大的,训练集和测试集中的不同的类别的样本数和类分布就如表1所示,在表中有四种攻击类别,分别是dos,r2l,u2r和probe,其中norm al表示的是合法的网络访问。1.1 非平衡数据集的处理
对于非平衡数据集的处理,我们想到的最为简单,也最为直观的解决办法是改变所研究的数据集的类分布状况,把非平衡的数据集能够处理为一般的数据集,通常采用的方法就是有两种,一种是向上抽样[1](Over-sampling),另外一种方法是向下抽样[2](U nde r-sampling)。向上抽样就是采用复制少数类目标的办法来达到数据集平衡化的状态,而向下抽样则是采用删除其多数类的办法来达到数据集平衡化的状态。但是经过这样处理过后,数据集虽然能够用一般的分类算法来进行处理,可他们却从不同的角度改变了初始数据集的类分布状态,而且复制少数类目标也扩大了训练集的规模,同时延长了训练集学习所用的时间,而人为的删除多数类的行为又会产生分类器对于训练所用的数据集的过分拟合的问题。因此,这两种方法都并不是太理想的。
表1 数据集及其类分布
训练集测试集
样本数类分布/%样本数类分布/% no rmal97278119.8596059319.481
dos388337079.29822985373.901 probe411020.83941661.339
u2r520.0012280.073
r2l11260.023161895.205
1.2 Smote算法
目前,研究者们对于上述的两种抽样的技术都相继的提出了一些改进的方法,例如Under-sam-pling[3]策略,它就是使用了智能化的方法删除了训练集中那些概念空间中所出现的多余或者是接近于稀有类空间的多数类的实例的一种策略。而本文中
*收稿日期:2010-04-20
作者简介:付 优(1984-),女,助教,主要研究方向为计算机应用技术,(E-m ail)fuyou0727@ DOI:10.13357/ ki.jep.001862
采用的Smo te(Sy nthetic Minority Over-sampling Technique)算法就是一种改进的Over-sam pling策略,具体就是通过了对于少数类的样本的人工合成来提高少数类样本的所占的比例问题,从而降低了数据集中的过度倾斜的问题。Smo te算法使Chaw-la等人在文献[4]中所提出的,具体的算法思想就是:
设少数类的样本数为B,增加样本后样本增长n倍,最近邻点数为k,主要的处理步骤如下:
①计算数据集中的每个少数类别的k个最近的多数类邻点;
②)随机抽取出少数类样本i的k个最近多数类邻点中的一个多数类样本j;
③计算出少数类样本i与最近的多数类邻点样本j的全部属性的差值Q:
Q=dsample[j][attr]-sample[i][attr],
其中:dsample[][]指最近的多数类邻居样本; sam ple[][]指少数类样本。
④产生了一个介于0与1之间的随机数;
⑤合成生成少数类的合成样本Sy nthetic[l] [attr]:
Synthetic[l][attr]=sample[i][attr]+gap*b;
⑥重复进行步骤②~⑤,直至使产的生少数类样本i合成n倍个样本为止;重复进行步骤②~⑥,直至所有的少数类样本都被处理完毕为止。
经过了本文试验的验证,Smo te算法对于非平衡数据的处理来说是非常必要的,确信了Sm ote算法的确在很大的程度上能够弥补传统的抽样算法的缺陷,对于非平衡数据集的研究有一定的帮助。
1.3 评价标准
我们在非平衡数据集的处理和建立分类模型之后,采用什么样的评价标准来进行评估,这也是非平衡数据集学习的一个重要的问题。一般的在分类问题中采用的评估标准有:预测的准确率、强壮性、可规模性、速度及其可解释性。其中的预测准确率是通常用来评价一个分类器建立的分类模型的好坏问题,但是在非平衡数据集中,它们关注的侧重点就发生了变化,仅仅使用准确率进行评估是不太恰当的,因为在非平衡数据集的学习中,更侧重于少数的目标类的正确分类率上,因此就引入了如下的评估标准:召回率(Recall)、精度(Precisio n)和F-measure。
假定仅仅考虑正常和异常的两类实例的二元分类问题的话,假设评估所用的测试集D有m条数据记录,其中C是表示的异常类,NC表示的是正常类,那么可以根据分类器得出测试的预测类标号和其实际的类标号,是如表2所示的一个含混矩阵(Confusion M atrix)。其中异常类的样本总数就是n c=n00+n01,正常类的样本总数就是n nc=n10+ n11。TP表示了被正确分类的异常样本数,FP表示了被错误的分类为异常样本的正常样本数,TN表示了被正确分类的正常样本数,FN表示了被错误的分类为正常样本的异常样本数。在表2中的n ij 的不同的组合就能够构成了分类器性能评价的不同的评估标准。本文实验中采用了这种评估标准,从不同的角度上来比较和分析,评估分类模型的优劣问题。
表2 含混矩阵
预测为C类预测为NC类
实际为C类(T P)n00(F N)n01n c
实际为N C类(FP)n10(T N)n11n nc 总数n0=n00+n10n1=n01+n11n
其中,本文采用的分类评估标准的定义如下:定义1 召回率(Recall):在实际为少数目标类的所有样本数量中,被正确分类的样本数量所占的
百分比。R c=
n00
n00+n01
。
定义2 精度(Precision):在预测为少数目标类的所有样本数中,被正确分类的样本数所占的百分比。P c=
n00
n00+n10
。
定义3 F-measure:F cλ=
1
λ1
R c
+(1-λ)1
P c
,其中0≤λ≤1,λ就是对目标类的召回率R c和精确率P c的关注权重因子,一般取的是等同的权重,即λ=0.5。
2 非平衡数据集的实验
本文是在Weka开发平台上进行的非平衡数据集的实验,Weka是基于java语言的一种开源软件,用于海量数据学习和知识攫取分析的一个实验平台。在Weka中有大量的能承担海量数据分析的机器学习算法,也包括了对于数据集的预处理问题。
350电力学报 第25卷