1、2023 年 1 月 Jan 2023Digital Technology&Application第 41 卷 第 1 期Vol.41 No.1数字技术与应用13中图分类号:TP274文献标识码:A 文章编号:1007-9416(2023)01-0013-03DOI:10.19695/12-1369.2023.01.04一种改进 SMOTE 的 AdaSMOTE 过采样算法东北大学汤晶晶本文从过采样的角度对不平衡数据集进行了优化,从而改善了分类器在少数类样本中的预测准确率。为了量化边界样本学习的难易程度,引入分类硬度来求取边界样本所需要合成的样本数目,以实现更准确的过采样策略。从过采样角度,提
2、出 AdaSMOET 算法实现边界样本的自适应取样,克服了原始的 SMOTE 算法不能按照样本的重要程度取样的缺点。实验结果表明,提出的AdaSMOET 算法优于原 SMOTE 算法。随着科技的发展,人们对数据的收集、存储能力越来越强,大量的数据被广泛地应用于各个领域,人们也在不断地挖掘这些数据的潜力,同时,大数据、人工智能等技术也在飞速发展。在这种背景下,人们对数据挖掘、机器学习等方面的研究也日益重视。分类问题是目前数据挖掘中的一个热门课题,其代表有决策树、支持向量机、K 最近邻、朴素贝叶斯、神经网络等。这些方法对一般的分类问题都有很好的处理效果。但是随着数据的规模越来越大,数据类型越来越复
3、杂,数据不平衡,用传统的机器学习方法对数据进行分类已经越来越无力。在许多实际问题中,不平衡数据集的产生越来越频繁。对于不平衡的数据,传统的分类器在训练数据时,通常会预先假定样本是均衡的,从而使各样本的误分率相同。因此,对少数类别样本的分类效果往往不佳。但是,在现实问题中,少数类别的样本研究价值更高,值得重视。在一个分类工作中,不同类别的样本数量差异很大时,我们一般称之为“类别不平衡”。在医疗行业中,癌细胞的数量要比癌细胞多得多,失衡的比例有可能达到 100:1 或更加高于此比例,如果把癌变细胞测成正常细胞,也就是说误判了,那就是致命的;在信用卡诈骗检测中,有欺骗行为的用户如果被识别成诚信用户,
4、将会造成巨大的经济损失;在故障诊断、用户流失预测、网络入侵检测1等方面也出现了数据不均衡的问题。因此,提高分类器对少数类样本的分类精度,既有很强的理论意义,又有重要的应用价值。当前,关于不平衡数据集的分类问题,研究者主要从数据层次和算法层次两个方面进行了深入的探讨。数据层次的研究主要包括欠采样、过采样和混合采样三种2,3,都是在训练前对原始的数据重新取样,来改变数据集合的分布,以达到均衡。在传统的分类任务中,一般假定样本的分配是平衡的,所以在训练数据集时,每一次误分的代价都是一样的,但是,在实际中,尤其是在不平衡条件下,不同的样本对分类器的影响并不完全相同,靠近类中心的样本具有较强的代表性,靠
5、近边界近的样本可以较好地识别出不同的类别。根据不均衡数据集的分布特性,研究人员将分类困难原因归为四大类型:样本稀缺、边界重叠、数据碎片和噪音4。基于此,本文从数据层次着手,从过采样的角度对不平衡数据集进行了优化,从而改善了分类器在少数类样本中的预测准确率。从过采样角度,提出 AdaSMOET 算法实现边界样本的自适应取样,克服了 SMOTE 算法5不能按照样本的重要程度取样的缺点。1 改进 SMOTE 的 AdaSMOTE 过采样算法根据样本的分类难度,样本按 k 近邻分为安全样本、边界样本和噪音样本5。边界样本与其他类样本之间的距离较近,边界样本与其他样本之间存在着较大的误差,所以更可能被误
6、分,因此为了量化边界样本学习的难易程度,采用分类硬度来求取边界样本所需要合成的样本数目,以实现更准确的过采样策略。边界样本ibfalse 的分类硬度定义如式(1)所示:1/nbiiiirrr=10,1)(1,2,.,irrnbi=(1)其中,/iirkK=是边界样本的 K 个邻近样本中多数类样本(k 个)所占的比例,nb 是边界样本的样本量。分类硬度即为将 ri进行正则化后的统计量。如此,自适应收稿日期:2022-08-23作者简介:汤晶晶(1998),女,湖北荆门人,硕士,研究方向:异常检测。数字技术与应用 第 41 卷14地确定各边界样本所需合成样本量为 gi为:gi=Gri,G是边界样本
7、所需合成的样本总量。AdaSMOTE 过采样算法:输入:原始数据集 D,少数类样本数目 Ns,多数类样本数目 Nl,最近邻样本个数K;输出:新的平衡数据集 D。算法步骤:(1)对于每个少数类样本,利用欧氏距离计算其 K个邻近以及 K 邻近中所包含的多数类样本数量 k;(2)通过比较K 与 k 的关系对少数类样本进行划分:如果 K=k,认为该样本为噪声样本;如果/2KkK,认为该样本为边界样本,并保存在边界样本集 B 中;如果0/2kK,认为该样本为安全样本,并保存在安全样本集 S 中;(3)通 过 对 K 与 k 的 比 较 得 到 安 全 样 本 集 S=12,.,nss ss和边界样本集
8、B=12,.,nbb bb(4)计算少数类样本需要合成的样本数量 G=(Nl-NS),其中0,1为新样本集的不平衡率;(5)对于边界样本集 B=12,.,nbb bb中每个样本,计算 K 个邻近样本中多数类样本的百分比:/irkK=,)(1,2,.,nbi=,(0,1ir;(6)将 ri正则化,得到每个边界样本 bi的分类硬度,1/nbiiiirrr=1)(1,2,.,iirnbi=;(7)计算每个边界样本bi需要合成的样本数目gi=Gri,)(1,2,.,nbi=;(8)对每个少数类边界样本 bi,通过循环的方式来合成 gi个少数类样本:(9)1for ito nb=;(10)1ifor j
9、to g=;(11)从bi的 k个近邻中随机选择一个少数类样本 bzi;(12)合成少数类样本 wi,j=bi+(bzi-bi),是属于0,1 的随机数;(13)end(14)end(15)将 所有安全样本 s1,s2,sns、边界样本 b1,b2,bnb以及合成的新样本,(1,2,.,;1,2,.)i jiwinbjg=放入新的少数类样本集与多数类样本共同组成新数据集 D。2 数据集与评价准则本文使用了 UCI 数据库的数据集进行数据分析。这些数据集有 A、B、C。而在修改后的算法中,在数据集A、B、C 中,B 数据集是多分类集,A 数据集和 C 数据集是是二分类集。因为 B 数据集包含多于
10、两个类,手工选取其中一个类为少数类,将剩余类合并为多数类。有些数据集合含有名义属性,而 SMOTE 算法是针对数字属性而设计的,不能被应用到名词属性中。为便于使用,去掉所有的名词属性。而在AdaSMOTE算法中参数随数据集的属性数目而变化。也就是说参数会随着数据集合的属性数量而变化。A 数据集、B 数据集、C 数据集的参数分别为 14、12、8,如表 1 所示给出了具体的数据集的具体信息。其中不平衡率是指多数类样本数与少数类样本数的比值。表 1 数据集信息Tab.1 Dataset information数据集名称标签数 属性数少数类样本数多数类样本数不平衡率A21411687371553.1
11、8B71227473575413.02C282685001.86在此基础上,将多种机器学习方法用于过采样数据的分类器,其中包含 K 最近邻即 KNN6、朴素贝叶斯Bayes7和支持向量机 SVM8。通过试验,对 SMOTE 算法和 AdaSMOTE 算法进行了测试。AdaSMOTE 算法是基于 SMOTE 的一种改进算法。本文采用 AdaSMOET自适应边界取样的方法,由于 SMOTE 算法时原始算法,所以选取 SMOTE 算法作为比较对象。试 验 评 估 采 用 准 确 率(ACC)、召 回 率(REC)和F-measure 来衡量算法的性能。准确率、召回率和F-measure的定义分别如公
12、式(2)、公式(3)和公式(4)所示:()22 (1)(2)1TPprecisionTPFPTPrecallTPFNrecallprecisionFmeasureprecisionreca=+=+=+(3)ll (2)(3)(4)其中,TP 表示异常的数据预测样本数,FP 表示错误地判别正常的数据样本数,FN 错误地判别异常的数据样本数;为谐波系数,这里设 的值为 1。3 实验与分析由于随机因素的影响,单个试验不能很好地反映出该算法的性能,为了提高实验结果的精确性,本文通过 10 次重复试验,准确率(ACC)、召回率(REC)和2023 年第 1 期15汤晶晶:一种改进 SMOTE 的 Ada
13、SMOTE 过采样算法F-measure 的值都取 10 次试验的平均结果。两种算法的试验结果在表 2、表 3、表 4 所示。表 2 A 数据集实验结果Tab.2 A dataset experimental results过采样方法分类器PRERECF1-measureAdaSMOTEKNN0.7250.7070.716Bayes0.8800.3100.458SVM0.5780.9870.729SMOTEKNN0.7280.7010.714Bayes0.8570.3040.451SVM0.5710.9820.732表 3 B 数据集实验结果Tab.3 B dataset experiment
14、al results过采样方法分类器PRERECF1-measureAdaSMOTEKNN0.9360.9880.960Bayes0.8010.8450.821SVM1.0000.0790.144SMOTEKNN0.9280.9940.959Bayes0.7990.8450.820SVM1.0000.2290.357表 4 C 数据集实验结果Tab.4 C dataset experimental results过采样方法分类器PRERECF1-measureAdaSMOTEKNN0.7250.8640.878Bayes0.7760.7190.745SVM0.5280.9870.686SMOT
15、EKNN0.7270.8510.783Bayes0.7740.7080.738SVM0.5240.9930.686通过对 A、B、C三个数据集的试验,AdaSMOTE 算法在准确率(ACC)、召回率(REC)和 F1-measure 方面比原 SMOTE 算法具有更好的性能,这也表明该方法的整体性能优于原有的 SMOTE 算法,并且在准确率指标上,不同分类器下各数据集改进算法的结果提升了1 2。在使用不同的分类算法时,本文算法也有不同的表现,在使用向量机分类器时,AdaSMOTE 算法会有更好的性能。在表 4 中可以观察到在不同的分类器下,AdaSMOTE 算法的结果明显有提升。4 结语SMO
16、TE 算法在产生新的样本时,少数类样本点的选取概率是一样的,而实际问题中每个样本对分类器所起的作用并不都是相同的,本文克服了 SMOTE 算法不能按照样本的重要程度取样的缺点,并且介绍了一种 AdaSMOTE算法。最后,对所提出的算法进行了全面的分析,并进行试验验证其有效性。从试验结果来看,AdaSMOTE 算法基于原始 SMOTE算法在综合性能上有一定的提升,虽然该方法优于原有的 SMOTE 方法,但在数据集极不平衡的情况下,结果还未知。所以,如果数据集表现为极度不平衡时,还需要探索更有效的算法。引用1ROYDD,SHIND.NetworkIntrusionDetectioninSmartG
17、ridsforImbalancedAttackTypesUsingMachineLearningModelsC/InternationalConferenceonInformationandCommunicationTechnologyConvergence(ICTC).IEEE,2019:576-581.2MAHESHWARIS,AGRAWALJ,SHARMAS.ANewApproachforClassificationofHighlyImbalancedDatasetsUsingEvolutionaryAlgorithmsJ.ScientificandEngineeringResearch
18、,2011(2):1-5.3THANATHAMATHEEP,LURSINSAPC.HandlingImbalancedDataSetswithSyntheticBoundaryDataGenerationUsingBootstrapRe-samplingandAdaBoostTechniquesJ.PatternRecognitionLetters,2013(34):1339-1347.4QIANY,LIANGYC,LIM,etal.AResamplingEnsembleAlgorithmforClassificationofImbalanceProblemsJ.Neurocomputing,
19、2014(143):57-67.5CHAWLANV,BOWYERKW,HALLLO,etal.SMOTE:syntheticminorityover-samplingtechniqueJ.JournalofArtificialIntelligenceResearch,2002,16(1):321-357.6LINWC,TSAICF,HUYH,etal.Clustering-basedUndersamplinginClass-imbalancedDataJ.fnformationSciences,2017,409-410:17-26.7ALPAYDINE.IntroductiontoMachineLearningM.SecondEdition.Cambridge,MITPress,2010:1-584.8DHARS,CHERKASSKYV.Developmentandevaluationofcost-sensitiveuniversum-SVMJ.IEEETransonCybernetics,2017,45(4):806-818.