基于SMOTE不平衡扩充采样算法的改进

2023-05-06 03:00:32宣晶雪张权李晓红王书宜
科技风 2023年12期

宣晶雪 张权 李晓红 王书宜

摘 要:针对不平衡数据集少类样本分类精度低的现象,本文提出了一种新的不平衡数据扩充采样算法。改进算法通过距离度量,在少类样本中心与其近邻间进行随机线性插值,使数据平衡。改进算法与SMOTE算法、C_SMOTE算法分别对5个不平衡数据集进行扩充分类对比实验,基于AUC、OOB、F值与G值评价指标及成对样本T检验,证明改进算法能有效缓解类不平衡,并具有更优异的不平衡数据处理性能。

关键词:不平衡数据;SMOTE算法;安全点;噪声点;随机森林算法

随着人工智能领域的飞速发展,基于大数据的分类研究被认为是可期待的新技术[1]。由于采样环境差异,大数据通常存在类不平衡。类不平衡问题会产生许多标准学习算法分类性能的严重障碍[2]。分类器进行训练时,往往更易学习多类(负类)样本的特性,从而引起少类(正类)样本被误分,导致严重后果。例如,医学研究的分类问题中,如若有正常样本80个,患病样本20个,即使所有的患病样本都被误分,分类模型的准确率仍能达到80%。但就实际问题而言,误诊会产生严重影响。因此,不平衡数据集的扩充分类显得尤为重要[3]。

1 SMOTE算法分析

SMOTE算法是由Chawla提出的不平衡数据扩充的常见算法[4]。其基本原理是在少类样本与其近邻样本间进行随机的线性插值来完成数据扩充,以达到一定的不平衡比率。不平衡比率为样本集合中少类样本数目与多类样本数目的比值[5]。

SMOTE算法的具体步骤为:对任意的一个少类样本xi(i=1,2,…,n),计算xi与其他少类样本的距离,得到样本xi的k个近邻。再从k个近邻中任意选取m个近邻样本,记作xij(j=1,2,…,m),通过在xi与xij之间进行随机的线性插值构造新的少类样本。插值公式为:

xnew=xi+rand(0,1)(xij-xi)

其中xnew表示人为构造的少类样本,rand[0,1]是区间[0,1]上满足均匀分布的随机数。

2 改进算法

2.1 改进算法设计

首先,SMOTE算法虽在一定程度上改善了不平衡数据集的分类效果,但其k值需人为确定,具有一定的盲目性[6]。其次,對于边缘点而言,经SMOTE算法扩充后的样本点仍可能是边缘点,导致扩充数据边缘化,且易模糊正负类边界。

本文提出改进算法,依据一定的划分规则,将少类样本划分为安全点与噪声点,仅在安全点与少类样本中心点(少类样本均值)间以线性插值的方式构造少类样本。使得扩充的少类样本分布在原始少类样本中心点附近,有效避免扩充数据边缘化,且规避SMOTE算法中k值选取的不确定性。

2.2 改进算法流程

假设原始数据维度为m×r,m为样本总个数,r为样本特征总个数。其中少类样本维度为n×r,多类样本维度为(m-n)×r。

(1)归一化预处理。分别对少类、多类样本进行归一化处理,使所有样本取值介于[0,1]之间,避免量纲差异产生误差。

x′ij=xij-xjminxjmax-xjmin

其中x′ij为已进行归一化预处理后的第j个特征属性下的第i个样本,xij为原始数据中第j个特征属性下的第i个样本,xjmax为样本基于第j个特征属性下的最大值,xjmin为样本基于第j个特征属性下的最小值。

(2)计算少类样本中心点。依据下式,取归一化后各特征属性下的均值为少类样本中心点,记作x′center。

x′center=(1n∑ni=1x′i1,1n∑ni=1x′i2,…,1n∑ni=1x′ir)

其中是x′ir为已进行归一化预处理后的第r个特征属性下的第i个样本,n为少类样本个数。

(3)划分少类数据为安全点和噪声点。计算少类样本中心x′center与每个少类样本点x′i之间的欧氏距离,记作disti(i=1,2,…,n)。并计算少类样本中心x′center与多类样本点间欧氏距离的平均值,记作distaverage。若distidistaverage,则第i个少类样本点记为噪声点;若disti

(4)数据扩充。在少类样本中心点x′center与安全点之间通过如下公式进行数据扩充。

x′new=x″i+rand(0,1)(x′center-x″i)

其中x′new为新扩充的少类样本,x″i为安全点集合中的少类样本,rand[0,1]是区间[0,1]上满足均匀分布的随机数。

(5)选取不平衡比率。文献[2]中研究表明不平衡比率为0.7时,扩充融合数据分类效果最优。故本文当不平衡比率达到0.7时停止扩充。

