基于改进dbscan-smote算法的分类方法

文档序号:10570408阅读:447来源:国知局
基于改进dbscan-smote算法的分类方法
【专利摘要】本发明针对数据样本空间的处理中类内不平衡的情况提供了一种基于改进DBSCAN?SMOTE算法的分类方法,首先在数据样本集合中,判断出哪些属于边界样本,并将边界样本分为多数类边界样本和少数类边界样本,对于多数类样本空间中的边界样本采用聚类;然后采用PSO算法对聚类簇内边界样本和安全样本的过采样率进行优化,通过对少数类边界样本通过SMOTE算法进行不同采样率的过采样;其中,所述聚类基于改进DBSCAN算法,该算法不仅能够产生少数类的聚类簇,然后再在这些样本簇内进行过采样,而且还能够充分的解决类内不平衡中的分布不均匀和数据碎片或者小析取项的问题。
【专利说明】
基于改进DBSCAN-SMOTE算法的分类方法
技术领域
[0001] 本发明属于数据挖掘中的分类技术优化领域,尤其涉及一种适用不平衡样本的分 类方法。
【背景技术】
[0002] 不平衡样本分类问题中,不平衡数据就是在整个数据集样本空间中其中一类的样 本和其余一类或几类样本在数量上存在巨大的差距。在这种情况下往往少数类需要我们投 入更多的关注。例如在医疗诊断中的应用中,癌症或者心脏病的数据样本空间就是不平衡 样本,在这类样本中,我们关注的对象往往是患病样本,通过准确分类出这些样本的属性, 从而可以准确诊断病人的病情,并给与这些病人及时的针对性治疗。
[0003] 传统分类器在处理不平衡样本分类问题中,为了追求较高的全局分类准确率,往 往直接将少数类样本分类为多数类样本,这种做法会将潜在的病人信息分类为健康信息, 因此患者可能错过治疗的最佳时期,造成患者不可挽回的损失。
[0004] 在不平衡样本分类问题中,往往又存在着两种不平衡:类间不平衡和类内不平衡。 类间不平衡就是多数类和少数类之间在数据样本数量上的不平衡;类内不平衡就是在少数 类样本空间中又存在着各子类间数据样本分布位置或者分布密度的不平衡,也即是存在数 据碎片和密度不均匀问题。
[0005] 现有针对不平衡样本分类问题的方案众多,可以将这些方法归纳为两大类:一、从 数据层面解决问题,也就是通过适当采样方法,增加少数类样本数量,从而使原始样本空间 趋于平衡,使得此问题转化为传统的机器学习样本分类问题。二、从算法层面解决问题,也 就是改进传统的机器学习分类器算法,使得新的分类器算法能够更好地识别数量很少的不 平衡样本。
[0006] 数据层面解决不平衡样本分类的主要思想就是通过重采样从而对原始不平衡样 本空间进行重构,使其变为相对平衡分布的状态,使得重构后数据样本能更好的适用标准 分类器算法进行分类。在数据层面解决不平衡样本分类问题有很多不同形式进行重采样的 方法,主要有"过采样方法"和"欠采样方法"两大类重采样算法。例如在少数类中的过采样, 在多数类中的欠采样又或者结合这两种方法的混合采样。
[0007] 研究者提出了很多有效的重采样方案,单边选择法(one-side selection)是 Kubat等人于1997对于样本向量距离思想上的一次改进而提出一种新的欠采样方法。该方 法的主要思想是:在样本向量距离思想的基础上,结合了 KNN,将多数类样本归为四种主要 类别,分别为安全样本、冗余样本、边界样本和噪声样本。在这里,安全样本和冗余样本是那 些远离少数类和多数类边界处的样本,这些样本的分类难度比较小,对于边界样本和噪声 样本而言,我们称之为"不安全样本",对于这类样本需要重点关注。因此,单边选择法的采 样过程中,通过多数类样本中的安全样本和少数类样本人工合成新的数据样本,而对"不安 全样本"的处理方式是采用欠采样方法。
[0008] SMOTE(synthetic minority over-sampling technique)算法是应用较多的一种 过采样方法,由Chawla等人提出的。它的主要思想是在少数类样本空间中相邻的样本之间 仿造一些样本。因此,过拟合问题在SMOTE算法中就会被避免,而且少数类的决策空间也会 扩展的更好;同样,它也可以应用到多数类样本空间中,可以降低多数类的决策空间。现在 很多的过采样方法都是在SMOTE基础上进行的改进,Han等人提出了 Borderline-SMOTE,He 和Li提出了 NRSBoundary-SMOTE算法,其主要思想是扩展少数类的分类空间并且压缩多数 类的分类空间。
[0009] Yen和Lee在2009年提出了一种基于聚类的欠采样方法SBC。该算法认为,不同的聚 类簇之间有一定的差异性,应该对不同的聚类簇采取不同的欠采样策略。SBC算法的主要思 想就是:采用传统聚类算法将多数类样本聚类成k个簇,然后根据簇中多数类占所有多数类 的比例进行欠采样倍率的设置,根据不同的采样倍率进行欠采样,实现删除一些多数类的 功能。
[0010] 在数据层面的改进对于解决不平衡样本分类问题已经有了很大的分类效果和许 多成功的应用案例。但是,数据层面仅仅是在数据分布的角度去解决不平衡样本分类问题, 并没有从分类算法的角度去寻求更好的解决方案。所以,越来越多的学者开始在算法层面 来寻求突破,主要是通过改进传统的分类器算法,使它们能够适应不平衡样本分类问题。在 算法层面,主要的研究体现在代价敏感学习、集成学习和其他一些优化的分类学习算法。
[0011] -般来说,解决不平衡分类问题最普遍的一种解决方案就是选择恰当的归纳偏 置。对决策树来说,一种方法就是调整叶节点的概率估计,另一个方法就是优化剪枝技术; 对于SVM来说,就是对不同的类设置不同的惩罚因子,或者根据核函数来调整分类超平面。 为了研究出一种算法解决方案,一个是需要相应分类器相关的知识和应用领域,尤其是要 完全理解为什么这种学习算法当遇到数据不平衡会失败的原因。
[0012] 代价敏感学习是考虑将不同误分类的样本赋予不同的误分代价。代价矩阵代表了 将某一类错分为另一类是需要付出的惩罚代价,让C(Min,Maj)代表将分类器算法将少数类 样本Min误分类为多数类样本Maj的代价大小。根据这种思想,C(Min,Maj)代表着将少数类 样本误分类多数类样本时候的代价,C(Maj,Min)正好相反。在解决不平衡分类问题时,由于 少数类样本蕴含的价值信息往往大于多数类样本所蕴含的价值信息,因此,代价矩阵中,误 分类少数类样本时候的代价要大于误分类多数类样本时候的代价,即C(Min,Maj)>C(Maj, Min)。所有没被误分类的样本代价为0,即C(Maj,Maj) =C(Min,Min) = 0。其中某一样本的条 件概率风险R(i|x)的定义如下公式(1)所示:
[0013] R(i|x) = EjP(j|x)C(i,j) (1)
[0014]其中P(j|x)代表样本x被分类为j类型的后验概率。综上所述,代价敏感学习两条 关键的原则是:少数类样本被误分类的代价要大于多数类被误分类的代价原则以及条件风 险最小化原则,分类器在训练的时候会更加关注误分类代价较大的样本,从而在下一次迭 代中正确分类这些样本点。
[0015]集成分类学习方法的基本思想是构建多个基分类器,每个基分类器都对原始数据 进行各自的分类预测,最后将每个基分类器分类的结果汇总统计,从而采用加权投票进行 多数原则分类。将多个基分类器结合起来的主要动机就是提高它们的泛化能力,每一个基 分类器都被假设为它会在特定有限的数据集中出现误分类的情况,同一个实例可能会被不 同的基分类器分类为不相同的类别标签。集成学习之所以在不平衡分类领域获得很高的关 注和应用,主要是因为它具备如下的独特优势:基于统计的学习方法;处理大规模数据的优 越性能;针对不平衡样本分类的独特的学习效果;数据集的分治处理和特定边界样本的结 合。以上集成学习的独特优势,对于解决不平衡样本分类有天然的适用性。
[0016] 集成分类学习方法的主要作用就是基本通过统计偏差或者方差来进行学习的。对 于给定的一个基分类器,偏置方差分解在偏差、方差和基本误差中都会有所不同,集成分类 方法性能上的提升也主要是表现在方差的降低。Bagging、Random forest和AdaBoost都是 成功降低误分方差的一系列被成功应用的集成分类学习方法。
[0017] AdaBoost演算法被观察到有能力减少偏差。以树粧(每个劈叉树只有两个终端节 点,通常方差较低但高偏差)为基础的学习分类器,装袋执行很差和AdaBoost演算法显著提 高了基分类器的性能。对于一个不平衡数据集,标准的学习方法由于引入偏移误差表现的 往往很差。AdaBoost学习演算法减少偏见的能力在处理类不平衡问题上是至关重要的。 AdaBoost算法主要形式有:AdaCl,AdaC2和AdaC3,它们的主要不同之处就是在基分类器的 权重系数at的计算上,在每次迭代运算中都会将代价这一项考虑进去进行重新计算。
[0018] 如上所述,采样方法改变样本数据的分布,从而解决了标准分类器算法无法适应 不平衡样本数据集的问题。然而,很多研究仍然从分类器算法的角度来解决其对于不平衡 样本数据集分类准确率地下的问题。例如,代价敏感学习方法通过设置合理的错分代价,从 而寻求最低代价完成分类。
[0019] 传统的随机欠采样和随机过采样有很多明显的缺点。例如,随机欠采样很有可能 会移除一些潜在有价值的样本,造成不平衡样本分类时分类不准确;随机过采样可能会导 致过拟合问题。最为主流SMOTE也存在一些显而易见的问题,比如仿造的数据样本对决策空 间的扩展作用不大;由于随机性,有时候无法顾及传统分类器认为的所谓的"少数类噪声样 本",从而对诊断表现造成较大的影响。
[0020] 在现实世界中,少数类样本数据经常被错分,或当作数据噪音处理,代价敏感学习 为少数类样本数据指定较高的错分代价,相反,为多数类样本数据设置较小的错分代价,这 样也就可以使得在分类过程中给予分类难度较大的样本更多的"关注",从而做到有的放 矢。另外,近年来,集成学习作为一种重要的机器学习方法框架,也被更多的应用于不平衡 样本分类。集成学习通过将基分类器进行组合,从而形成分类准确率较高的集成分类器。对 于集成学习改进也有很多,例如Chawla N V等人通过将SMOTE采样算法集成到Boosting中, 从而得到了 SMOTEBoost提高了少数类分类的准确率。
[0021 ] Boosting算法中同时也存在一定的弊端,在对每一轮迭代中,样本权值的赋予策 略的不同往往能对最终的分类效果产生较大的影响。同时在对基分类器投票权重系数的确 定上,往往也只是单纯根据这一基分类器的最终分类结果确定的,但是在基分类器的组合 中,这些基分类器往往存在一定的关系,不能仅仅采用他们的分类准确率来确定最终的系 数组合,如何确定最优的这些系数组合也是需要重点考虑的一个问题。
[0022] 现有方法的最主要的一个弊端就是大部分方案都是针对类间不平衡进行处理的, 没有考虑到类内不平衡问题的存在,所以在最终的效果上往往达不到很理想的效果。

