基于pso算法的不平衡样本分类方法

文档序号:10512745阅读:421来源:国知局
基于pso算法的不平衡样本分类方法
【专利摘要】本发明提供了一种基于PSO算法的不平衡样本分类方法,通过采用粒子群优化PSO算法,对过采样过程中边界样本和安全样本的采样率进行优化得到最优过采样倍率,同时对特征进行优化,从而选择出能够达到简化运算和提升分类结果的最具代表性的特征组合。本发明采用AUC/F?Mea作为算法的适应度函数,从而提升最终分类器的效果。
【专利说明】
基于PSO算法的不平衡样本分类方法
技术领域
[0001] 本发明属于数据挖掘中的分类技术优化领域,尤其涉及一种适用不平衡样本的分 类方法。
【背景技术】
[0002] 在不平衡样本分类问题中,不平衡数据就是在整个数据集样本空间中其中一类的 样本和其余一类或几类样本在数量上存在巨大的差距。在这种情况下往往少数类需要我们 投入更多的关注。例如在医疗诊断中的应用中,癌症或者心脏病的数据样本空间就是不平 衡样本,在这类样本中,我们关注的对象往往是患病样本,通过准确分类出这些样本的属 性,从而可以准确诊断病人的病情,并给与这些病人及时的针对性治疗。
[0003] 传统分类器在处理不平衡样本分类问题中,为了追求较高的全局分类准确率,往 往直接将少数类样本分类为多数类样本,这种做法会将潜在的病人信息分类为健康信息, 因此患者可能错过治疗的最佳时期,造成患者不可挽回的损失。
[0004] 在不平衡样本分类问题中,有很多的参数对最终的分类效果都会有一定的影响, 通过确定不同的参数组合,可以得到差异比较大的结果。而这些参数的确定一般都是通过 人为指定的,没有一个验证这些参数有效性的指标,只能通过最终的分类效果来判断这些 参数,而且人为指定的参数通过多次的调整,往往得到的也仅仅是一个局部最优解,很少的 情况下会得到全局最优解。
[0005] 现有技术中,对于不平衡样本分类问题,有基于数据重采样的处理方法和基于算 法改进的处理方法。
[0006] 基于数据重采样的处理方法:样本的不平衡特性主要表现在两类样本数量上的不 平衡,从而造成传统分类器分类困难,因此首先想到的便是在数据层面,通过改变原始数据 样本的数量不均匀的问题,从而使得样本基本达到平衡来解决这种分类困难。在数据层面 上,国内外学者主要提出了过采样、欠采样和混合采样的思想。
[0007] 过采样,顾名思义,就是通过一定的方法加入一些少数类样本,从而使原始不平衡 样本数据集基本达到平衡。但如果过采样的方法不对,则可能造成过拟合现象。
[0008] SMOTE算法是目前应用比较流行的过采样技术。它主要是通过在少数类样本中插 入一些仿造少数类样本,而不是简单的进行附近过采样。这项技术主要是在从一个已经在 手写体识别的项目中提出来的算法中获得的灵感。SMOTE进行过采样的主要过程如下:首先 根据每个少数类样本,选取出离这个少数类样本点最近的K个其他少数类样本点,然后在这 个点和其他K个少数类样本点之间采用线性插值的方法,并采用一定的随机插值因子和过 采样率来进行的产生一部分少数类仿造样本点。SMOTE插值的公式下式所示:
[0009] pi = x+rand(0,l)*(yi-x )i = l,2,...N (1)
[0010] SMOTE算法主要是在相似的少数类样本(也就是相邻近)之间进行插值,这样生成 的仿造样本具有一定代表性。因此,过拟合问题在SMOTE算法中被避免,而且少数类的决策 空间也会扩展的更好;同样,它也可以应用到多数类样本空间中,可以降低多数类的决策空 间。
[0011] 楼晓俊等人在2013年提出了一种基于聚类的并且考虑边界样本信息的过采样方 法,该方法中通过单边选择法确定少数类和多数类的边界样本信息,通过对所有少数类样 本进行考虑边界的聚类,在簇内进行适当的过采样,这样产生的仿造少数类样本与原始样 本有更多的相似性,更能代表父类样本空间分布。同时通过对边界样本进行针对性的过采 样,增加边界样本的清晰度,从而突出少数类边界样本的重要性。
[0012] 欠采样方法的思想则是通过某些方法在多数类样本中按照某种规则移除一些特 定的样本,使得样本数据空间能够基本达到平衡。然而欠采样的方法也有一些弊端,容易造 成一些具有代表性样本的重要信息丢失。
[0013] 混合采样就是将过采样和欠采样算法融合在一起的算法,在对原始数据集进行重 采样的过程中,使用混合采样对数据集进行平衡性操作。大量的研究表明,混合采样的方法 比单一的重采样方法具有更大的优越性,先进行过采样在进行欠采样一般能取得更好的效 果。
[0014] 基于算法改进的处理方法:处理不平衡样本分类问题中,数据层面的重采样方法 能够在一定程度上消除不平衡的影响,提升少数类的分类效果,但数据层面的方法本质是 改变了数据集的分布,这种改变可能对分类效果的真实性产生一定的影响。在算法层面上 进行的改进可以消除在数据层面上的弊端,也会得到一定程度少数类分类效果的提升。经 过这几年国内外学者的研究,在算法层面上的研究主要涉及到代价敏感学习(Cost-sensitive Learning) 、集成学习 (Ensemble Learning) 以及单类传统学习方法 (One-Class Learing)〇
[00?5]集成学习方法是不平衡样本分类中应用较多的一种算法框架,Boosting算法属于 集成学习方法中比较经典的一种,而AdaBoost是Boosting类算法中经常被用到的一种算 法。AdaBoost通过迭代训练不同的弱分类器,通过组合方式将这些弱分类器集成为强分类 器,它根据每次迭代分类器的分类情况,更新样本下一次训练的权值。根据AdaBoost算法的 训练过程我们可以得到其主要有高精度分类效果、子分类器可以根据需要自调、分类结果 容易理解和不会产生overfitting现象等优点。
[0016] 在数据层面对不平衡样本空间进行平衡化的操作中,有一些参数是需要人为指定 的。比如在Borderline算法中,需要的参数有K,也就是K近邻的方法找到它在整个数据集S 中的K个最近邻样本,并将这些样本存入每个Smin样本对应的集合KNNsmin中去。同时在通 过SMOTE算法进行过采样的时候,有一个过采样倍率的问题(OrRate)的参数也是通过人为 指定的,不同的过采样倍率对最终的分类效果的影响是很大的。同时在进行混合采样的时 候,同时也存在着多数类样本点的欠采样倍率的参数问题(UsRate)。
[0017] 在算法层面,同时也存在着一些参数需要去进行人为的指定,比如在采用 Boosting算法的AdaBoost算法中,基分类器最终都会有一个投票权重的确定,这个投票权 重系数的确定也是通过这个基分类器的分类错误率确定的。而这些基分类器的权重系数往 往互相是有影响或者关系的,单纯的根据分类错误确定它们的系数得到的最终分类效果往 往不是最优的。