(6)更新总数据集。将扩充后的少类样本与预处理后的数据集合融合,随机抽样划分训练集与测试集为3∶1,并利用随机森林模型对更新后的数据集进行分类。

改进算法流程图如图1所示:

3 对比实验分析

3.1 实验评估指标

本文不平衡数据扩充分类实验中的评价指标为AUC值、袋外误差OOB、F值与G值。

3.2 实验环境

实验数据来源于UCI数据库中Pima、WPBC、WDBC、Ionosphere、Breastcancerwisconsin 5个不平衡数据集,表1为其具体信息。本文提出的改进算法由Excel、Python与SPSS共同实现。Excel用于划分安全点与噪声点,扩充算法由Excel与Python共同实现,随机森林算法使用Python3.7软件编程实现,成对样本T检验通过SPSS实现。随机森林模型进行分类时,采用5折交叉验证防止过拟合,通过Gini指数选取最优特征,每棵决策树选取的特征个数依据经验公式h=logr2+1计算,r为每个数据集中总特征个数,每棵决策树选取的h个特征是随机的。

3.3 数值实验

本文提出改進算法与SMOTE算法、C_SMOTE算法分别对5个不平衡数据集进行扩充,并用随机森林模型对扩充后的融合数据分类。为获取科学准确的实验结果,重复扩充分类实验5次,取其平均值为最终实验结果。

3.4 实验结果分析

3.4.1 对比试验结果分析

Pima、WDBC、WPBC、Ionosphere和Breastcancerwisconsin数据集的实验结果如图2~图6所示,粗体表示实验效果较好的数据组。

根据图2~图6可知,对于5个数据集合而言,均是改进算法组对应的AUC值、F值、G值最高,OOB值最低。因此本文提出的改进算法对应的扩充分类效果优于原始未扩充数据、SMOTE算法和C_SMOTE算法。

3.4.2 成对样本T检验分析

为了进一步说明改进算法较SMOTE算法具备更良好的不平衡扩充性能,采用成对样本T检验对其进行验证。Sig双侧值是成对样本T检验的主要评价指标,若Sig双侧值小于0.05,则配对样本有显著性差异,否则不具有显著性差异。配对样本为5个不平衡数据集基于改进算法与SMOTE算法连续10次扩充分类实验的OOB值,表2为5组数据的成对样本统计量表格,粗体为实验效果较好的数据组。表3为5组数据成对样本检验结果。

根据表2可知,改进算法组对应的泛化误差更小,标准差与标准误差更低。即与SMOTE算法相比,改进算法对应的扩充分类效果更好,对不平衡数据的处理能力更优。

根据表3可知,5组配对样本数据的Sig双侧值均小于0.05,因此改进算法与SMOTE算法分别对5个不平衡数据集进行扩充,再经随机森林模型进行分类,其分类效果具有显著性差异。

结语

本文提出了一种基于SMOTE算法的不平衡数据扩充采样算法。基于数据层面,模拟原始少类样本的分布特性,围绕少类样本中心,在安全点内线性插值构造数据,使得扩充数据分布在中心点附近,有效克服扩充数据边缘化。实验表明,改进算法显著提升不平衡数据集的分类效果,有效缓解了不平衡数据集分类难的现象。不平衡数据扩充其本质是希望提高原始少类样本的分类效果。未来,可从原始少类样本角度出发,尝试增加仅评估原始少类样本分类效果的评价指标,对算法扩充性能进行验证。

参考文献:

[1]唐思均.基于优化SMOTE算法的非平衡大数据集分类研究[J].沈阳工程学院学报(自然科学版),2021,17(03):7176.

[2]Ma L,Li Y,Fan S,et al.A Hybrid Method for Image Segmentation Based on Artificial Fish Swarm Algorithm and Fuzzy cMeans Clustering[J].Computational and Mathematical Methods in Medicine,2015(4):110.

[3]张天翼,丁立新.一种基于SMOTE的不平衡数据集重采样方法[J].计算机应用与软件,2021,38(09):273279.

[4]Nitesh V Chawla,Kevin W Bowyer,Lawrence O Hall.SMOTE:Synthetic Minority Oversampling Technique[J].Journal of Artificial Intelligence Research,2002,16(1):321357.

[5]李志强,余炫朴.基于SMOTELR的大学生学术失信预测研究[J].东北师大学报(哲学社会科学版),2021(04):7683.

[6]王文博,曾小梅,赵引川,等.基于SMOTEXGBoost的变压器缺陷预测[J].华北电力大学学报(自然科学版),2021,48(05):5460+71.

基金资助:黑龙江省省属高等学校基本科研业务费科研项目(145109132)

作者简介:宣晶雪(1995— ),女,汉族,黑龙江齐齐哈尔人,硕士,助教,研究方向:系统分析与优化研究。