一种基于密度聚类的非均衡数据集的均衡化方法及装置与流程

文档序号:18827676发布日期:2019-10-09 02:13阅读:200来源:国知局
一种基于密度聚类的非均衡数据集的均衡化方法及装置与流程

本发明涉及非均衡数据集均衡化技术领域,尤其涉及一种基于密度聚类的非均衡数据集的均衡化方法及装置。



背景技术:

一般的机器学习分类问题中,分类常以整体取得最大准确率为目的,每一类的错分代价是一样的,用于训练的数据集中各类别的样本数目基本相同,没有过大的差别。

然而实际应用中,数据集中各类别样本的数目往往是不同的,以风控全流程贷前审批环节为例,模型建模中,好样本的数目远远大于坏样本的数目,并且两类标签样本被错分的代价也是不同的。

传统机器学习为了能够获得最大准确率,则必然会使得算法更关注于多数类别分类精度的提升,而忽略甚至牺牲数据集中小样本集合的分类精度。

为了解决在非均衡数据集上的机器学习分类问题,目前一般的非均衡数据集分类方法往往都是从数据的处理和算法的选择上找寻问题的解决方案。

从数据集处理考虑,一般尝试在数据集预处理阶段,改变数据集中类别的分布,重构数据集,达到将非均衡数据集均衡化的目的。从算法角度考虑,改进方向一般是对数据集中样本设置不同的权重,或者调整分类界面,应用代价敏感学习分类算法等。

数据集处理重构数据集常用方法一般是简单的随机过采样或者是随机欠采样,都存在着明显的问题。随机过采样,它是以增加少数类样本的方式,来达到多数类样本和少数类样本的均衡,如若简单的复制样本,在没有为整个数据集添加新的信息来辅助之后的分类器的建立的同时,反而会使得之后在数据集上的学习问题出现过拟合的情况。随机欠采样则是将针对多数类样本处理的方法,它是通过减少多数类样本的数目来减弱多数类样本数目与少数类样本数目的差异。但是如果在多数类样本上不加以区别对待,而是随机进行样本的剔除,则极有可能发生在本就数量有限的样本数据集上,把对整个数据集非常有用的信息损失掉。



技术实现要素:

本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的基于密度聚类的非均衡数据集的均衡化方法及装置。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明的一个方面提供了一种基于密度聚类的非均衡数据集的均衡化方法,包括:获取非均衡数据集,确定少数类样本点的数据集和多数类样本点的数据集;对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点;对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点;根据处理后的少数类样本点和处理后的多数类样本点得到非均衡数据集的均衡结果。

其中,对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点包括:对少数类样本的数据集进行密度聚类,得到少数类聚类簇;判断少数类聚类簇是否为噪声点集合;如果是噪声点集合,则随机选取样本点,对样本点各属性随机扰动,生成一个样本点;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否为两个核心对象样本点;如果是两个核心对象样本点,则两个样本点根据随机向量进行加权,在两个核心对象样本点附近各生成一个样本点;如果不是两个核心对象样本点,则判断是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则两个样本点根据随机向量加权,在核心对象样本点附近生成一个样本;如果不是一个为核心对象样本点,另一个为边缘点,则返回执行随机选取两个样本点的操作。

其中,对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点包括:对多数类样本的数据集进行密度聚类,得到多数类聚类簇;判断多数类聚类簇是否为噪声点集合;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则剔除核心对象样本点。

其中,方法还包括:将生成的样本点标记为少数类样本点。

本发明另一方面提供了一种基于密度聚类的非均衡数据集的均衡化装置,包括:获取模块,用于获取非均衡数据集,确定少数类样本点的数据集和多数类样本点的数据集;合成模块,用于对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点;剔除模块,用于对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点;均衡模块,用于根据处理后的少数类样本点和处理后的多数类样本点得到非均衡数据集的均衡结果。