【发明内容】

[0018] 为了解决现有技术中问题,本发明提供了一种基于PS0算法的不平衡样本分类方 法,采用PS0(Particle Swarm Optimization)算法对参数进行自适应的优化,从而能够得 到一系列最优的系数组合,使得最终的分类效果得到很大的提升。
[0019] 本发明通过如下技术方案实现:
[0020] -种基于PS0算法的不平衡样本分类方法,所述方法中PS0算法中粒子的表示为: OsRatei、UsRate和Fecj,其中OsRatei为第i个聚类簇的过采样率,i = 1,2,…,N,N为通过 DBSCAN算法所形成的聚类簇数目,Fee j为样本的第j个特征,j = 1,2,…,M;所述方法包括: (1)将数据集划分为训练集Train和测试集Test; (2)首先在搜索空间生成初始解Xi,i = 1, 2,…,SN,其中SN为粒子群大小;(3)令全局最优解gbest = 0; (4)执行步骤(5)、(6)最大循环 次数MCN次;(5)令j从1到SN,获得当前的解;按照得到的所述解,特征重新选择后生成新 的数据集,通过k折交叉验证以及分类器学习,得到相应的AUC或者F-Measure; (5)根据PS0 算法中的速度计算公式和位置更新公式得到每个粒子的pbest,同时更新全局最优解 gbest; (7)通过得到的过采样率、欠采样率和特征组合,同时进行混合采样,构建分类器进 行训练数据集,然后用分类器进行训练,得到最终的AUC。
[0021] 本发明的有益效果是:本发明通过采用粒子群优化算法,对过采样过程中边界样 本和安全样本的采样率进行优化得到最优过采样倍率,同时对特征进行优化,从而选择出 能够达到简化运算和提升分类结果的最具代表性的特征组合,采用AUC/F-Mea作为算法的 适应度函数,从而提升最终分类器的效果。
【附图说明】
[0022]图1是PS0算法伪代码;
[0023] 图2是PS0算法中粒子的表示形式示意图;
[0024] 图3是本发明的PS0算法对过采样率优化伪代码。
【具体实施方式】
[0025]下面结合【附图说明】及【具体实施方式】对本发明进一步说明。
[0026]粒子群优化(Particle Swarm Optimization,PS0)算法是由Kennedy和Eberhart 博士于1995年提出,它一种进化算法,产生的灵感是来源于仿自然界中的昆虫、兽群和鸟群 等的群体行为,这些自然界中的群体生物会按照一种它们自己能够理解的方式进行寻找食 物,配偶以及其他一些事情,群体中的每一个成员都会通过学习自己的经验和其他群体成 员的经验来改变个体或者群体的行为模式,最终完成群体的全局搜索。从现实中的例子我 们可以理解PS0算法的具体过程是怎样的:假设有一群鸟在某一特定区域漫无目的搜索食 物的位置,这些鸟对事物的具体位置一无所知,也不知道往哪个方向飞才能飞到食物附近 的位置,这些鸟该怎样才能以最优的搜索路线找到这个食物呢?正确的做法就是通过得到 距离食物较近的其他粒子的信息,然后根据这些信息往这个离食物较近的鸟所在区域移动 并进行搜索。
[0027]在计算机科学中,PS0算法是一种计算方法,它主要通过迭代优化问题和一个特定 的适应度函数来试图得到最佳候选解决方案。PS0算法中的"粒子"代表整个群体搜索空间 中的每一个个体,上面我们举的现实生活中鸟群寻找食物的例子中,PS0算法优化的具体过 程如下:初始化鸟的位置和飞行速度,这个速度包含粒子在下一步搜索过程所要运行的轨 迹,然后搜索当前区域的最优解。PSO算法每次的更新中,有两个重要的值需要保留,其中一 个是群体中每个粒子的个体最优解,记为pbest;还有一个解为全局最优解,代表粒子群整 个搜索空间中最优解,记为gbest。粒子的速度和位置时刻根据这两个值进行更新,每一次 的迭代都是根据以下两个公式进行更新的:
[0028] v[11 = ινχ \\ c) X ?\ χ {pbest - x';) -f c-y χ r, x (gbesf - x') (2)
[0029] +1/^ G)
[0030] 其中:1 = {1,2,"_,5?,其它参数说明如下表1所示:
[0031] 表1 PSO算法参数说明
[0033] 将粒子群优化算法应用到一些具体应用的参数优化或者权重系数的优化问题上, 一般都能够取得全局最优解,从而提高最终的实验效果。PS0算法程序的伪代码如附图1所 不。
[0034] 通过采用粒子群优化算法,对过采样过程中边界样本和安全样本的采样率进行优 化得到最优过采样倍率,同时对特征进行优化,从而选择出能够达到简化运算和提升分类 结果的最具代表性的特征组合,采用AUC/F-Mea作为算法的适应度函数,从而提升最终分类 器的效果。粒子群优化算法中粒子的表示如附图2所示。其中,OsRate代表过采样率, OsRatei为第i个聚类簇的过采样率(i = 1,2,…,N),N为通过改进DBSCAN算法所形成的聚类 簇数目;UsRate代表多数类边界样本的欠采样率;Fee代表特征,Feci为样本第i个特征(i = 1,2,…,Μ),这里的特征向量是二进制形式表示的,1代表该位置上的特征是对分类效果是 有帮助的,需要保留,若为0,则代表该位置特征对分类结果的提升没有任何的帮助,可以去 除这个特征简化训练过程。
[0035] AUC(Area under Receiver Operating Characteristics Curve)是一种可视化 的分类器算法表现评价方法,用一个二维坐标系来表示。其中,X轴是错分少数类(阳性)的 比率(FP_Rate),Y轴是正确分类的少数类(阳性)的比率(TP_Rate),每个分类器算法对一组 样本数据进行分类后都会产生一个点P〇int(FP_Rat e,TP_Rate),调整分类器的阀值产生多 个点,形成R0C曲线,AUC则是这条曲线覆盖右下角的面积。AUC值越大,则表示分类器算法的 识别能力越强。
[0036] F-Measure最经常被应用到不平衡样本分类的评价工作中,如下公式所示。F- Measure由查全率、查准率以及平衡因子复合得到,当Recall和Precision都取得一个较高 的数值时,F-Measure便会取得较为理想的结果。
[0038] 式中β--调节查全率和查准率的平衡因子(通常β设为1)。
[0039]标准DBSCAN算法的具体聚类过程如下:根据预先设定的单位半径和密度,在整个 数据集,找到满足条件的这些点,称之为核心点,接着对该核心点进行扩充。扩充的方法是 寻找从该核心点出发的所有和它密度相连的其他样本点。遍历该核心点的ε邻域内的所有 核心点(因为边界点是无法扩充的),找到和这个核心点密度相连的其他少数类样本点,并 判断这个点是否也为核心点,继续根据这个核心点进行扩充,直到无法找到密度相连的可 以扩充的核心点为止。接下来就是重新扫描没有被聚类成簇的少数类样本数据集,在剩余 数据集中寻找在不曾被聚类为任何一个簇的的其他核心点,然后对该核心点采用上述方法 进行扩充直到整个数据集中没有新的未被聚类成簇的核心点。聚类结束后,那些少数类样 本集中未被聚类在任一簇中的样本点就时噪声点。
[0040] 基于改进的DBSCAN算法能够解决类内不平衡的情况,其基本思想是:
[0041] 首先,考虑类内不平衡少数类样本分布密度不均匀的情况,能够得到一组基于分 布密度的EPS值。在存在类内不平衡的数据集中,各个少数类数据样本点与其他少数类样本 点的距离远近是不同的,也就是分布密度不同。分布密度的计算是通过计算距离其中任一 少数类样本最近的K个少数类样本点到这样本点的距离来衡量的。具体方法如下:通过统计 任一少数类样本点Xi最近的K个其他少数类样本点,分别计算Xi到这K个少数类样本的距离, 然后对这些距离取一个平均值。通过得到的距离平均值,可以得到少数类样本点Xi的分布 密度,所有的少数类样本点都能计算出这样一个衡量该点分布密度的平均距离公式。
[0042] 然后,将这些通过计算得到的每个少数类样本点的平均距离组成一个距离向量数 组。将这些平均距离作为原始数据集,在这个数据集上通过进行距离上的聚类。在将这个距 离数组聚类成N个簇之后,计算每个簇中的所有距离加和取平均,将得到的这个平均值作为 这个簇的邻域阈值,通过分别计算这N个簇的平均值,可以得到N个邻域阈值EPSdiil, 2,…,N) 〇
[0043] 接下来,将这N个领域阈值进行排序,按照从小到大的顺序,将这些排好序的阈值 保存在一个数组中,留做下一步的改进DBSCAN算法的EPS参数的依次的确定。
[0044] 在接下来的聚类算法中,首先选择阈值数组中最小的那一个,当做DBSCAN算法的 EPS值(MinPts可以人工指定,在训练过程中保持不变),然后对所有少数类样本进行聚类, 通过聚类可以得到满足这个密度的多个少数类样本聚类簇,其他不满足条件的少数类样本 则被归为噪声样本。接着采用阈值数组中下一个阈值对标记为噪声样本点的少数类样本继 续进行DBSCAN聚类,同样得到一些聚类簇和剩余的噪声样本点。
[0045] 最后,重复以上的操作,采用阈值数组中从小到大的不同阈值对标记为噪声样本 点的少数类样本进行DBSCAN聚类,当对所有少数类样本的通过不同的EPS进行聚类过后,则 完成少数类样本的所有聚类操作,那些最后都不被归为在任何一个簇的数据即为噪声数 据。
[0046] 通过改进的DBSCAN算法,不仅能够产生少数类的聚类簇,然后再在这些样本簇内 进行过采样,而且还能够充分的解决类内不平衡中的分布不均匀和数据碎片或者小析取项 的问题。
[0047] PS0算法在对不平衡样本分类问题中的过采样率优化问题和特征选择优化的伪代 码如附图3所示。其中,MCN为最大循环次数,NumFo Ids为K折交叉验证中的参数K。
[0048] 粒子群优化算法主要是对连续值进行优化,而这里的特征向量为离散型的,为了 使PS0同样可以处理特征向量,使用sigmoid函数,对生成的连续值速度V采用下面的公式 (5)和(6 ),转换为离散的0、1值,从而适用于特征优化集合的选择上来。
[0051] 通过PS0算法确定了各个聚类簇的边界样本采样率和安全样本采样率以及对分类 效果有提升的特征之后,便可以通过特征提取选取出最具有代表性的数据特征和数据样本 集,然后通过优化得到的过采样率对少数类样本进行过采样,最终得到想要的平衡数据集 样本。
[0052] AdaBoost算法的基分类器可以由任意的单一分类器组成,现在通常用的就是决策 树、神经网络、SVM等传统机器学习算法作为基分类器。大部分的集成学习方法都是使用同 样的单一基分类器学习算法去构造一个同构集成学习算法框架,或者采用不同的基分类器 来构造一个异构集成学习算法框架。
[0053] AdaBoost的思想是根据当前迭代分类器分类结果,调节并归一化样本的权值,从 而保证下一次的迭代计算中,弱分类器可以将更多的精力集中在上一个分类器误分类的样 本上,所以样本权值的更新策略也是影响分类效果的因素之一;同时基分类器的权重系数 也是影响AdaBoost算法最终分类的一个因素,所以如何设置基分类器的权重系数也是本发 明的主要研究之一。
[0054]对于AdaBoost算法中的基分类器的投票权重系数的确定也是根据上面的思想,将 多个基分类器系数当做PS0优化算法中的每一个"粒子",同时特定的设置,最终得到 AdaBoost算法中这些基分类器投票权重系数的最优组合。
[0055]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定 本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在 不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的 保护范围。
【主权项】
1. 一种基于PSO算法的不平衡样本分类方法,其特征在于,所述方法中PSO算法中粒子 的表示为:OsRatei、UsRate和Fee j,其中OsRatei为第i个聚类簇的过采样率,i = 1,2,…,N, N为通过DBSCAN算法所形成的聚类簇数目,Fee j为样本的第j个特征,j = 1,2,…,M;所述方 法包括:(1)将数据集划分为训练集Train和测试集Test; (2)首先在搜索空间生成初始解 11,1 = 1,2,~,51其中51'1为粒子群大小;(3)令全局最优解8匕68七=0;(4)执行步骤(5)、(6) 最大循环次数MCN次;(5)令j从1到SN,获得当前的解;按照得到的所述解,特征重新选择 后生成新的数据集,通过k折交叉验证以及分类器学习,得到相应的AUC或者F-Measure; (5) 根据PSO算法中的速度计算公式和位置更新公式得到每个粒子的pbest,同时更新全局最优 解gbest; (7)通过得到的过采样率、欠采样率和特征组合,同时进行混合采样,构建分类器 进行训练数据集,然后用分类器进行训练,得到最终的AUC。2. 根据权利要求1所述的不平衡样本分类方法,其特征在于:所述DBSCAN算法为改进的 DBSCAN算法,该算法能够解决类内不平衡的情况,其基本思想是:首先,考虑类内不平衡少 数类样本分布密度不均匀的情况,能够得到一组基于分布密度的EPS值;然后,将这些通过 计算得到的每个少数类样本点的平均距离组成一个距离向量数组,将这些平均距离作为原 始数据集,在这个数据集上通过进行距离上的聚类;在将这个距离数组聚类成N个簇之后, 计算每个簇中的所有距离加和取平均,将得到的这个平均值作为这个簇的邻域阈值,通过 分别计算这N个簇的平均值,可以得到N个邻域阈值EPSi,i = 1,2,…,N;接下来,将这N个领 域阈值进行从小到大的顺序排序并保存在一个数组中;在接下来的聚类算法中,首先选择 阈值数组中最小的那一个,当做DBSCAN算法的EPS值,然后对所有少数类样本进行聚类,接 着采用阈值数组中下一个阈值对标记为噪声样本点的少数类样本继续进行DBSCAN聚类,同 样得到一些聚类簇和剩余的噪声样本点。最后,重复以上的操作,当对所有少数类样本的通 过不同的EPS进行聚类过后,则完成少数类样本的所有聚类操作,那些最后都不被归为在任 何一个簇的数据即为噪声数据。3. 根据权利要求1所述的不平衡样本分类方法,其特征在于:其特征在于:PS0算法主要 是对连续值进行优化,而这里的特征向量为离散型的,为了使所述PS0算法能够处理离散型 的特征向量,使用s i gmo i d函数,对生成的连续值速度转换为离散的0、1值。4. 根据权利要求1所述的不平衡样本分类方法,其特征在于:所述方法通过PS0算法确 定了各个聚类簇的边界样本采样率和安全样本采样率以及对分类效果有提升的特征之后, 通过特征提取选取出最具有代表性的数据特征和数据样本集,然后通过优化得到的过采样 率对少数类样本进行过采样,最终得到想要的平衡数据集样本。
【文档编号】G06N3/00GK105868775SQ201610172812
【公开日】2016年8月17日
【申请日】2016年3月23日
【发明人】张春慨
【申请人】深圳市颐通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1