本发明涉及数据挖掘和机器学习领域,具体涉及一种不平衡数据集的过采样方法。
背景技术:
近些年,分类算法取得了长足的发展,但是随着数据来源的扩大,人们获得的不平衡数据越来越多。现有分类算法对不平衡数据敏感,直接采用现有分类算法难以对不平衡数据进行准确分类。
在二分类问题中,不平衡样本数据集是指某一类的样本数量明显少于另一类样本数量,数量占优势的类别通常称为负类或多数类,数量稀少的分类通常称为正类或少数类。相关学者通过大量实验总结了不平衡数据集异常点、噪声和某一类样本数量稀少等问题,得出了分类器在分类预测不平衡数据集时,结果倾向于多数类,造成很大的预测误差。实际数据集如癌症诊断、血液样本中心、网络信息安全等数据集通常是不平衡的,所以需要改进传统算法解决数据集不平衡分类问题。
有的学者以随机向上抽样为核心思想提出了smote算法(合成少数过采样技术),通过人为构造正类样本使得数据集中负类样本和正类样本的数量趋于平衡;也有学者提出了将boosting机器学习思想与样本构造结合起来,对原始正类样本中错误分类的样本加大权值,将训练的许多弱分类器组合成强分类器,减少了对正类样本的预测误差;还有学者提出代价敏感学习算法,其核心思想是赋予正类样本错判更大的惩罚,正类较负类错判代价高迫使模型对稀少的正类具有更高的预测正确率。以上算法存在无法控制正类样本生成区域和样本生成个数,样本分布容易边缘化,算法计算复杂度大,以及耗费时间、效率较低等问题。
技术实现要素:
为了提高对不平衡数据分类准确性,优化算法计算和数据集分布,本发明提出了一种不平衡数据集的过采样方法。
本发明提出的不平衡数据集的过采样方法包含以下过程:
步骤s1将获取的不平衡数据集划分为正类样本集和负类样本集;
步骤s2求解正类样本集的质心以及距离质心最远的三个正类样本,以所求的三个正类样本为顶点建立三角形;
步骤s3随机选取其中一个三角形顶点与质心连线,并在所述连线上随机生成新的正类样本;
步骤s4评估新生正类样本合理性,将评估合理的新生正类样本加入正类样本集实现对正类样本集的更新;
步骤s5更新的正类样本集与负类样本集的样本量不等时重复步骤3和步骤4生成新的正类样本继续补充正类样本集,直到更新的正类样本集与负类样本集的样本量平衡。
可选地,步骤s1通过样本的class字段值对不平衡数据集x进行划分,class字段值为1的样本划入正类样本集xpositive,class字段值为0的样本划入负类样本集xnegative。
可选地,步骤s2进一步包含以下过程:
设定正类样本集xpositive中的正类样本为n个,每一个正类样本表示为:
xi=(xi1,xi2,xi3,...,xin)(1)
其中,n表示每个正样本数据的维数,i∈[1,n];
设定y质为正类样本集xpositive的质心,y质表示为:
y质=(y1,y2,y3,...,yn)(2)
其中,
遍历所有正类样本xi,选出到质心y质距离最大的三个样本,并根据距离,由大到小依次表示为xfmax、xsmax、xtmax。
可选地,正类样本xi到质心y质距离采用欧式距离公式进行计算,可表示为:
可选地,步骤s3中,新生正类样本表示为xnew,计算公式为:
xnew=y质 rand(0,1)×(xm-y质)(4)
其中,xm={xfmax,xsmax,xtmax},rand(0,1)表示随机生成的(0,1)之间小数。
可选地,步骤s4中利用cca初步评估新生正类样本xnew的合理性,包含以下过程:
步骤h1根据k-means算法对新生正类样本xnew进行聚类,得到k个类簇;
步骤h2在各类簇中,分别采用欧式距离公式计算每两个样本之间的距离;
步骤h3在各类簇中排序筛选出最大距离,并将k个最大距离各自对应的样本成对删除,实现对新生正类样本xnew的清洗,完成初步评估。
可选地,步骤s4中利用gan进一步评估xnew合理性包含以下过程:
步骤e1将不平衡数据集x划分成训练集xa和预测集xb,正类样本、负类样本在训练集xa中的比例以及在预测集xb中的比例,都与正类样本、负类样本在不平衡数据集x中的比例一致;
步骤e2使用训练集xa对随机森林分类模型进行模型训练,通过训练完成的模型对预测集xb进行分类,得到不平衡数据集x的评估指标accuracy、f-measure和g-mean数值;
步骤e3将清洗过的新生正类样本xnew加入不平衡数据集x中生成新的数据集x',对新的数据集x'进行划分生成新的训练集x'a和预测集x'b,正类样本、负类样本在训练集x'a中的比例以及在预测集x'b中的比例,都与正类样本、负类样本在新的数据集x'中的比例保持一致;
步骤e4使用新的训练集x'a对随机森林分类模型进行模型训练,通过训练完成的模型对新的预测集x'b进行分类,得到新的数据集x'的评估指标accuracy'、f-measure'和g-mean'数值;
步骤e5对比分析评估指标,相较于不平衡数据集x的三个评估指标,新的数据集x'的三个评估指标分别得到提高,则评估新生正类样本xnew合理,否则评估其不合理。
可选地,所述评估指标中accuracy、f-measure以及g-mean的计算公式如下:
其中,accuracy为准确率,反应对样本判定能力;tp、fn分别为预测集xb中样本真实类别为正类,预测结果分别为正类、负类的样本数量;fp、tn分别为新的预测集xb中样本真实类别为负类,预测结果分别为正类、负类的样本数量;查准率
与现有技术相比,本发明所述不平衡数据集的过采样方法通过正类样本的质心和正类样本进行新的正类样本的生成,具体的,根据欧式距离计算公式求解出到质心距离最远的三个样本建立三角形,在质心与任意三角形顶点的连线上随机产生大量正类样本,从而降低了算法方面的复杂度,并优化了数据集分布。同时,本发明创造性地采用gan(生成对抗网络)思想,提出了一套评估判断生成样本合理性的完整方法,提高了对不平衡数据分类准确性。
附图说明
图1为本发明所述不平衡数据集的过采样方法流程简图;
图2为本发明所述方法的具体执行流程示意图。
具体实施方式
不平衡样本数据集是生活中常见的一种数据形式,如医院的癌症诊断数据集中诊断患癌的数据要远远少于健康的数据,工厂的工业零件质检数据中质检不合格的数据要明显小于合格的数据,交通队的交通车辆违规数据集中违规的车辆数据也要远远小于遵守交规的车辆数据。在二分类问题中,这类不平衡样本数据集的一类样本量明显少于另一类样本量,将样本量多的一类称为负类或多数类,样本量稀少的一类称为正类或少数类,而正类或少数类样本往往需要特别关注,准确识别,因此本发明提供了一种不平衡数据集的过采样方法用于提高不平衡数据分类的准确性。
首先,获取不平衡数据集,将不平衡数据集划分为正类样本集和负类样本集;其次,计算正类样本集的质心,在正类样本集中找到距离质心最远的三个正类样本,并以之为顶点建立三角形;其次,随机选取其中一个三角形顶点与质心进行连线,在顶点与质心的连线上随机生成新的正类样本;其次,利用cca和gan思想评估新生成的正类样本合理性,并将评估合理的样本加入正类样本集实现对正类样本集的更新;最后,比较更新的正类样本集与负类样本集的样本量,样本量差值大时重复步骤3和步骤4生成新的正类样本继续补充正类样本集,直到更新的正类样本集与负类样本集的样本量平衡。本发明所述不平衡数据集的过采样方法流程如图1所示。
以下通过附图,结合较佳的具体实施例对本发明方法作详细阐述。
不平衡数据集用x表示,在实际应用中不平衡数据集通常可以通过人工现场进行采集或由需求方提供,需求方包括医院、工厂、交通队等。每个样本都有一个class字段,值为1或0,根据class字段值将样本分为正类样本和负类样本,将不平衡数据集x划分为正类样本集xpositive和负类样本集xnegative,其中,class字段值为1的样本为正类样本,划入正类样本集xpositive;class字段值为0的样本为负类样本,划入负类样本集xnegative。
本实例设定正类样本集xpositive中的正类样本量为n个,每个正类样本表示为:
xi=(xi1,xi2,xi3,...,xin)(1)
其中,n表示每个正样本数据的维数,i∈[1,n];
设定y质为正类样本集xpositive的质心,y质表示为:
y质=(y1,y2,y3,...,yn)(2)
其中,
遍历所有正类样本xi,选出到质心y质距离最大的三个样本,并根据距离,由大到小依次表示为xfmax、xsmax、xtmax。
正类样本xi到质心y质距离采用欧式距离公式进行计算,计算公式可表示为:
将根据公式(3)求得的三个正类样本xfmax、xsmax、xtmax作为顶点,建立三角形。
随机选取三角形的一个顶点与质心y质进行连线,并在所述连线上随机生成新的正类样本,新生正类样本表示为xnew,计算公式为:
xnew=y质 rand(0,1)×(xm-y质)(4)
其中,xm={xfmax,xsmax,xtmax},rand(0,1)表示随机生成的(0,1)之间小数。
本发明所述方法通过欧式距离公式计算距离选取样本降低了算法复杂度;通过建立三角形,随机选取三角形顶点与质心进行连线,并且在连线上随机生成新的正类样本来提高新生正类样本的多样性,实现多个方向上随机生成正类样本,优化了数据集的分布。
在本实施例中,采用cca(典型相关分析)对新生正类样本xnew的合理性进行初步评估,具体包含以下步骤:
步骤h1根据k-means算法即k均值聚类算法,对新生正类样本xnew进行聚类,得到k个类簇。
步骤h2在各类簇中,分别采用欧式距离公式计算每两个样本之间的距离。
采用欧氏距离计算公式对每一类簇中的样本进行合理性判断,对于欧氏距离越远的样本,其稀疏性越高、聚集度越低,从而合理性越低。
步骤h3在各类簇中排序筛选出最大距离,并将k个最大距离各自对应的样本成对删除,实现对新生正类样本xnew的清洗,完成初步评估。
通过成对删除各类簇中合理性较低的样本,留下的聚集度、合理性较高的样本,实现对新生正类样本xnew的清洗,然后采用gan(生成对抗网络)思想对清洗后的新生正类样本xnew的合理性进行进一步的评估。
所述gan(生成对抗网络)思想即在训练过程中,生成网络尽量生成真实的样本去欺骗判别网络,而判别网络则尽量把生成网络生成的样本和真实样本进行区分辨别,生成网络和判别网络构成一个动态的“博弈过程”。
本实施例中,采用gan思想对清洗后的新生正类样本xnew的合理性进行进一步的评估,具体包含以下步骤:
步骤e1将不平衡数据集x划分成训练集xa和预测集xb,正类样本、负类样本在训练集xa中的比例以及在预测集xb中的比例,都与正类样本、负类样本在不平衡数据集x中的比例保持一致。
步骤e2使用训练集xa对随机森林分类模型进行模型训练,通过训练完成的模型对预测集xb进行分类,得到不平衡数据集x的评估指标accuracy、f-measure和g-mean数值。
所述评估指标accuracy、f-measure以及g-mean的计算公式如下:
随机森林分类模型通过accuracy表示预测的准确率,即对样本的判定能力,能将正类样本的判定为正类样本、负类样本判定为负类样本的能力;tp、fn分别为预测集xb中样本真实类别为正类,预测结果分别为正类、负类的样本数量;fp、tn分别为新的预测集xb中样本真实类别为负类,预测结果分别为正类、负类的样本数量;查准率precision表示预测为正类样本的样本中真正的正类样本的比例,
步骤e3将清洗过的新生正类样本xnew加入不平衡数据集x中生成新的数据集x',对新的数据集x'进行划分生成新的训练集x'a和预测集x'b,正类样本、负类样本在训练集x'a中的比例以及在预测集x'b中的比例,都与正类样本、负类样本在新的数据集x'中的比例保持一致。
步骤e4使用新的训练集x'a对随机森林分类模型进行模型训练,通过训练完成的模型对新的预测集x'b进行分类,得到新的数据集x'的评估指标accuracy'、f-measure'和g-mean'数值。
所述评估指标accuracy'、f-measure'和g-mean'的计算方法可参考评估指标accuracy、f-measure以及g-mean。
步骤e5对比分析评估指标,相较于不平衡数据集x的三个评估指标,新的数据集x'的三个评估指标分别得到提高,则评估新生正类样本xnew合理,否则评估其不合理。
将评估合理的新生正类样本加入正类样本集xpositive实现对正类样本集xpositive的更新。
比较更新的正类样本集xpositive与负类样本集xnegative的样本量,当更新的正类样本集xpositive远远小于负类样本集xnegative的样本量时,再次随机选取一个三角形顶点与质心进行连线,并在连线上随机生成新的正类样本;同时利用cca和gan思想评估新生正类样本合理性并将评估合理的新生正类样本加入更新的正类样本集xpositive中,重复上述操作直到更新的正类样本集与负类样本集的样本量平衡,图2为本发明所述不平衡数据集的过采样方法的具体执行流程示意图。
本发明所述不平衡数据集的过采样方法通过采用cca和gan思想评估新生正类样本合理性,提高了了对不平衡数据分类准确性;本发明所述不平衡数据集的过采样方法适用于需要对稀少类数据进行关注的不平衡数据集。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
1.一种不平衡数据集的过采样方法,其特征在于,包含以下过程:
步骤s1将获取的不平衡数据集划分为正类样本集和负类样本集;
步骤s2求解正类样本集的质心以及距离质心最远的三个正类样本,以所求的三个正类样本为顶点建立三角形;
步骤s3随机选取其中一个三角形顶点与质心连线,并在所述连线上随机生成新的正类样本;
步骤s4评估新生正类样本合理性,将评估合理的新生正类样本加入正类样本集实现对正类样本集的更新;
步骤s5更新的正类样本集与负类样本集的样本量不等时重复步骤3和步骤4生成新的正类样本继续补充正类样本集,直到更新的正类样本集与负类样本集的样本量平衡。
2.如权利要求1所述过采样方法,其特征在于,步骤s1通过样本的class字段值对不平衡数据集x进行划分,class字段值为1的样本划入正类样本集xpositive,class字段值为0的样本划入负类样本集xnegative。
3.如权利要求1所述过采样方法,其特征在于,步骤s2进一步包含以下过程:
设定正类样本集xpositive中的正类样本为n个,每一个正类样本表示为:
xi=(xi1,xi2,xi3,...,xin)(1)
其中,n表示每个正样本数据的维数,i∈[1,n];
设定y质为正类样本集xpositive的质心,y质表示为:
y质=(y1,y2,y3,...,yn)(2)
其中,
遍历所有正类样本xi,选出到质心y质距离最大的三个样本,并根据距离,由大到小依次表示为xfmax、xsmax、xtmax。
4.如权利要求3所述过采样方法,其特征在于,正类样本xi到质心y质距离采用欧式距离公式进行计算,可表示为:
5.如权利要求3所述过采样方法,其特征在于,步骤s3中,新生正类样本表示为xnew,计算公式为:
xnew=y质 rand(0,1)×(xm-y质)(4)
其中,xm={xfmax,xsmax,xtmax},rand(0,1)表示随机生成的(0,1)之间小数。
6.如权利要求1或3所述过采样方法,其特征在于,步骤s4中利用cca初步评估新生正类样本xnew的合理性,包含以下过程:
步骤h1根据k-means算法对新生正类样本xnew进行聚类,得到k个类簇;
步骤h2在各类簇中,分别采用欧式距离公式计算每两个样本之间的距离;
步骤h3在各类簇中排序筛选出最大距离,并将k个最大距离各自对应的样本成对删除,实现对新生正类样本xnew的清洗,完成初步评估。
7.如权利要求6所述过采样方法,其特征在于,步骤s4中进一步评估xnew合理性包含以下过程:
步骤e1将不平衡数据集x划分成训练集xa和预测集xb,正类样本、负类样本在训练集xa中的比例以及在预测集xb中的比例,都与正类样本、负类样本在不平衡数据集x中的比例一致;
步骤e2使用训练集xa对随机森林分类模型进行模型训练,通过训练完成的模型对预测集xb进行分类,得到不平衡数据集x的评估指标accuracy、f-measure和g-mean数值;
步骤e3将清洗过的新生正类样本xnew加入不平衡数据集x中生成新的数据集x',对新的数据集x'进行划分生成新的训练集x'a和预测集x'b,正类样本、负类样本在训练集x'a中的比例以及在预测集x'b中的比例,都与正类样本、负类样本在新的数据集x'中的比例保持一致;
步骤e4使用新的训练集x'a对随机森林分类模型进行模型训练,通过训练完成的模型对新的预测集x'b进行分类,得到新的数据集x'的评估指标accuracy'、f-measure'和g-mean'数值;
步骤e5对比分析评估指标,相较于不平衡数据集x的三个评估指标,新的数据集x'的三个评估指标分别得到提高,则评估新生正类样本xnew合理,否则评估其不合理。
8.如权利要求7所述过采样方法,其特征在于,所述评估指标中accuracy、f-measure以及g-mean的计算公式如下:
其中,accuracy为准确率,反应对样本判定能力;tp、fn分别为预测集xb中样本真实类别为正类,预测结果分别为正类、负类的样本数量;fp、tn分别为新的预测集xb中样本真实类别为负类,预测结果分别为正类、负类的样本数量;查准率