其中,合成模块通过如下方式对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点:合成模块,具体用于对少数类样本的数据集进行密度聚类,得到少数类聚类簇;判断少数类聚类簇是否为噪声点集合;如果是噪声点集合,则随机选取样本点,对样本点各属性随机扰动,生成一个样本点;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否为两个核心对象样本点;如果是两个核心对象样本点,则两个样本点根据随机向量进行加权,在两个核心对象样本点附近各生成一个样本点;如果不是两个核心对象样本点,则判断是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则两个样本点根据随机向量加权,在核心对象样本点附近生成一个样本;如果不是一个为核心对象样本点,另一个为边缘点,则返回执行随机选取两个样本点的操作。

其中,剔除模块通过如下方式对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点:剔除模块,具体用于对多数类样本的数据集进行密度聚类,得到多数类聚类簇;判断多数类聚类簇是否为噪声点集合;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则剔除核心对象样本点。

其中,装置还包括:标记模块;标记模块,用于将生成的样本点标记为少数类样本点。

由此可见,本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法及装置,通过密度聚类的使用,细粒度的对样本点做了划分,同时结合现有方法欠抽样或过抽样的思想,对信息冗余点做剔除,同时利用非冗余且同一个类簇中的点,对少数类标签的点,通过适当加权,生成有相似属性的点,从而达到数据集均衡化的目的,为后续机器学习算法在数据集上高性能的表现奠定基础。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法的流程图;

图2为本发明实施例提供的少数类的簇中两核心对象人工合成新样本点示意图;

图3为本发明实施例提供的少数类的簇中核心对象和边缘点生成样本点示意图;

图4为本发明实施例提供的少数类样本点处理流程示意图;

图5为本发明实施例提供的多数类样本点类簇中核心对象和边缘点的处理示意图;

图6为本发明实施例提供的多数类样本点处理流程示意图;

图7为本发明实施例提供的基于密度聚类的非均衡数据集的均衡化装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明的核心发明点在于:

为了克服一般数据抽样对重构数据集的负面影响,本发明将一般方案对数据集整体的均衡化,转移到数据集的局部,通过在数据集局部的均衡化来达到数据集整体的均衡化。通过基于密度聚类的方式,数据集被划分成一个个高密度的聚集簇,根据聚类假设,被聚集在一个簇的样本性质较为相似,基于该假设,每个聚集类都是由低密度区域分割开的高密度点的聚合体,针对每个簇对数据集进行局部处理,当使用欠采样对被聚集在一起的多数类样本处理时,由于多数类在同一个类簇中,较为密集,信息叠加较多,适当的欠采样只是对重复信息的剔除,而不是对有用信息的削弱。

当使用过采样的思想针对少数类试图增加其样本数目时,可以通过聚集在一起相似度较高的样本来人工合成一些与少数类性质较为相似的样本,并以相同标签进行标记,从而达到少数类样本的增加。

本发明提出的方案结合过采样和欠采样重构数据集的思想,发挥其优势,同时尽量减弱简单的随机欠采样和随机过采样对数据集重构的不利影响,最终达到有效均衡化数据集的目的。

图1示出了本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法的流程图,参见图1,本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法,包括:

s1,获取非均衡数据集,确定少数类样本点的数据集和多数类样本点的数据集。

具体地,本发明给定一个非均衡的数据集,分别在少数类样本点的数据集和多数类的样本点集之上进行基于密度的聚类。根据少数类样本点和多数类样本点各自的聚类情况,对少数类样本点进行人工合成样本点,增加样本点数目,对多数类样本点则依据随机欠抽样进行适当的剔除工作,降低多数类样本点的重叠情况。

针对数据集非均衡问题,本发明利用dbscan(密度聚类)的优点,对数据集中的样本点做细粒度处理。在这个聚类算法中,它将“簇”看作为数据集中被低密度区域分割开的高密度区域或者是“稠密区域”。