【发明内容】

[0023] 为了解决现有技术中问题,本发明提供了一种针对类内不平衡样本的基于改进 DBSCAN-SMOTE算法的分类方法,采用改进DBSCAN-SMOTE算法来处理类内不平衡的情况。 [0024]本发明通过如下技术方案实现:
[0025] 一种基于改进DBSCAN-SMOTE算法的分类方法,所述方法针对数据样本空间的处理 中类内不平衡的情况,首先在数据样本集合中,判断出哪些属于边界样本,并将边界样本分 为多数类边界样本和少数类边界样本,对于多数类样本空间中的边界样本采用聚类;然后 采用PS0算法对聚类簇内边界样本和安全样本的过采样率进行优化,通过对少数类边界样 本通过SMOTE算法进行不同采样率的过采样;其中,所述聚类基于改进DBSCAN算法,所述改 进的DBSCAN算法包括:首先,考虑类内不平衡少数类样本分布密度不均匀的情况,能够得到 一组基于分布密度的EPS值;然后,将这些通过计算得到的每个少数类样本点的平均距离组 成一个距离向量数组,将这些平均距离作为原始数据集,在这个数据集上通过进行距离上 的聚类;在将这个距离数组聚类成N个簇之后,计算每个簇中的所有距离加和取平均,将得 到的这个平均值作为这个簇的邻域阈值,通过分别计算这N个簇的平均值,可以得到N个邻 域阈值EPSi,i = 1,2,…,N;接下来,将这N个领域阈值进行从小到大的顺序排序并保存在一 个数组中;在接下来的聚类算法中,首先选择阈值数组中最小的那一个,当做DBSCAN算法的 EPS值,然后对所有少数类样本进行聚类,接着采用阈值数组中下一个阈值对标记为噪声样 本点的少数类样本继续进行DBSCAN聚类,同样得到一些聚类簇和剩余的噪声样本点。最后, 重复以上的操作,当对所有少数类样本的通过不同的EPS进行聚类过后,则完成少数类样本 的所有聚类操作,那些最后都不被归为在任何一个簇的数据即为噪声数据。
[0026] 作为本发明的进一步改进,所述在数据样本集合中,判断出哪些属于边界样本,并 将边界样本分为多数类边界样本和少数类边界样本采用Borderline算法;事先指定待分类 的不平衡数据集为S={(xi,yi),(X2,y2),???,(x n,yn)},其中的每一个样本由特征向量和这 个样本所属的类标组成,特征向量表示为X,类标表示为y,即 x= {X1,X2,…,Xn},y = {Maj, Min},S中的多数类样本集合用Smaj表示,同样,用Smin表示少数类。则Borderline算法的过程 如下:
[0027] (1)对Smin中的少数类样本数据,采用K近邻的方法找到它在整个数据集S中的K个 最近邻样本,并将这些样本存入每个Smin样本对应的集合KNNsmin中去。
[0028] (2)通过以下三个公式将Smin中的每个样本归类为边界样本、噪声样本和安全样 本:
[0029] {(x,y)|(x,y) G KNNsmin A y=Maj} | >K/2 (1)
[0030] {(x,y) | (x,y) G KNNsmin A y=Maj} | =K (2)
[0031] {(x,y)|(x,y) G KNNsmin A y=Maj} | =0 (3)
[0032] 其中满足公式(1)的少数类数据样本点则为边界样本,此时将边界少数类样本插 入到少数类边界样本集SBmin中;满足公式(2)的少数类数据样本点则为噪声样本;满足公式 (3)的少数类数据样本点则为安全样本。
[0033] 作为本发明的进一步改进,所述方法还包括在少数类边界样本空间的采样率要大 于非边界样本的采样率;对于多数类样本空间中的边界样本则采用聚类,然后用聚类质心 代替当前多数类边界样本簇,移除簇内其他原始样本。
[0034] 本发明的有益效果是:本发明不仅能够产生少数类的聚类簇,然后再在这些样本 簇内进行过采样,而且还能够充分的解决类内不平衡中的分布不均匀和数据碎片或者小析 取项的问题。本发明特别适用于存在类内不平衡样本分类问题,及同类的识别少数类类别 不平衡样本分类问题。本发明所提出的方法对数据集进行分类时的通用性,能有效处理不 同类型的数据集。
【具体实施方式】
[0035] 下面结合【具体实施方式】对本发明进一步说明。
[0036] 样本边界重叠问题也是造成不平衡样本分类问题困难的原因之一,所以在本发明 中,着重考虑了边界样本对最终分类效果的影响,并采取相应措施消除这一影响。主要采用 的方法就是:在少数类边界样本空间的采样率要大于非边界样本的采样率;对于多数类样 本空间中的边界样本则采用聚类,然后用聚类质心代替当前多数类边界样本簇,移除簇内 其他原始样本。从这两个方面处理后,则使得原始数据空间边界样本更加清晰,在很大程 度上消除了边界样本对不平衡样本分类问题的影响。
[0037]针对上面提到的问题,本发明提出了基于改进DBSCAN的聚类算法,能有效的处理 类内不平衡问题中的数据分布位置或分布密度不均匀的情况。同时结合Borderline算法的 思想,考虑边界样本信息,然后采用PS0算法对聚类簇内边界样本和安全样本的过采样率进 行优化,通过对少数类边界样本通过SMOTE算法进行不同采样率的过采样。其次,对多数类 边界样本进行聚类质心替换的方法,分别进行不同的处理,双重增加了边界样本的清晰度。 这样处理完之后的数据样本,不仅在类间和类内都趋于平衡,还增加了边界样本的清晰度, 从而能够有效提升最终分类效果。
[0038]首先,主要对Border 1 ine算法进行描述,该算法的主要功能就是在数据样本集合 中,判断出哪些属于边界样本,并将边界样本分为多数类边界样本和少数类边界样本。在该 算法中,事先指定待分类的不平衡数据集为S,其中的每一个样本由特征向量和这个样本所 属的类标组成,特征向量表示为x,类标表示为y,即x= {xi,X2,…,xn},y= {Maj,Min}。所以 数据集可以表示为:
[0039] S={(xi,yi)(X2,y2),???,(xn,yn)}
[0040] S中的多数类样本集合用Smaj表示,同样,用Smin表示少数类。贝ijBorderl ine算法的 过程如下:
[0041] (1)对Smin中的少数类样本数据,采用K近邻的方法找到它在整个数据集S中的K个 最近邻样本,并将这些样本存入每个Smin样本对应的集合KNNsmin中去。
[0042] (2)通过以下三个公式将Smin中的每个样本归类为边界样本、噪声样本和安全样 本:
[0043] {(x,y)|(x,y) G KNNsmin A y=Maj} | >K/2 (2)
[0044] {(x,y) | (x,y) G KNNsmin A y=Maj} | =K (3)
[0045] {(x,y)|(x,y) G KNNsmin A y=Maj} | =0 (4)
[0046] 其中满足公式(2)的少数类数据样本点则为边界样本,此时将边界少数类样本插 入到少数类边界样本集SBmin中;满足公式(3)的少数类数据样本点则为噪声样本;满足公式 (4)的少数类数据样本点则为安全样本。
[0047] (3)通过(2)的方法,同样可以得到多数类数据样本根据Borderline算法进行归 类,对于边界样本,同样将这些样本插入到一个多数类边界样本集合SBmaj中去,噪声样本 直接进行移除,安全样本不进行任何的操作。
[0048] 通过以上三个步骤,可以分别得到少数类的边界样本集合空间和多数类的边界样 本集合空间,这样在接下来的混合采样过程中,可以着重对边界样本的处理,从而增加边界 样本的清晰度,使得分类效果有所提升。
[0049] 对不平衡数据样本分类问题中,如果不平衡数据集中存在类内不平衡,采用传统 的未经任何改进的聚类算法进行聚类时,往往无法聚类成想要的簇。在类内不平衡中,存在 着少数类中的分布不均匀,以及数据碎片或者小析取项的问题,所以需要对传统的算法进 行适当的改进,采用特定的能针对类内不平衡进行聚类的聚类算法。
[0050] DBSCAN算法的目的主要是通过密度对样本进行聚类,满足单位半径密度大小的样 本被聚类,而那些不满足这个条件的样本点被当做噪声点抛弃掉。与传统的聚类算法不同 的是,DBSCAN算法可以发现聚类成各种满足密度形状的簇,与传统的算法相比它有如下优 占.
[0051] (1)和K-means算法相比,DBSCAN不用事先人为指定要聚成的簇个数和初始质心; [0052] (2)DBSCAN聚成的簇形状不会发生明显的变化;
[0053] (3)可以根据实际情况,确定一些参数到达过滤噪声的效果。
[0054]标准DBSCAN算法的具体聚类过程如下:根据预先设定的单位半径和密度,在整个 数据集,找到满足条件的这些点,称之为核心点,接着对该核心点进行扩充。扩充的方法是 寻找从该核心点出发的所有和它密度相连的其他样本点。遍历该核心点的e邻域内的所有 核心点(因为边界点是无法扩充的),找到和这个核心点密度相连的其他少数类样本点,并 判断这个点是否也为核心点,继续根据这个核心点进行扩充,直到无法找到密度相连的可 以扩充的核心点为止。接下来就是重新扫描没有被聚类成簇的少数类样本数据集,在剩余 数据集中寻找在不曾被聚类为任何一个簇的其他核心点,然后对该核心点采用上述方法进 行扩充直到整个数据集中没有新的未被聚类成簇的核心点。聚类结束后,那些少数类样本 集中未被聚类在任一簇中的样本点就时噪声点。
[0055]传统的DBSCAN聚类算法能很好的解决很多其他聚类算法不能解决的问题,但是当 面对不平衡数据样本分类中的类内不平衡的情况是,传统的DBSCAN算法也有一定的弊端: [0056] (1)由于DBSCAN算法采用统一的e和Minpts参数,所以当面对类内不平衡中的分布 密度不均匀的时候,DBSCAN算法产生的聚类簇往往不是最理想的聚类结果。所以,对于类 内不平衡中的分布不均匀的情况,需要采用不同的e和Minpts参数来进行聚类,这样便可根 据不同的分布密度生成相应的聚类簇。
[0057] (2)当存在类内不平衡的数据碎片或者小析取项的情况下,标准DBSCAN算法不能 考虑到数据碎片或者小析取项的区域很小的问题,分类器很有可能会直接当做噪声点进行 处理。
[0058] 针对以上存在的问题,采用基于改进的DBSCAN算法来处理这些问题,从而解决类 内不平衡的情况,其基本思想是:
[0059]首先,考虑类内不平衡少数类样本分布密度不均匀的情况,能够得到一组基于分 布密度的EPS值。在存在类内不平衡的数据集中,各个少数类数据样本点与其他少数类样本 点的距离远近是不同的,也就是分布密度不同。分布密度的计算是通过计算距离其中任一 少数类样本最近的K个少数类样本点到这样本点的距离来衡量的。具体方法如下:通过统计 任一少数类样本点Xi最近的K个其他少数类样本点,分别计算Xi到这K个少数类样本的距离, 然后对这些距离取一个平均值。通过得到的距离平均值,可以得到少数类样本点X:的分布 密度,所有的少数类样本点都能计算出这样一个衡量该点分布密度的平均距离公式。
[0060] 然后,将这些通过计算得到的每个少数类样本点的平均距离组成一个距离向量数 组。将这些平均距离作为原始数据集,在这个数据集上通过进行距离上的聚类。在将这个距 离数组聚类成N个簇之后,计算每个簇中的所有距离加和取平均,将得到的这个平均值作为 这个簇的邻域阈值,通过分别计算这N个簇的平均值,可以得到N个邻域阈值EPSdiil, 2,…,N) 〇
[0061] 接下来,将这N个领域阈值进行排序,按照从小到大的顺序,将这些排好序的阈值 保存在一个数组中,留做下一步的改进DBSCAN算法的EPS参数的依次的确定。
[0062]在接下来的聚类算法中,首先选择阈值数组中最小的那一个,当作DBSCAN算法的 EPS值(MinPts可以人工指定,在训练过程中保持不变),然后对所有少数类样本进行聚类, 通过聚类可以得到满足这个密度的多个少数类样本聚类簇,其他不满足条件的少数类样本 则被归为噪声样本。接着采用阈值数组中下一个阈值对标记为噪声样本点的少数类样本继 续进行DBSCAN聚类,同样得到一些聚类簇和剩余的噪声样本点。
[0063]最后,重复以上的操作,采用阈值数组中从小到大的不同阈值对标记为噪声样本 点的少数类样本进行DBSCAN聚类,当对所有少数类样本的通过不同的EPS进行聚类过后, 则完成少数类样本的所有聚类操作,那些最后都不被归为在任何一个簇的数据即为噪声数 据。
[0064]通过改进的DBSCAN算法,不仅能够产生少数类的聚类簇,然后再在这些样本簇内 进行过采样,而且还能够充分的解决类内不平衡中的分布不均匀和数据碎片或者小析取项 的问题。
[0065] 验证本发明方法的性能的实验中选择AUC(Area under Receiver Operating Characteristics Curve)是一种可视化的分类器算法表现评价方法,用一个二维坐标系来 表示。其中,X轴是错分少数类(阳性)的比率(FP_Rate),Y轴是正确分类的少数类(阳性)的 比率(TP_Rate),每个分类器算法对一组样本数据进行分类后都会产生一个点Point(FP_ Rate,TP_Rate),调整分类器的阀值产生多个点,形成ROC曲线,AUC则是这条曲线覆盖右下 角的面积。AUC值越大,则表示分类器算法的断识别能力越强。
[0066] F-Measure最经常被应用到不平衡样本分类的评价工作中,如下公式所示。F-Measure由查全率、查准率以及平衡因子复合得到,当Recall和Precision都取得一个较高 的数值时,F-Measure便会取得较为理想的结果。
(5)
[0068] 式中--调节查全率和查准率的平衡因子(通常0设为1)。
[0069] 测试环境Windows 7,python2 ? 7,IDE: spyder,CPU: Intel (R)Xeon(R)E5_2609, 鹽:16G〇
[0070]本发明实验数据集采用了具有类内不平衡情况的八个数据集和两个只存在类间 不平衡的数据集,这些数据集都是在UCI数据库中获得的。表1描述了所有实验所用数据集 的具体属性,其中No.列为数据集编号,DataSet为数据集名称,#Attr为数据集包含的属性 数量,%Min表示少数类样本所占比例。本次实验共有10组数据集,其中每组的不平衡比率 也不相同,并且样本总量也不一样。
[0071]表1实验数据集描述
[0074] 为了验证本发明的两个改进层面之一的数据层面提出的改进算法DBS(DBSCAN_ 3!11〇^)算法的有效性,本发明选取传统的数据层面的重采样算法有1?05(1^11(1 〇111-OverSampling)、SM(SMOTE)作为对比实验算法。
[0075] 表2 DBS算法实验的AUC,F_Measure和全局准确率
[0077]表2为以上几种过采样算法在10组数据集上采用AdaBoost.Ml进行分类的一些指 标结果。表中N0.列序号代表4-2中的数据集序号,通过从AUC,F-Measure(F-Mea)和全局准 确率Acc三个指标上对比分析了各个算法的分类效果。
[0078]从表2中可以统计看出,DBS算法在本发明所用10个实验数据集上,有其中7次取得 了最高的AUC值,最优次数是最多的;有其中6次取得了最高的F-Measure值,最优次数同样 是最多的;同时有其中7次取得了最高的全局准确率Acc,最优次数同样是最多的。从这些评 价指标,可以得出结论:DBS相对于现有的仅考虑类间不平衡的过采样算法,考虑类内不平 衡情况的改进DBS过采样算法能有效的解决类内不平衡情况对分类效果的影响,从多个指 标上都能有效提高不平衡样本分类效果。
[0079] DBS算法不仅能很好的解决类内不平衡情况的影响,同时对于那些只存在类间不 平衡的数据集分类同样也会有不错的效果。通过表2中的数据集的分类效果可以看出,先前 改进算法在对只存在类间不平衡的数据集上进行训练时往往会与比较高的分类准确率,这 是因为类间不平衡是一种比较相对容易处理,容易做到样本空间平衡化的一种情况。通过 数据集yeast5和page-blocksO两个只存在类间不平衡数据集进行分类,DBS、R0S以及SM分 类算法具有同样好的分类效果,这说明 DBS不仅是着重考虑并处理类内不平衡的一种有效 算法,对只存在类间不平衡的数据集也能达到很好的分类效果。在取得较好分类效果的同 时,验证了本发明所提出的改进算法对数据集进行分类时的通用性,能有效处理不同类型 的数据集。
[0080] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定 本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在 不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的 保护范围。
【主权项】
1. 一种基于改进DBSCAN-SMOTE算法的分类方法,其特征在于:所述方法针对数据样本 空间的处理中类内不平衡的情况,首先在数据样本集合中,判断出哪些属于边界样本,并将 边界样本分为多数类边界样本和少数类边界样本,对于多数类样本空间中的边界样本采用 聚类;然后采用PSO算法对聚类簇内边界样本和安全样本的过采样率进行优化,通过对少数 类边界样本通过SMOTE算法进行不同采样率的过采样;其中,所述聚类基于改进DBSCAN算 法,所述改进的DBSCAN算法包括:首先,考虑类内不平衡少数类样本分布密度不均匀的情 况,能够得到一组基于分布密度的EPS值;然后,将这些通过计算得到的每个少数类样本点 的平均距离组成一个距离向量数组,将这些平均距离作为原始数据集,在这个数据集上通 过进行距离上的聚类;在将这个距离数组聚类成N个簇之后,计算每个簇中的所有距离加和 取平均,将得到的这个平均值作为这个簇的邻域阈值,通过分别计算这N个簇的平均值,可 以得到N个邻域阈值EPS i,i = 1,2,…,N;接下来,将这N个领域阈值进行从小到大的顺序排 序并保存在一个数组中;在接下来的聚类算法中,首先选择阈值数组中最小的那一个,当做 DBSCAN算法的EPS值,然后对所有少数类样本进行聚类,接着采用阈值数组中下一个阈值对 标记为噪声样本点的少数类样本继续进行DBSCAN聚类,同样得到一些聚类簇和剩余的噪声 样本点。最后,重复以上的操作,当对所有少数类样本的通过不同的EPS进行聚类过后,则完 成少数类样本的所有聚类操作,那些最后都不被归为在任何一个簇的数据即为噪声数据。2. 根据权利要求1所述的方法,其特征在于:所述在数据样本集合中,判断出哪些属于 边界样本,并将边界样本分为多数类边界样本和少数类边界样本采用Border I ine算法;事 先指定待分类的不平衡数据集为S= {(xi,yi),(X2,y2),···,(xn,yn)},其中的每一个样本由 特征向量和这个样本所属的类标组成,特征向量表示为X,类标表示为y,即X= {XI,X2,···, xn},y={Maj,Min},S中的多数类样本集合用Smaj表示,同样,用Smin表示少数类。则 Borderline算法的过程如下: (1) 对Smin中的少数类样本数据,采用K近邻的方法找到它在整个数据集S中的K个最近 邻样本,并将这些样本存入每个Smin样本对应的集合KNNsmin中去。 (2) 通过以下三个公式将Smin中的每个样本归类为边界样本、噪声样本和安全样本: {(x,y) I (x,y) GKNNsminAy=MajI | >K/2 (I) {(x,y) I (x,y) GKNNsminAy=MajI | =K (2) {(x,y) I (x,y) GKNNsminAy=MajI | =0 (3) 其中满足公式(I)的少数类数据样本点则为边界样本,此时将边界少数类样本插入到 少数类边界样本集SBmin中;满足公式(2)的少数类数据样本点则为噪声样本;满足公式(3) 的少数类数据样本点则为安全样本。3. 根据权利要求1所述的方法,其特征在于:所述方法还包括在少数类边界样本空间的 采样率要大于非边界样本的采样率;对于多数类样本空间中的边界样本则采用聚类,然后 用聚类质心代替当前多数类边界样本簇,移除簇内其他原始样本。4. 根据权利要求1所述的方法,其特征在于:其特征在于:PSO算法主要是对连续值进行 优化,而这里的特征向量为离散型的,为了使所述PSO算法能够处理离散型的特征向量,使 用sigmoid函数,对生成的连续值速度转换为离散的0、1值。5. 根据权利要求1所述的方法,其特征在于:所述方法通过PSO算法确定了各个聚类簇 的边界样本采样率和安全样本采样率以及对分类效果有提升的特征之后,通过特征提取选 取出最具有代表性的数据特征和数据样本集,然后通过优化得到的过采样率对少数类样本 进行过采样,最终得到想要的平衡数据集样本。
【文档编号】G06K9/62GK105930856SQ201610169101
【公开日】2016年9月7日
【申请日】2016年3月23日
【发明人】张春慨
【申请人】深圳市颐通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1