论文部分内容阅读
分类是机器学习领域的重要研究方向之一,经过多年发展形成了一些较为成熟的算法,并在实际中取得成功的应用。这些传统的分类算法以分类正确率作为最大的目标,且假定数据集中各类别样本数量基本平衡。然而在实际问题中,存在这样的一类数据,在数据集中某一类的样本数量远远少于其它类样本数量,即数据集中不同类别样本的数量是非平衡的,这样的数据称为不平衡数据。通常,将数量上占多数的类称为多数类,而占少数的类称为少数类。对不平衡数据集分类时,传统分类算法为追求更高的分类正确率,在分类的过程中偏好数量上占多数的多数类,结果多数类的分类正确率较高,而少数类分类正确率较低。例如,在某些极端情况下,某个传统的分类算法将所有的样本都分类为多数类,依然能获得较高的整体分类精度,却不能识别一个少数类。而在实际问题中,少数类的分类精度往往更为重要。因此,如何对不平衡数据集进行正确分类、提高少数类的分类精度成为数据挖掘领域中的一个研究重点。针对不平衡数据集的研究集中在三个方面:数据层面的方法、算法层面的方法及评价标准。数据层面方法即是对数据集进行预处理,采用采样技术重构数据集,以此改变原有的数据分布,减少不平衡程度,进而使的数据集类分布基本平衡,较常用的方法包括欠采样、过采样;算法层面的方法,即改进传统分类算法,使其在分类过程中更加注重对少数类的分类,提高少数类的分类精度,从而适应不平衡数据集的分类问题,如代价敏感学习、集成学习等;对不平衡数据集分类的性能评价标准也是研究的重点之一,常用的标准有F-Measure、G-Mean等。本文针对不平衡数据集分类问题,尝试将采样技术与传统分类算法相结合,提出了四种用于解决不平衡数据集分类问题的新方法。主要创新成果有:(1)使用遗传算法中的交叉算子与变异算子生成新的少数类样本,采用两样本间的欧几里得距离检验新生成少数类样本的有效性。在UCI数据集的实验结果表明,该方法在提高少数类的分类精度方面取得了较好的效果。(2)使用聚类技术中的K-means算法首先将多数类样本聚成多个簇,然后依次从每个簇中抽取一定数量的多数类样本,使所有抽取到的多数类样本个数与少数类样本个数基本相同,最后将多数类样本与少数类样本合并,作为Bagging成员分类器的训练数据。K-means算法的不稳定性,可以在一定程度上保证成员分类器之间的差异性。(3)使用AdaBoost算法对数据集预处理,得到各样例权重。训练基分类器时,针对多数类数据不再采用bootstrap抽样方法,而是分别随机选择部分权重较大的样例与部分权重较小的样例,使两部分样例个数与少数类样例个数相同,并组成Bagging成员分类器的训练数据。(4)提出基于AdaBoost的边界数据过抽样算法,使用AdaBoost算法迭代多次后,选择部分权重较大的数据作为边界数据,并对这部分边界数据进行随机过抽样,进而使数据集中两类样本分布趋于平衡,从而达到提高少数类分类精度的目的。