数据集中的点通过dbscan聚类后,样本点将被区别为三种情况,分别为核心对象,边缘点,或者噪声点。该算法将任意两个距离小于半径eps的核心对象样本点归并为同一个聚类簇。若某一边界点与核心点非常的近,也将被归入与核心对象点相同的簇中。而即非核心对象,同时也不与其他样本点密度相连,则被归为噪声点。

以下通过步骤s2和s3分别对少数类样本点进行处理和对多数类样本点进行处理的方案进行进一步说明。

s2,对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点。

具体地,少数类样本点在密度聚类之后,被聚集的样本点的处理原则可以包括:

原则一:每个少数类样本点的聚类簇中,在生成样本点的过程中,如若选取的两个样本均为核心对象样本点,则通过两个样本点加权,在其附近各生成一个相似的样本点,具体可以参见图2。当然,如若选取的两个样本点均为边缘点则不做任何处理,重新选取。

原则二:每个聚类簇中,在生成样本点的过程中,如若选取的两个样本,一个为核心对象样本点,另一个为边缘点,则仅在核心对象样本点附近生成样本点,具体参见图3。

原则三:若为噪声点,则可以直接对该样本点的属性添加一个扰动,生成一个新的样本点。

作为本发明实施例的一个可选实施方式,参见图4,对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点包括:对少数类样本的数据集进行密度聚类,得到少数类聚类簇;判断少数类聚类簇是否为噪声点集合;如果是噪声点集合,则随机选取样本点,对样本点各属性随机扰动,生成一个样本点;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否为两个核心对象样本点;如果是两个核心对象样本点,则两个样本点根据随机向量进行加权,在两个核心对象样本点附近各生成一个样本点;如果不是两个核心对象样本点,则判断是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则两个样本点根据随机向量加权,在核心对象样本点附近生成一个样本;如果不是一个为核心对象样本点,另一个为边缘点,则返回执行随机选取两个样本点的操作。通过此种方式,可以增加少数类样本点的数量。

作为本发明实施例的一个可选实施方式,本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法还包括:将生成的样本点标记为少数类样本点。由此可以对新增加的样本点进行分类和标记。

s3,对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点。

具体地,多数类样本在密度聚类之后,被聚集的样本点的处理原则包括:

原则一:在每一个由核心对象和边缘点构成的聚集簇中,进行随机欠抽样,剔除样本点的处理对象为核心对象,边缘点不做处理。这是因为核心对象处样本点密集度高,样本重叠情况严重,剔除一些,仅是减弱信息的冗余,并不是信息量的损失,具体参见图5。

原则二:噪声点不做处理。噪声点为用于分割高密度区域的低密度区域的样本点,这些点重叠情况很少,随意剔除,会导致原始数据集信息量的损失。

作为本发明实施例的一个可选实施方式,参见图6,对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点包括:对多数类样本的数据集进行密度聚类,得到多数类聚类簇;判断多数类聚类簇是否为噪声点集合;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则剔除核心对象样本点。通过此种方式,可以剔除多数类样本点的重复的样本点。

值得说明的是,本发明中,步骤s2和步骤s3的执行顺序可以是同时进行,也可以是先执行步骤s2后执行步骤s3,还可以是先执行步骤s3后执行步骤s2,即,上述步骤s2和步骤s3的执行顺序并不在本发明中做出具体限制。

s4,根据处理后的少数类样本点和处理后的多数类样本点得到非均衡数据集的均衡结果。

由此可见,通过本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法,通过密度聚类的使用,细粒度的对样本点做了划分,同时结合现有方法欠抽样或过抽样的思想,对信息冗余点做剔除,同时利用非冗余且同一个类簇中的点,对少数类标签的点,通过适当加权,生成有相似属性的点,从而达到数据集均衡化的目的,为后续机器学习算法在数据集上高性能的表现奠定基础。

