首页> 中国专利> 一种基于密度及复杂度的不平衡数据集采样方法

一种基于密度及复杂度的不平衡数据集采样方法

摘要

本发明涉及一种基于密度及复杂度的不平衡数据集采样方法,属于数据分类技术领域。本发明首先对少数类样本的分布情况进行量化,并将其定义为样本的复杂度。通过密度峰值聚类算法对少数类样本进行聚类,根据每个子簇的密度和分布情况确定子簇的采样倍率,并以簇内样本的复杂度为指导选出基准样本和辅助样本,最后在基准样本和辅助样本之间随机插入新的样本。本发明通过对样本的分布情况进行量化,并在采样倍率确定阶段同时考虑了样本的数量和复杂度,在样本生成阶段以复杂度为指导生成新样本,有效地提高了对新样本的利用率。

著录项

  • 公开/公告号CN114936589A

    专利类型发明专利

  • 公开/公告日2022-08-23

    原文格式PDF

  • 申请/专利权人 昆明理工大学;

    申请/专利号CN202210413977.0

  • 发明设计人 丁家满;阚杰;贾连印;付晓东;

    申请日2022-04-17

  • 分类号G06K9/62(2022.01);

  • 代理机构昆明明润知识产权代理事务所(普通合伙) 53215;

  • 代理人王鹏飞

  • 地址 650093 云南省昆明市五华区学府路253

  • 入库时间 2023-06-19 16:26:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-09

    实质审查的生效 IPC(主分类):G06K 9/62 专利申请号:2022104139770 申请日:20220417

    实质审查的生效

说明书

技术领域

本发明涉及一种基于密度及复杂度的不平衡数据集采样方法,属于数据挖掘中的数据分类技术领域。

背景技术

近年来,互联网、大数据及云计算等技术的飞速发展产生了海量的数据资源,为人工智能技术的快速发展提供了条件。人工智能由许多基础领域组成,例如机器学习、自然语言处理以及数据挖掘等,而数据分类是给这些领域的研究提供信息的重要手段之一,其本质是运用算法对数据的特征进行充分有效的学习,得到一个分类器模型,并使用这个分类器模型对未知的数据进行分类。经历了漫长的探索与研究后,许多分类算法被提出,例如支持向量机(Support Vector Machine,SVM)、k近邻(k-nearest neighbor,k-NN)、决策树(Decision Tree)和随机森林(random-forest,RF)等分类算法通过对一些普通的数据集进行学习后都能够获得性能较好的分类器模型。当在传统的分类算法中使用不平衡的数据集训练分类模型时,模型会因为损失函数最小化原则,尽可能将未知样本预测为多数类,这也导致了少数类样本被错误分类的概率升高。而在实际的生产生活中收集到的数据集通常都是不平衡的,在这些数据集中各类别样本在数量上无法达到基本一致,这就给一些现有的分类算法带来了挑战。具体地,假设一个不透明的袋子中有100张纸币,其中有99张是真币,1张是假币,每次有放回的从口袋中随机抓取一张,并对其真假进行预测。当我们每次都预测抓出的纸币是真币时,我们的预测准确率将达到99%,然而将抓取出来的纸币正确预测为假币的概率却为0,很明显这种结果不是我们所需要的。

发明内容

本发明要解决的技术问题是提供一种基于密度及复杂度的不平衡数据集采样方法,从而解决上述问题。

本发明的技术方案是:一种基于密度及复杂度的不平衡数据集采样方法,先对样本的分布情况进行了量化,并将其定义为样本的复杂度,然后对数据集中的少数类样本进行聚类,紧接着针对聚类后每个少数类子簇内样本的数量情况和样本分布情况确定出对应子簇中少数类样本的采样倍率,分别在各子簇中以样本的复杂度占比为概率选取对应采样倍率的样本作为基准样本,最后分别对这些基准样本做k近邻查询,再以样本的复杂度占比为概率选取辅助样,并在基准样本和辅助样本之间随机插入一个新的样本。

具体步骤为:

Step1:计算少数类样本的密度和复杂度。

Step 2:对少数类样本进行聚类。

Step 3:针对聚类后的每个子簇,分别计算出簇密度和簇复杂度,并以此计算出簇的密度权重和簇的复杂度权重。

Step 4:计算各子簇的采样权重和采样倍率。

Step 5:分别在各子簇中按照子簇的采样倍率,以样本复杂度为指导选取基准样本和辅助样本,并在选取的基准样本和辅助样本之间随机插入新样本。

所述Step1具体为:

Step1.1:利用高斯核函数估算每个少数类样本的密度。

Step1.2:设定近邻参数k。

Step1.3:分别对每个少数类样本做k近邻查询。

Step1.4:计算k个近邻中不属于少数类样本的样本数量,以该数量作为对应少数类样本的复杂度。

所述Step3具体为:

Step3.1:将簇内样本密度之和作为簇密度。

Step3.2:将簇内样本复杂度之和作为簇复杂度。

Step3.3:计算簇的密度权重。

Step3.4:计算簇的复杂度权重。

Step3.5:重复上述步骤,直至计算出所有簇的密度权重和复杂度权重。

所述Step4具体为:

Step4.1:子簇以其自身的密度权重与复杂度权重的线性组合作为对于簇的采样权重。

Step4.2:根据采样权重计算出子簇的采样倍率。

Step4.3:重复上述步骤,直至计算出所有簇的采样权重。

所述Step5具体为:

Step5.1:以少数类样本的复杂度与其所在簇的复杂度之比为选取概率,按概率选取基准样本。

Step5.2:对选中的基准样本查询其k近邻。

Step5.3:将k近邻中的样本以其复杂度与所有k近邻样本的复杂度之和的比值作为选取概率,按概率选取辅助样本。

Step5.4:在基准样本和辅助样本之间随机插入新样本。

Step5.5:重复上述步骤,直至所有簇都生成与采样倍率数量相等的新样本。

本发明的有益效果是:

1、本发明在采样倍率确定阶段,同时考虑了样本的数量和分布情况,有效提高了新样本对于不平衡数据类间和类内的平衡效果。

2、本发明以样本复杂度为指导,以概率抽取的方式选择基准样本和辅助样本,有效提高了对新样本的利用率,提高了对少数类决策边界的巩固效果。

附图说明

图1是本发明的步骤流程图;

图2是本发明实施例中abalone数据集样本分布复杂度图。

具体实施方式

下面结合附图和具体实施方式,对本发明作进一步说明。

实施例1:如图1所示,一种基于密度及复杂度的不平衡数据集采样方法,具体步骤为:

Step1:利用高斯核函数按照公式

根据少数类样本的分布情况计算出少数类样本的复杂度,查询少数类样本的k近邻,统计这k个近邻中不属于少数类样本的样本数量,并将统计到的样本数量记为该少数类样本的复杂度。

根据公式

Step2:利用密度峰值聚类算法并结合步骤1中计算出的少数类样本密度对少数类样本进行聚类,将少数类样本分为多个子簇。

Step3:根据Step1中得到的少数类样本的密度和复杂度计算出Step2中聚类后得到的各子簇的密度和复杂度。

子簇的密度按照公式

子簇的复杂度按照公式

根据各子簇的密度和复杂度计算各子簇的密度权重和复杂度权重。由于密度越大的子簇,簇内的样本数量越大,采样倍率应该相对更小,子簇的密度权重应该与子簇的密度成反比

子簇的复杂度权重按照公式

重复本步骤,直到计算出所有子簇的密度权重和复杂度权重。

Step4:计算每个子簇的采样权重,同时考虑子簇内样本的数量情况和分布情况,样本数量越大采样倍率越小,样本的分布情况越复杂采样倍率越大,因此根据公式

根据每个子簇的采样权重计算出最终的采样倍率,假设采样总量为m,按照公式

Step5:选取基准样本的具体方法是以样本的复杂度比上所在簇内所有样本的复杂度之和作为样本被抽取的概率。按照该抽取概率从当前簇中选取样本作为基准样本,根据公式

假设已经在某个少数类子簇中抽取了一个样本作为基准样本,接下来是在当前的子簇内查询该基准样本的k近邻样本,从查询到的k近邻中再选取一个样本作为辅助样本。

辅助样本的选取是以近邻中的样本复杂度比上所有近邻样本的复杂度之和作为抽取概率来选取辅助样本,根据公式

在选中的基准样本和辅助样本之间随机插入一个新样本。重复本步骤,直到所有簇都生成与采样倍率数量相等的新样本。

实施例2:以数据集Abalone为例,使用本发明提出的方法,对其进行采样,以达到数据集平衡,提高分类器对少数类样本的分类性能。

由于Abalone的原始数据是多类别的,因此先从数据集中取出类别为16和类别为6的样本并构成一个新的数据集Abalone,数据集描述如表1所示,数据集中类别16和类别6的样本数量比为1比3.9。

表1:Abalone数据集

在类别合并后的Abalone数据集上实施本发明提出的方法,具体步骤如下:

Step1:根据公式

Step2:从数据集中取出类别为16的所有样本,并根据密度峰值聚类算法对这些样本进行聚类,聚类后得到三个子簇。为了方便描述,这里使用聚类过程中选取出来作为聚类中心的3个少数类样本的样本编号对三个子簇进行命名:簇11、簇50、簇168。

Step3:根据公式

Step4:根据公式

表2:Abalone数据集三个子簇的采样倍率

Step5:根据Step4中给三个子簇分配的采样倍率生成新的少数类样本,以簇11为例,计算该簇中每个少数类样本的复杂度与该簇所有少数类样本复杂度之和的比值,以该比值作为对应少数类样本被抽取作为基准样本的概率。

假设已经按概率抽取了一个少数类样本作为基准样本,接下来,查询该样本的k近邻,此处将k值设为5,即查询样本的5个近邻,为了从这5各位近邻中再选取一个作为辅助样本,分别计算5个近邻样本的复杂度与这5个近邻样本复杂度之和的比值,并以此作为抽取概率。在簇11中重复抽取基准样本及其对应的辅助样本,并在它们中间插入新的样本,直到插入的新样本数量达到簇11分配的采样倍率。其他两个簇以同样的方法完成样本的生成。

通过以上五个步骤后,本发明针对不平衡数据集的采样已经完成,之后就可以将经过采样后的数据集运用到现有的分类算法当中,为了实施例的完整性,使用决策树分类算法对采样后的数据集进行分类测试。表3展示了数据集经过本发明提出的采样方法以及其他三种常用的采样方法采样后在决策树中的精确率。

表3:在决策树中的精确率

从上表可以看出本发明提出的方法具有有效性。图2中展示了数据集Abalone经过几种不同采样方法采样后样本的整体复杂度,可以看到经过本发明的采样方法采样后,数据集中样本的复杂度更低,进一步说明了本发明的有效性。

以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号