Computer Engineering a” ,fc口f Dn 计算机工程与应用 用于不均衡数据集分类的KNN算法 孙晓燕,张化祥,计华 SUN Xiaoyan,ZHANG Huaxiang,JI Hua 山东师范大学信息科学与工程学院,济南250014 Department of Information Science and Engineering,Shandong Normal University,Jinan 250014,China SUN Xiaoyan,ZHANG Huaxiang,Jl Hua.Improved KNN algorithm in classiicatifon of imbalanced data sets・Computer Engineering and Appfications,2011,47(28):143—145. Abstract:When the KNN algorithm is used to deal with imbalanced data sets,it has poor performance in the minoriy tclass prediction accuracy.An improved algorithm(G—KNN)is proposed to solve this problem.For the minority class samples, this algorithm uses the crossover operator and mutation operator to generate some of the new minority class samples.One new sample iS considered valid.only if its Euclidean distance to parent iS less than the maximum distance between parents. Then this valid sample is used to product the minority class samples in the next round of the process.The experimental re— sults,which are tested on the UCI data sets,show that this algorithm is superior to KNN algorithm in the application of ran— dom over-sampling in improving the classiicatifon accuracy of the minoriy cltass. Key words:imbalanced data sets;K-Nearest Neighbor(KNN)algorithm;over-sampling;crossover 摘要:针对KNN在处理不均衡数据集时,少数类分类精度不高的问题,提出了一种改进的算法G—KNN。该算法对少数类样本 使用交叉算子和变异算子生成部分新的少数类样本,若新生成的少数类样本到父代样本的欧几里德距离小于父代少数类之间的 最大距离,则认为是有效样本,并把这类样本加入到下轮产生少数类的过程中。在UCI数据集上进行测试,实验结果表明,该方 法与KNN算法中应用随机抽样相比,在提高少数类的分类精度方面取得了较好的效果。 关键词:不均衡数据集;K最近邻居(KNN)算法;过抽样;交叉算子 DOI:10.3778/j.issn.1002—8331.2011.28.039 文章编号:1002—8331(2011)28—0143.03 文献标识码:A 中图分类号 ̄TP391 近年来,不均衡数据集分类问题在机器学习和数据挖掘 方面引起了越来越多的关注。不均衡数据集,是指在一个数 据集中,某一类的样本占多数,而另外一类的样本占少数,占 易导致过学习。 基于以上的分析,本文提出了一种使用遗传算法中交叉 算子与变异算子产生少数类样本生成方法,属于一种过抽样 多数的类称为多数类,而占少数的类称为少数类 。传统的分 类算法预测倾向于多数类,而在实际问题中,少数类的分类精 度更为重要。因此,如何提高少数类的分类精度,成为机器学 习领域一个亟待解决的问题。目前,针对不均衡数据集分类 问题,解决方法有:(1)数据层方法,如代价敏感学习、集成学 习、单分类器方法等 ;(2)数据层方法,包括简单过抽样、欠 算法。当实例的属性值为连续数值型时,若两个实例之间的 欧几里德距离较小,可认为两个实例在空间分布中相近,即实 例类标相同的可能性较大。这个认识同KNN算法的隐含假 定相似。因此,本文在KNN算法中使用遗传算法中的交叉算 子和变异算子产生少数类,并对这部分少数类进行验证。若 新产生样本到父代样本距离小于父代之间最大的距离,则认 为是有效的样本,并将这部分样本加入到下轮产生少数类样 抽样算法及在此基础上提出的改进方法等 。 以上提出的方法,在很大程度上解决了不均衡数据集分 类问题,但仍存在一定的不足之处,如代价敏感学习中代价项 的设置、集成学习中权重的设置等存在不稳定性,过抽样算法 容易产生过度拟合等。KNN[7]作为一种简单的分类算法,它根 据待分类实例的邻近 个实例的类别,投票进行预测,而在不 均衡数据集中多数类比例较高,一个少数类的实例周围 个 近邻可能绝大部分为多数类,因此,它对少数类分类精度不 高。而简单的过抽样算法虽增加了少数类样本的数量,但容 本的过程中,直到产生满足要求的少数类个数,最后将新产生 的少数类样本和父代少数类加入到训练样本中,增加了训练 集中少数类的个数,有利于少数类的分类。因此该方法可以 提高KNN分类算法在处理不均衡数据集中少数类的分类性能。 1不均衡数据集分类问题评价标准 在评价传统的分类方法时,一般采用分类精度(式(1))来 表示。但是对于不均衡数据集而言,传统的分类算法预测会 基金项日:山东省自然科学基金(No.ZR2010FM021);山东省科技研究计划项目(No.2007ZZ17,No.2008GG10001015,No.2008B0026);山东省教 育厅科研项目(No.J09LG02)。 作者简介:孙晓燕,硕士,主要研究方向:机器学习、数据挖掘;张化祥,通讯作者,教授,博士生导师;计华,lg ̄,副教授。E-maihxiaomeixi1987@163.corn 收稿日期:2010—04—27;修回It期:2010.10—13 Computer Engineering andApplications计算机工程与应用 倾向于多数类,如果只是用分类精度来衡量算法的分类性能, 则有失公允。因此,对于不均衡数据集,需要更加合理的评价 标准 。表1所示为二分类问题时常用的混淆矩阵。将多数类 称为正类(Positive),而少数类称为反类(Negative),第一行与 类标相同的可能性大。在应用KNN算法时,参数 的选择一 般依经验而定。 2.2遗传算法 遗传算法 (Genetic Algorithm,GA)利用遗传算子产生 新一代种群实现种群优化。该算法被广泛应用到机器学>J、 模式识别、工程优化等领域。遗传算法中,最重要的是三个算 子的选择: 第二行分别表示真实的多数类样本和少数类样本数量。TP与 Ⅳ分别表示正确分类的多数类和少数类数量。刚表示真实 I类标是多数类却被分类器误分为少数类的数量,FP表示真实 类标是少数类而被误分为多数类的数量。F-valuet (式(6))综 合考察查全率(式(5))与查准率(式(4)),其中 是可调节参 数,一般取值为1。只有当查全率与查准率都增大时,F-value 值才会增加,因此它可以作为不均衡数据集中有效的评价准 (1)选择算子 选择是从当前种群中选择适应度高的个体来重组或交 叉,选择时需要根据每个个体的适应度来选择新的个体代替 父代个体。如轮盘赌算法,它根据个体的适应度,分别计算每 则。G—mean (式(7))是多数类分类精度(式(2))与少数类的 分类精度(式(3))乘积的平方根。显然,当Acc 与Acc这两个 值都大时,G-mean的值才会大。故,G—mean也可作为不均衡 数据集分类问题中合理的评价标准。 表1 二分类问题的混淆矩阵 分类精度: Accuracy=(丁P+刀、r)/(力’+TN+FP+FN) 多数类分类精度: Acc ̄=TP/(TP+FN) 少数类分类精度: Acc一=TN/(TN+FP) 查准率: Precision=TN/TN+FN 查全率: Recall=TN/TN+FP lue=.(1+fl2)*Precision*Recall *Recall*Precision G— 册: i 2基于KNN算法的少数类样本生成方法 2.1 KNN算法 KNN[ ](K-Nearest Neighbor)即 最近邻分类,是一种消 极学习方法,即该算法仅在需要时才计算每个新查询实例的 分类。对于一个新查询实例的最邻近是根据欧几里德距离计 算。例如,两个实例 、x 之问的距离定义为d(x ,xj),其中, 厂 ————一 d(x , )=f∑ 一1 )。,其中 表示实例 的第尼个属性。 =该算法思想可描述为: (1)对于每个待分类的每个样本 做以下步骤。 (2)计算待分类样本X 到训练实例D中每个样本 的距 离d(x , )。 (3)选取与待分类样本X 的 个距离最小的样本,并表示 为 l, 2,…,X 。 (4)待分类样本 的类标为X,,X 一,X 中最普遍的类标。 由以上的描述可以看出KNN是一种典型的基于类比的 算法,该算法在分类时隐含假定,在空间上距离相近的实例, 个个体的选择概率及累加概率,在每一轮随机选择【0,l】之间 的一个随机数,该随机数作为选择指针来确定被选个体。 (2)交叉算子 交叉即从父代个体中选择个体进行两两交换,产生新的 个体加入到种群中。如单点交叉,即对于父代个体1与父代个 体2,随机产生一个交叉点位置,、i、,父代个体1与父代个体2在交 、 、,\ ∽ 叉点之后的基因部分进行互换,形成子代个体1与子代个体2。 (3)变异算子 变异即新产生的子代个体以很小的概率发生变化,变异 增加了种群的多样性,在一定程度上克服了遗传算法早熟收 敛的缺点。对于采用二进制编码的种群,对基因码的一位进 行翻转即可实现变异操作。 2.3使用交叉算子与变异算子生成少数类样本 如上所述,过抽样方法通过增加少数类样例的数量来减 轻数据集的不均衡程度;遗传算法中的交叉算子与遗传算子 可以生产子代个体,并根据某种标准验证这部分子代个体的 有效性。基于两种算法的优点,本文提出了基于KNN算法的 少数类样本生成方法(G.KNN)。其中对于训练集 中少数类 使用遗传算法中交叉算子与变异算子产生新的子代个体,并 应用欧几里德距离验证样本的有效性。因为,本文认为新生 成的子代个体的类标与父代个体相同,则新生成的样本到父 代的欧式距离应小于某个最大值Max,而Max可取父代个体 之间的欧氏距离的最大值。算法具体步骤如下: (1)对于训练样本集合 ,分离出其中的少数类样本集合 D做下面的步骤。 (2)计算D中的每一个样本 到D中其他样本 (i#j) 的平均欧几里德距离d(x,,Xi),并把最大值赋予Max。d(x ,xj)= 尘 一,Max=Maxd(x ,x ),l<i<n,”为少数类样本 n—l 。 个数。 (3)对少数类样本集合D使用遗传算法中的交叉算子与 变异算子产生少数类样本。 ①对训练集D依据轮盘赌算法选取”个个体加入到 集合中,并进行下面的交叉变异,个体的选择依据d(x , f)的 大小,部分个体在选择时被淘汰。 ②在选出n个个体中,依据一定的概率随机选择两两实例 进行交叉,这里本论文采用单点交叉,每对父代个体交叉之后 产生一对子代个体,子代个体将代替父代个体加入到 中, 因此,交叉之后的样本容量依然是n。 孙晓燕,张化祥,计华:用于不均衡数据集分类的KNN算法 表3调整后的新数据集 数据集 machine 21 glass 29 glass_46 diabetes page—blocks 329 ③交叉之后,按照一定的变异率对样本进行变异,新产生 的变异个体代替父代个体加入到N中。 ④验证新产生的个体的有效性,对于无效的样本,用这个 样本的一个父代个体代替。 ⑤若少数类样本的数量没有达到要求,则返回(3),继续 进行下一轮的交叉变异,直到满足条件为止。 此算法输出多个 的并集作为新产生的少数类集合,并 加入到训练集 中,形成最终的训练样本集 。即T={ U 1 0 0.9 .VlUⅣ1U…UⅣ },其中, 是新生成的少数类样本的集合,q 是少数类扩充的倍数。例如,若少数类只需扩充一次就满足 0.8 要求,则新产生的少数类加入到集合Ⅳ1中,此时T ={ UN1); 若少数类需扩充两倍,则第一次时产生的少数类加入到集合 中,第二次新产生的少数类加入到集合Ⅳ,中,取T‘= { UⅣ1U }。依次类推。 验证新产生的样本的有效性,即计算每个新产生的子代 个体 到训练集D中所有少数类的平均欧几里德距离,即 川xi一 d(x ,x,): 一。若 ( , ,) Max,则认为此样本落 在了少数类样本的边界范围之内,有利于少数类的分类,应保 留;否则,应抛弃。 3实验结果及分析 3.1实验数据集 本文所用数据集来自于UCI(http://archive.ics.uci.edu/ml/ datasets.htm1)。其中,diabetes是两类样本的不均衡数据集;将 machine中第“一”类、glass中第“七”类、glass中第“三”类和第 “七”类、page—bolcks中第“二”类看做它们的少数类,其他类合 并作为多数类,分别形成新的不均衡数据集machine 21, glass 29,glass 46,page—blocks~329 。处理之后的数据集如 表2所示。 表2数据集描述 数据集 样本个数属性个数类数量(多:少)少数类比例/(%) 3.2实验设置 如何设置遗传算法中的各种参数,到目前为止还没有一 个合理的理论依据。通常情况下,交叉概率选取0.4~0.9,变异 率选取0.001-4).1之间_l31。对于每个数据集,本文中采取迭代 次数为30次,交叉率为0.667,变异率为0.05。同时采用十折 交叉验征对算洳斩i耳骱,评价防 住使用F-value值与G—mean值。 3.3实验结果及分析 按照本文提出的基于交叉算子与变异算子产生少数类的 方法,对表2中的数据集进行调整,调整后的数据如表3显 示。其中,表3中的数据是十折交叉验证中被用来训练KNN 分类器的那部分数据。图1显示了传统KNN,加入随机过抽 样后的KNN算法(R—KNN)及本文提出的G.KNN在少数类的 F-value上的对比。图2显示的是三种算法在G—mean上的比较。 O.7 O 6 0.5 machine21 glass29 glass 46 diabetes page一 数据集 blocks一329 图1 KNN、R—KNN及G—KNN在F-value卜的比较 1.0 0.9 0.8 蔷 芒 0.7 0.6 0.5 machine2 1 glass29 glass46 diabetes page一 数据集 blocks~329 图2 KNN、R—KNN及G—KNN在G—mean}:的比较 从图1中可以看出,R—KNN与KNN在少数类的F-value值 上相差不大,这是因为随机过抽样并没有增加新的少数类样 例,故而在少数类分类性能方面并没有很大的提高;而本文提 出的G.KNN算法相比于其他两种算法,在五个数据集上获得 较高的F-value值,即在少数类分类性能方面取得了不错的效 果。其中,F-value值在machine 21数据集提高了9.1%,在 glass 29数据集上提高了2.4%,在glass 46数据集上提高了 4.2%,在diabetes数据集上提高了2.8%,而在page.blocks 329 数据集上只提高了0.1%,是因为虽然少数类相对于多数类而 言比较少,但是它的个数足够用来训练一个分类器,因此。其 F-value值并没有大幅度的提高。图2显示的是三种算法在 G—mean上的比较结果,可以看出G—KNN算法的总体分类性能 在选用的数据集上优于R—KNN及KNN。 综上所述,实验结果验证了G.KNN方法的有效性,该算 法产生的少数类样本都在原来少数类样本的周围,因此在使 用KNN算法时,一个少数类的测试样例周围的样本数增加 了,测试样例被分类正确的可能性就增大了。所以,该算法不 仅提高了少数类的分类精度,而且总体的分类性能也有提高。 4结束语 传统的KNN分类算法在处理不均衡数据集时,分类预测 倾向于多数类;加入随机的过抽样算法可以提高少数类的分 类精度,但易导致过学习。本文提出了一种在KNN算法中使 (下转236页) 236 2011,47(28) Computer Engineering andApplications计算机工程与应用 群算法ACO和快速随机搜索树算法RRT进行了性能实验比 较,比较结果示于表1。实验环境如图1l和图13所示。 表1相同环境下时间性能的比较 参考文献: (1]Trovato K I,Dorst L.Diferential A’[J】.IEEE Transactions on Knowledge and Data Engineering,2002,14(6):1218—1229. [2马兆青,袁曾任.2]基于栅格方法的移动机器人实时导航和避障[J】. 机器人,1996,18(6):344—348。 【3高云峰,黄海.3]复杂环境下基于势场原理的路径规划方法[J】_机器 人,2004,26(2):114—118 由表l结果可以看出,在两种环境下,本文算法的收敛时 【4]谢宏斌.动态环境中移动机器人路径规划的研究【D1.无锡:江南大 学,2003. 间都优于ACO算法,在有陷阱类的复杂环境下,本文算法的耗 时远远小于其他两种算法,且从图11和图13的结果看,用本 文算法都能得到全局最优路径,这都展示本文算法性能优于 这些代表性算法。 [5]樊晓平,罗熊,毕异,等复杂环境下基于蚁群优化算法的机器人路 径规划[J】.控制与决策,2004,19(2):166.170. 【6]Kennedy J,Eberhart R C.Particle swami optimization[C]//Proc of IEEE Intl Confon Neutral Networks,Perth,1995:1942—1948. [7】Holland J H.Genetic algorithm optimal allocation of Wails sI [J】. 5结语 本文提出了一种基于环境二次划分和改进遗传算法的机 Journal of Computing,1973,2(2):88—105. [8]Nearchou A C.Path planning of a mobile robot using genetic heuristics[J].Robotica,1998,16(5):575—588. 器人路径规划算法,将基本栅格环境依据障碍物的多少进行 了二次划分,提高了种群染色体编码自适应环境的能力;算法 采用基于显性基因的保险矩阵这一启发信息的初始种群产生 策略,克服了传统遗传算法在个体编码和种群初始化上的盲 目性,显著地提高了初始种群的有效性和遍历性;同时,在遗 传操作中,选择算子也采用了保险矩阵的启发信息,从而提高 了选择的效率。仿真实验结果证实了即使是在有陷阱等复杂 障碍物的环境下,用本文算法也能获得最优路径,且收敛速度 [9]国海涛.基于蚂蚁自动分流的机器人路径规划新算法研究【D】.南 京:南京师范大学,2008. [1O】毕慧敏.董海鹰_改进遗传算法在机器人路径规划中的应用[J].测 控技术,2006,25(4):53—54. [1 1】于红斌,李孝安.基于栅格法的机器人快速路径规划[J】.微电子学 与计算机,2005,22(6):98—100. [121何娟,涂中英,牛玉刚.一种遗传蚁群算法的机器人路径规划方法[J】. 计算机仿真,2010,27(3):170—172. [13]周兰凤,洪炳熔.用基于知识的遗传算法实现移动机器人路径规 划….电子学报,2006,5(5):911—912. 比已有代表性算法有显著提高,效果令人满意。 然而在本文算法中只针对静态障碍物避碰做出处理,对 于环境中存在动态障碍物,找出一种对动态障碍物依靠环境 信息选择环境划分机制是以后的研究方向之一。 [14】肖晓明,陈志兴,高平安.动态确定基因数的遗传算法路径规划【J】. 计算机应用研究,2009,26(7):2469.2482. (上接145页) cationl .Journal of Machine Learning Research,2001,2(2):139—154. [5]Kubat M,Matwin S.Addressing the course of imbalanced train— 用交叉算子与遗传算子生成少数类的方法(G.KNN),并对生 成的少数类进行有效性验证,对符合要求的少数类要入到训 ng sets:one—siided selection[C]//Proc of the 14th Intemational Conference on Machine Leaming,San Francisco,CA,1997:179—186. 练集中。实验的结果证明,此算法不仅提高了少数类的分类 性能,而且总体的性能也有所提高。但是,也应看到,本文提 出的生成少数类样本的过抽样算法,在KNN算法中取得了不 错的效果,但如何把这样的少数类生成方法扩展到其他的传 统方法,是本文下一步需继续努力的方向。同时,在遗传算子 与交叉算子的选择方面也是依据经验而定,更一般的参数设 置还需更加科学的理论探索。 【6]Chawla N V,Bowyer K W,Hall L O,et a1.SMOTE:synthetic minority over-sampling technique[J].Journal of Artiifcial Intelli— gence and Research,2002:321—357. [7]Dasarathy B V.Nearest Neighbor(NN)norms:NN pattem classiif- cation techniques[M].Los Alamitos,Califomia:IEEE Computer Society Press,1991. 【8】谷琼.面向j 北京:中国地质大学,2009. 参考文献: [1]Weiss G M.Mining with rarity:a unifying framework[J].SIG— KDD Explorations,2004,6(1):7—19. [9】Joshi M V.On evaluating performance of classifiers for rare classes[C]//Proc of the 2nd IEEE Intemational Conference on Data Mining,Maebashi,Japan,2002:641—644. 【2】Ciraco M,Rogalewski M,Weiss G M.Improving classifier utili— ty by altering the misclassification cost ration[C]//Proc of the I st International Workshop on Utility—based Data Mining.New York:ACM,2005:46—52. [101 Mitchel T M.机器学习【M】.曾华军,张银奎,译.北京:机械工业出 版社,2003:165—168. [11]王小平,曹立明.遗传算法—理论、应用与软件实现[M】-西安:西安 交通大学出版社,2002:36—46. 【12]韩慧,王路,温明,等.不均衡数据集学习中基于初分类的过抽样 算法【J].计算机应用,2006,26(8):1894—1897. [13】杜鹃,姜丽丽,陈红丽.不均衡数据集文本分类中少数类样本成长 方法研究[J]l计算机应用研究,2009,26(1O):3731・3733. 【3]Fan W,Stolfo S J,Zhang J,et a1.AdaCost:misclassication cost・sensiitve boosting[C]//Proc of the 16th International Confer— ence on Machine Learning.[S.1.]:Morgan Kaufmanm,1999:97—105. [4】Manevitz L M,Yousef M One—class SVMs for document classifi—