本发明实施例提供的基于密度聚类的非均衡数据集的均衡化方法结合过采样和欠采样思想重构数据集,同时尽量减弱简单的随机欠采样和随机过采样对数据集重构的不利影响,最终达到有效均衡化数据集的目的,为后续基于数据集训练而来的模型的性能的改善奠定了基础,同时,对均衡化程度的不同设置生成多个重构数据集,可以有效结合常用的集成学习算法,进一步增强模型的性能。

图7示出了本发明实施例提供的基于密度聚类的非均衡数据集的均衡化装置的结构示意图,该基于密度聚类的非均衡数据集的均衡化装置应用于上述基于密度聚类的非均衡数据集的均衡化方法,以下仅对基于密度聚类的非均衡数据集的均衡化装置的结构进行简要说明,其他未尽事宜,请参照上述基于密度聚类的非均衡数据集的均衡化方法的相关说明,在此不再赘述。参见图7,本发明实施例提供的基于密度聚类的非均衡数据集的均衡化装置,包括:

获取模块701,用于获取非均衡数据集,确定少数类样本点的数据集和多数类样本点的数据集;

合成模块702,用于对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点;

剔除模块703,用于对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点;

均衡模块704,用于根据处理后的少数类样本点和处理后的多数类样本点得到非均衡数据集的均衡结果。

作为本发明实施例的一个可选实施方式,合成模块702通过如下方式对少数类样本的数据集进行密度聚类,根据少数类样本点的聚类情况,对少数类样本进行合成样本点的操作,得到处理后的少数类样本点:合成模块702,具体用于对少数类样本的数据集进行密度聚类,得到少数类聚类簇;判断少数类聚类簇是否为噪声点集合;如果是噪声点集合,则随机选取样本点,对样本点各属性随机扰动,生成一个样本点;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否为两个核心对象样本点;如果是两个核心对象样本点,则两个样本点根据随机向量进行加权,在两个核心对象样本点附近各生成一个样本点;如果不是两个核心对象样本点,则判断是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则两个样本点根据随机向量加权,在核心对象样本点附近生成一个样本;如果不是一个为核心对象样本点,另一个为边缘点,则返回执行随机选取两个样本点的操作。

作为本发明实施例的一个可选实施方式,剔除模块703通过如下方式对多数类样本的数据集进行密度聚类,根据多数类样本点的聚类情况,对多数类样本进行剔除样本点的操作,得到处理后的多数类样本点:剔除模块703,具体用于对多数类样本的数据集进行密度聚类,得到多数类聚类簇;判断多数类聚类簇是否为噪声点集合;如果不是噪声点集合,则随机选取两个样本点,判断两个样本点是否一个为核心对象样本点,另一个为边缘点;如果一个为核心对象样本点,另一个为边缘点,则剔除核心对象样本点。

作为本发明实施例的一个可选实施方式,本发明实施例提供的基于密度聚类的非均衡数据集的均衡化装置还包括:标记模块705;标记模块,用于将生成的样本点标记为少数类样本点。

由此可见,通过本发明实施例提供的基于密度聚类的非均衡数据集的均衡化装置,通过密度聚类的使用,细粒度的对样本点做了划分,同时结合现有方法欠抽样或过抽样的思想,对信息冗余点做剔除,同时利用非冗余且同一个类簇中的点,对少数类标签的点,通过适当加权,生成有相似属性的点,从而达到数据集均衡化的目的,为后续机器学习算法在数据集上高性能的表现奠定基础。

本发明实施例提供的基于密度聚类的非均衡数据集的均衡化装置结合过采样和欠采样思想重构数据集,同时尽量减弱简单的随机欠采样和随机过采样对数据集重构的不利影响,最终达到有效均衡化数据集的目的,为后续基于数据集训练而来的模型的性能的改善奠定了基础,同时,对均衡化程度的不同设置生成多个重构数据集,可以有效结合常用的集成学习算法,进一步增强模型的性能。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1