CN109522936A - 一种基于聚类的分层最近邻欠采样方法 - Google Patents
一种基于聚类的分层最近邻欠采样方法 Download PDFInfo
- Publication number
- CN109522936A CN109522936A CN201811233719.4A CN201811233719A CN109522936A CN 109522936 A CN109522936 A CN 109522936A CN 201811233719 A CN201811233719 A CN 201811233719A CN 109522936 A CN109522936 A CN 109522936A
- Authority
- CN
- China
- Prior art keywords
- cluster
- sample
- class
- central point
- clusters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/231—Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提出了一种基于聚类的分层最近邻欠采样方法,包括:利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k;使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数;根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果。本发明实施例提供的技术方案,充分利用了多数类样本的分布特征,较好地保留了多数类样本的有用信息,且能有效提高后续分类算法的分类效果。
Description
【技术领域】
本发明涉及机器学习领域欠采样方法,尤其涉及一种基于聚类的分层最近邻欠采样方法。
【背景技术】
在利用机器学习方法解决分类问题时,存在数据集不平衡即某一类样本的数量远远少于其他类样本数量的现象。根据合适的重采样算法解决数据集类间不平衡问题,以提高分类模型对少数类样本的识别率,是当今研究的热点之一。目前对于解决不平衡数据集分类问题,常用技术主要分为基于算法的方法和基于数据的方法。基于算法的方法是指根据分类算法在解决不平衡数据分类问题时的缺陷,适当修改算法,使之适应不平衡分类问题,常用的策略有代价敏感方法和集成学习方法。代价敏感方法通过引入代价敏感因子,对分类错误的少数类样本进行惩罚,如代价敏感决策树,代价敏感支持向量机等。集成学习方法使用一系列分类器进行学习,并将各个学习结果进行整合从而获得比单个分类器更好的学习效果,如bagging,AdaBoost,AdaCost等。基于算法的方法通过改变算法自身的计算过程来适应不平衡数据集,但是没有从根本上改变数据集类间的不平衡性,这大大降低了算法的泛化性能,而基于数据的方法将采样阶段与训练阶段独立,便于将不同的采样方式与不同的分类方法相结合,所以在实际使用中,较多使用基于数据的方法。基于数据的方法是指通过重采样过程,对数据集本身进行重构的一种简单有效的方式,可以使不平衡的样本分布变得比较平衡,从而提高分类器对少数类的识别率。重采样的方法主要分为增加少数类样本的数量(过采样)与减少多数类样本的数量(欠采样)两种。过采样方法是通过有放回抽样、对少数类样本进行复制、生成少数类的相似样本等方法来增加少数类样本的个数,从而达到平衡数据集的目的,包括对样本进行随机复制以及SMOTE算法等。SMOTE算法是通过插值生成新的人造样本,该算法在对少数类样本进行采样时存在一定的盲目性,所以许多学者提出了Borderline-SMOTE、ASMOTE、OSLDDSMOTE等改进方法。以上过采样方法通过复制或人工生成的方式来增加少数类样本,使得分类器过分注重这部分样本,从而导致过拟合现象。并且过采样会增加训练时间,提高计算的复杂度,这种方式不能从本质上解决少数类样本的稀缺性和数据表示的不充分性。欠采样方法是通过舍弃部分样本,减少多数类样本的个数,从而降低数据集不平衡的程度。随机欠采样可以通过减少多数类样本的数量来提高计算效率,但是具有一定的盲目性,并且会损失多数类样本的有用信息。所以欠采样方法要改进的重点是在平衡类间比例的基础上尽量保留原始数据集的有用信息。
【发明内容】
有鉴于此,本发明实施例提出了一种基于聚类的分层最近邻欠采样方法,以提高分类模型对少数类样本的识别率。
本发明实施例提出的一种基于聚类的分层最近邻欠采样方法,包括:
利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k;
使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数;
根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果。
上述方法中,利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k的方法为:使用Kmeans算法对多数类样本进行聚类,计算各个簇畸变程度之和dist:
其中,k为聚类的簇数,p=len(第clu_i簇)为第i个簇内样本点的个数,distij为簇内第j个样本点xij与该簇中心点cen_i的欧式距离,得到聚类簇数k与对应簇畸变程度之和dist的变化关系,在k较小时,随着k值的增大,畸变程度会随之减小,每个簇内样本数量也相应减少,于是各样本会离所在簇的中心点更近,但是随着k值继续增大,畸变程度的减小速度会越来越缓慢,所以在k值增大的过程中,畸变程度减小幅度最大位置所对应的k值就是肘部,即最优聚类的簇数k。
上述方法中,使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数的方法为:使用Kmeans聚类算法将多数类聚为k簇,Kmeans算法以欧氏距离作为相似测度,将样本划分为k类,采用迭代的方式,得到紧凑且独立的簇,即簇内样本具有较高的相似性,而簇间样本相似性较低,同时得到了各个簇的中心点k_centers:
k_centers=cen_1,cen_2,…,cen_k
cen_i表示第i个簇的中心点,采用各个簇中心点作为欠采样时的中心,同时得到样本的簇标签k_clusters:
k_clusters=clu_1,clu_2,…,clu_k
clu_i表示第i个簇的标签,利用各个簇的中心点和标签可以计算欠采样过程中各个簇的取值个数。
上述方法中,根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果的方法为:对于每一个聚类簇clu_i,利用分层的思想计算其在多数类样本中所占的比例p/M,根据少数类样本的数量计算每个簇内应抽取的样本数量num,如下所示:
num=p/M*N
其中,M表示多数类样本的数量,N表示少数类样本的数量,使用kNN算法计算该簇中每个样本点xij与该簇中心点cen_i的欧氏距离distij:
其中,n代表样本特征总数,cen_ia为第i个簇的中心点在属性a上的取值,xija为该簇内第j个样本点在属性a上的取值,将样本点按照与中心点的距离进行排序,选取距离中心点的num个最近邻,作为该簇中所采的多数类样本,将所有簇中抽取的多数类样本与全部少数类样本合并,作为采样结果,即类间平衡的样本集T。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例所提出的基于聚类的分层最近邻欠采样方法的流程示意图;
图2是利用Kmeans聚类算法对KEEL上的公开数据集Yeast6进行聚类所得到的肘图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例给出基于聚类的分层最近邻欠采样方法,如图1所示,其为本发明实施例所提出的基于聚类的分层最近邻欠采样方法的流程示意图,该方法包括以下步骤:
步骤101,利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k。
具体的,使用Kmeans算法对多数类样本进行聚类,计算各个簇畸变程度之和dist:
其中,k为聚类的簇数,p=len(第clu_i簇)为第i个簇内样本点的个数,distij为簇内第j个样本点xij与该簇中心点cen_i的欧式距离,得到聚类簇数k与对应簇畸变程度之和dist的变化关系,在k较小时,随着k值的增大,畸变程度会随之减小,每个簇内样本数量也相应减少,于是各样本会离所在簇的中心点更近,但是随着k值继续增大,畸变程度的减小速度会越来越缓慢,所以在k值增大的过程中,畸变程度减小幅度最大位置所对应的k值就是肘部,即最优聚类的簇数k。
步骤102,使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数。
具体的,使用Kmeans聚类算法将多数类聚为k簇,Kmeans算法以欧氏距离作为相似测度,将样本划分为k类,采用迭代的方式,得到紧凑且独立的簇,即簇内样本具有较高的相似性,而簇间样本相似性较低,同时得到了各个簇的中心点k_centers:
k_centers=cen_1,cen_2,…,cen_k
cen_i表示第i个簇的中心点,采用各个簇中心点作为欠采样时的中心,同时得到样本的簇标签k_clusters:
k_clusters=clu_1,clu_2,…,clu_k
clu_i表示第i个簇的标签,利用各个簇的中心点和标签可以计算欠采样过程中各个簇的取值个数。
步骤103,根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果。
具体的,对于每一个聚类簇clu_i,利用分层的思想计算其在多数类样本中所占的比例p/M,根据少数类样本的数量计算每个簇内应抽取的样本数量num,如下所示:
num=p/M*N
其中,M表示多数类样本的数量,N表示少数类样本的数量,使用kNN算法计算该簇中每个样本点xij与该簇中心点cen_i的欧氏距离distij:
其中,n代表样本特征总数,cen_ia为第i个簇的中心点在属性a上的取值,xija为该簇内第j个样本点在属性a上的取值,将样本点按照与中心点的距离进行排序,选取距离中心点的num个最近邻,作为该簇中所采的多数类样本,将所有簇中抽取的多数类样本与全部少数类样本合并,作为采样结果,即类间平衡的样本集T。
算法1为本发明实施例所提出的基于聚类的分层最近邻欠采样方法的伪代码:
图2是利用Kmeans聚类算法对KEEL上的公开数据集Yeast6进行聚类所得到的肘图,根据部分实验数据的肘图选择k=6,20,30,50进行采样。
表一是本发明实施例给出基于聚类的分层最近邻欠采样方法解决KEEL上10组公开数据集分类任务时,AUC值(受试者工作特征曲线下面积)的对比实验结果,其中,本发明实施例中对比方法是基于少数类样本数量的聚类采样算法。由表一可以得出,本发明所提出的方法在公开数据集中相比于对比方法在AUC值上平均提高了0.085。特别的,提出方法在poker-9_vs_7数据集上的提升值最高,达到0.25。本发明实施例所提出的方法能有效保留多数类样本的有用信息,所得的类间平衡数据集能有效提高后续分类算法的分类效果。
表一
综上所述,本发明实施例具有以下有益效果:
本发明实施的技术方案中,利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k;使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数;根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果。根据本发明实施例提供的技术方案,充分利用了多数类样本的分布特征,较好地保留了多数类样本的有用信息,且能有效提高后续分类算法的分类效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (4)
1.一种基于聚类的分层最近邻欠采样方法,其特征在于,所述方法步骤包括:
(1)利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k;
(2)使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数;
(3)根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果。
2.根据权利要求1所述的方法,其特征在于,利用Kmeans聚类算法得到多数类样本的肘图,根据簇数与各个簇畸变程度之和的关系选择最优聚类的簇数k,具体说明如下:使用Kmeans算法对多数类样本进行聚类,计算各个簇畸变程度之和dist:
其中,k为聚类的簇数,p=len(第clu_i簇)为第i个簇内样本点的个数,distij为簇内第j个样本点xij与该簇中心点cen_i的欧式距离,得到聚类簇数k与对应簇畸变程度之和dist的变化关系,在k较小时,随着k值的增大,畸变程度会随之减小,每个簇内样本数量也相应减少,于是各样本会离所在簇的中心点更近,但是随着k值继续增大,畸变程度的减小速度会越来越缓慢,所以在k值增大的过程中,畸变程度减小幅度最大位置所对应的k值就是肘部,即最优聚类的簇数k。
3.根据权利要求1所述的方法,其特征在于,使用Kmeans聚类算法将多数类样本聚为k簇,从而得到各个簇的中心点及簇内样本点个数,具体说明为:使用Kmeans聚类算法将多数类聚为k簇,Kmeans算法以欧氏距离作为相似测度,将样本划分为k类,采用迭代的方式,得到紧凑且独立的簇,即簇内样本具有较高的相似性,而簇间样本相似性较低,同时得到了各个簇的中心点k_centers:
k_centers=cen_1,cen_2,…,cen_k
cen_i表示第i个簇的中心点,采用各个簇中心点作为欠采样时的中心,同时得到样本的簇标签k_clusters:
k_clusters=clu_1,clu_2,…,clu_k
clu_i表示第i个簇的标签,利用各个簇的中心点和标签可以计算欠采样过程中各个簇的取值个数。
4.根据权利要求1所述的方法,其特征在于,根据每个簇内样本点的数量,进行分层采样,选取每个簇中心点的最近邻与少数类样本合并作为采样结果,具体说明为:对于每一个聚类簇clu_i,利用分层的思想计算其在多数类样本中所占的比例p/M,根据少数类样本的数量计算每个簇内应抽取的样本数量num,如下所示:
num=p/M*N
其中,M表示多数类样本的数量,N表示少数类样本的数量,使用kNN算法计算该簇中每个样本点xij与该簇中心点cen_i的欧氏距离distij:
其中,n代表样本特征总数,cen_ia为第i个簇的中心点在属性a上的取值,xija为该簇内第j个样本点在属性a上的取值,将样本点按照与中心点的距离进行排序,选取距离中心点的num个最近邻,作为该簇中所采的多数类样本,将所有簇中抽取的多数类样本与全部少数类样本合并,作为采样结果,即类间平衡的样本集T。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811233719.4A CN109522936A (zh) | 2018-10-23 | 2018-10-23 | 一种基于聚类的分层最近邻欠采样方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811233719.4A CN109522936A (zh) | 2018-10-23 | 2018-10-23 | 一种基于聚类的分层最近邻欠采样方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109522936A true CN109522936A (zh) | 2019-03-26 |
Family
ID=65772828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811233719.4A Pending CN109522936A (zh) | 2018-10-23 | 2018-10-23 | 一种基于聚类的分层最近邻欠采样方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522936A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639561A (zh) * | 2020-05-17 | 2020-09-08 | 西北工业大学 | 基于类别自适应聚类的无监督行人重识别方法 |
CN111671128A (zh) * | 2020-06-05 | 2020-09-18 | 江苏中烟工业有限责任公司 | 一种打叶复烤烟叶加工属性分类方法 |
CN111695639A (zh) * | 2020-06-17 | 2020-09-22 | 浙江经贸职业技术学院 | 一种基于机器学习的电力用户用电异常检测方法 |
CN112365060A (zh) * | 2020-11-13 | 2021-02-12 | 广东电力信息科技有限公司 | 电网物联感知数据的预处理方法 |
CN112749719A (zh) * | 2019-10-31 | 2021-05-04 | 北京沃东天骏信息技术有限公司 | 一种用于样本均衡分类的方法和装置 |
CN113191431A (zh) * | 2021-04-29 | 2021-07-30 | 武汉工程大学 | 一种细粒度车型识别方法、装置及存储介质 |
CN113435536A (zh) * | 2021-07-15 | 2021-09-24 | 广东电网有限责任公司 | 一种电费数据预处理方法、装置、终端设备及介质 |
CN114548327A (zh) * | 2022-04-27 | 2022-05-27 | 湖南工商大学 | 基于平衡子集的软件缺陷预测方法、系统、设备及介质 |
-
2018
- 2018-10-23 CN CN201811233719.4A patent/CN109522936A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749719A (zh) * | 2019-10-31 | 2021-05-04 | 北京沃东天骏信息技术有限公司 | 一种用于样本均衡分类的方法和装置 |
CN111639561A (zh) * | 2020-05-17 | 2020-09-08 | 西北工业大学 | 基于类别自适应聚类的无监督行人重识别方法 |
CN111671128A (zh) * | 2020-06-05 | 2020-09-18 | 江苏中烟工业有限责任公司 | 一种打叶复烤烟叶加工属性分类方法 |
CN111671128B (zh) * | 2020-06-05 | 2022-04-19 | 江苏中烟工业有限责任公司 | 一种打叶复烤烟叶加工属性分类方法 |
CN111695639A (zh) * | 2020-06-17 | 2020-09-22 | 浙江经贸职业技术学院 | 一种基于机器学习的电力用户用电异常检测方法 |
CN112365060A (zh) * | 2020-11-13 | 2021-02-12 | 广东电力信息科技有限公司 | 电网物联感知数据的预处理方法 |
CN112365060B (zh) * | 2020-11-13 | 2024-01-26 | 广东电力信息科技有限公司 | 电网物联感知数据的预处理方法 |
CN113191431A (zh) * | 2021-04-29 | 2021-07-30 | 武汉工程大学 | 一种细粒度车型识别方法、装置及存储介质 |
CN113435536A (zh) * | 2021-07-15 | 2021-09-24 | 广东电网有限责任公司 | 一种电费数据预处理方法、装置、终端设备及介质 |
CN114548327A (zh) * | 2022-04-27 | 2022-05-27 | 湖南工商大学 | 基于平衡子集的软件缺陷预测方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522936A (zh) | 一种基于聚类的分层最近邻欠采样方法 | |
CN106599935B (zh) | 基于Spark大数据平台的三支决策不平衡数据过采样方法 | |
CN106973057B (zh) | 一种适用于入侵检测的分类方法 | |
CN107392919B (zh) | 基于自适应遗传算法的灰度阈值获取方法、图像分割方法 | |
CN109299697A (zh) | 基于水声通信调制方式识别的深度神经网络系统及方法 | |
CN104156945B (zh) | 基于多目标粒子群算法的灰度图像分割方法 | |
CN108764366A (zh) | 针对非均衡数据的特征选择和聚类抽样集成二分类方法 | |
CN110032925A (zh) | 一种基于改进胶囊网络与算法的手势图像分割与识别方法 | |
CN105718889A (zh) | 基于GB(2D)2PCANet深度卷积模型的人脸身份识别方法 | |
CN109344856B (zh) | 一种基于多层判别式特征学习的脱机签名鉴别方法 | |
CN115048988B (zh) | 基于高斯混合模型的不平衡数据集分类融合方法 | |
CN111967520A (zh) | 一种基于改进的smote算法的不平衡数据处理方法 | |
CN112233107B (zh) | 基于图像处理技术的葵花籽品级分类方法 | |
CN107665352A (zh) | 一种基于多通道残差网络的珍珠分类方法 | |
CN110532946A (zh) | 一种基于卷积神经网络识别绿通车车辆轴型的方法 | |
CN104091038A (zh) | 基于大间隔分类准则的多示例学习特征加权方法 | |
CN107944460A (zh) | 一种应用于生物信息学中类别不平衡分类方法 | |
CN101526994A (zh) | 一种与采集设备无关的指纹图像分割方法 | |
CN111931853A (zh) | 基于层次聚类和改进smote的过采样方法 | |
CN108961301A (zh) | 一种基于无监督逐像素分类的角毛藻图像分割方法 | |
Deng et al. | An imbalanced data classification method based on automatic clustering under-sampling | |
CN105512675A (zh) | 一种基于记忆性多点交叉引力搜索的特征选择方法 | |
CN109214413A (zh) | 一种数据分布平衡的确定方法及系统 | |
Cao et al. | Imbalanced data classification using improved clustering algorithm and under-sampling method | |
CN107563443A (zh) | 一种自适应的半监督密度聚类方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190326 |