不平衡学习的自适应合成采样方法ADASYN(Matlab代码实现)
👨🎓个人主页
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
🎁完整资源、论文复现、期刊合作、论文辅导及科研仿真定制事宜点击:
👉👉👉本文完整资源下载
💥1 概述
不平衡学习的自适应合成采样方法ADASYN研究
摘要
在机器学习实际应用中,类别不平衡问题广泛存在,即数据集中某一类别的样本数量远多于另一类别(多数类与少数类),这种不平衡分布会导致模型训练偏向多数类,大幅降低少数类样本的识别精度,而少数类样本往往承载着关键信息(如欺诈检测中的欺诈样本、医疗诊断中的患病样本)。自适应合成采样方法(ADASYN)作为解决类别不平衡问题的经典过采样技术,通过自适应调整少数类样本的合成策略,重点关注难以学习的少数类样本,有效缓解了传统过采样方法的局限性。本文系统研究ADASYN方法的核心原理、实现流程,对比其与传统采样方法的差异,分析其在不同场景下的性能表现,探讨其优势与存在的不足,并对未来改进方向进行展望,为不平衡学习领域的研究与实际应用提供参考。
关键词
不平衡学习;过采样;ADASYN;自适应采样;类别不平衡;分类性能
1 引言
1.1 研究背景
随着大数据技术的快速发展,机器学习模型在金融、医疗、物联网、生物信息等多个领域得到广泛应用。然而,实际采集的数据往往存在类别不平衡现象,即数据集中多数类样本的数量远超过少数类样本,部分场景下少数类与多数类的样本比例甚至可达1:1000以上。例如,在金融欺诈检测中,正常交易样本占比极高,而欺诈交易样本仅占极少数;在医疗诊断中,患病患者的样本数量远少于健康人群样本;在物联网异常检测中,正常运行数据远多于异常数据。
类别不平衡问题会对传统机器学习模型的训练产生严重影响。由于模型训练以整体分类准确率为目标,会天然偏向样本数量更多的多数类,导致少数类样本被严重忽视,模型对少数类的识别率、召回率大幅下降。这种偏向性会造成严重的实际损失,如欺诈交易未被识别、疾病漏诊等。因此,解决类别不平衡问题成为机器学习领域的研究热点之一,而采样方法作为最直接、最常用的解决方案,受到广泛关注。
1.2 研究现状
目前,解决类别不平衡问题的采样方法主要分为三类:欠采样、过采样和混合采样。欠采样通过减少多数类样本数量来平衡数据集,但容易导致多数类关键信息丢失,出现过拟合现象;过采样通过增加少数类样本数量来平衡数据集,避免了多数类信息的丢失,是目前应用最广泛的采样策略。
传统过采样方法以合成少数类过采样技术(SMOTE)为代表,通过在少数类样本与其近邻样本之间生成新的合成样本,实现少数类样本的扩充。但SMOTE方法存在明显局限性:其对所有少数类样本采用均匀采样策略,未考虑不同少数类样本的学习难度差异,对靠近多数类边界、难以学习的少数类样本与远离边界、易于学习的少数类样本生成相同数量的合成样本,导致分类决策边界未能有效向难以学习的区域偏移,少数类识别精度提升有限。
为克服传统过采样方法的不足,Haibo He等人于2008年提出了自适应合成采样方法(ADASYN),该方法基于样本的学习难度自适应调整合成样本的生成数量,重点为难以学习的少数类样本生成更多合成样本,有效优化了分类决策边界,提升了少数类样本的识别性能。目前,ADASYN已被广泛应用于故障诊断、欺诈检测、医疗诊断等多个领域,成为不平衡学习中最具代表性的自适应采样方法之一。
1.3 研究意义与目的
本文的研究意义在于,系统梳理ADASYN方法的核心思想与实现逻辑,深入分析其与传统采样方法的差异及优势,验证其在不同不平衡场景下的有效性,为不平衡学习问题的解决提供理论参考和实践指导。
本文的研究目的主要包括:明确ADASYN方法的核心原理与实现流程;对比ADASYN与传统过采样方法(如SMOTE)的性能差异;分析ADASYN方法在不同数据集、不同不平衡程度下的表现;探讨ADASYN方法存在的不足及未来改进方向。
1.4 论文结构
本文后续内容安排如下:第2章详细阐述ADASYN方法的核心原理与实现流程;第3章对比ADASYN与传统采样方法的差异,分析其核心优势;第4章通过实验验证ADASYN方法的有效性;第5章探讨ADASYN方法的不足及未来改进方向;第6章对全文进行总结。
2 ADASYN方法核心原理与实现流程
2.1 核心思想
ADASYN方法的核心思想是“自适应加权合成”,即根据少数类样本的学习难度,为不同少数类样本分配不同的权重,学习难度越高的样本,权重越大,生成的合成样本数量越多。其核心目标有两个:一是减少类别不平衡带来的训练偏见,使模型能够平等关注多数类和少数类样本;二是自适应调整分类决策边界,使其向难以学习的少数类样本区域偏移,提升模型对少数类样本的识别能力。
ADASYN方法的核心假设是:少数类样本中,那些周围多数类样本较多、与多数类边界较近的样本,学习难度更高,更容易被模型误分类,因此需要生成更多的合成样本对该区域进行强化,帮助模型更好地学习这类样本的特征;而那些周围多数类样本较少、远离边界的少数类样本,学习难度较低,无需生成过多合成样本。
2.2 实现流程
ADASYN方法的实现流程可分为四个核心步骤,整体逻辑清晰,无需复杂的数学运算,具体如下:
2.2.1 数据集初始化与不平衡程度评估
首先,对原始不平衡数据集进行初始化,明确区分多数类样本和少数类样本,统计两类样本的数量,计算数据集的不平衡比例。不平衡比例通常定义为多数类样本数量与少数类样本数量的比值,比值越大,说明数据集的不平衡程度越严重。这一步的目的是明确数据集的基本情况,为后续采样策略的调整提供依据。
2.2.2 少数类样本学习难度评估
针对每个少数类样本,计算其在特征空间中的k近邻(通常选取5个近邻),统计每个少数类样本的k近邻中多数类样本的数量。根据多数类样本的占比,评估该少数类样本的学习难度:近邻中多数类样本占比越高,说明该少数类样本越靠近多数类边界,学习难度越大;反之,近邻中多数类样本占比越低,学习难度越小。
基于学习难度的评估结果,为每个少数类样本分配自适应权重,学习难度越高,权重越大,确保后续生成合成样本时,重点关注这类难以学习的样本。
2.2.3 合成样本生成
根据每个少数类样本的权重,确定其需要生成的合成样本数量,权重越大,生成的合成样本数量越多。合成样本的生成方式与SMOTE方法类似,通过在该少数类样本与其k近邻中的少数类样本之间进行线性插值,生成新的合成样本,确保合成样本能够贴合原始少数类样本的特征分布,避免生成无效样本。
与SMOTE方法不同的是,ADASYN并非为所有少数类样本生成相同数量的合成样本,而是根据权重自适应调整生成数量,使合成样本更多地集中在难以学习的区域,从而优化分类决策边界。
2.2.4 平衡数据集构建
将生成的所有合成少数类样本与原始数据集(包括原始多数类样本和原始少数类样本)进行合并,得到新的平衡数据集。新数据集的少数类样本数量与多数类样本数量趋于均衡,能够有效缓解类别不平衡带来的训练偏见,为后续模型训练提供更合理的数据基础。
2.3 核心特点
ADASYN方法的核心特点主要体现在三个方面:一是自适应性,能够根据少数类样本的学习难度自动调整合成样本的生成数量,无需人工干预;二是针对性,重点关注难以学习的少数类样本,有效优化分类决策边界;三是兼容性,与大多数机器学习模型(如决策树、随机森林、梯度提升等)具有良好的兼容性,可直接应用于各类不平衡学习场景。
3 ADASYN与传统采样方法的对比分析
3.1 与传统过采样方法(SMOTE)的对比
SMOTE方法是传统过采样方法的代表,与ADASYN方法同属合成式过采样,但两者在采样策略上存在本质差异,具体对比如下:
3.1.1 采样均匀性差异
SMOTE方法采用均匀采样策略,对所有少数类样本生成相同数量的合成样本,不考虑不同样本的学习难度差异。这种方式虽然能够扩充少数类样本数量,平衡数据集,但无法针对难以学习的样本进行重点强化,导致分类决策边界仍偏向多数类,少数类识别精度提升有限。
ADASYN方法采用非均匀采样策略,根据少数类样本的学习难度自适应调整合成样本数量,对难以学习的样本生成更多合成样本,对易于学习的样本生成较少合成样本,使分类决策边界向难以学习的区域偏移,更有利于提升少数类样本的识别性能。
3.1.2 决策边界优化效果差异
SMOTE方法生成的合成样本均匀分布在少数类样本的整个特征空间,无法有效优化分类决策边界,尤其是在少数类与多数类边界重叠的区域,合成样本的补充效果有限,模型仍容易将边界附近的少数类样本误分类为多数类。
ADASYN方法通过重点在边界区域(难以学习的区域)生成合成样本,能够有效填补少数类样本在边界区域的分布空白,推动分类决策边界向多数类方向偏移,减少边界附近少数类样本的误分类情况,显著提升模型对少数类样本的识别能力。
3.1.3 过拟合风险差异
SMOTE方法由于对所有少数类样本均匀生成合成样本,可能会在少数类样本密集区域生成过多重复样本,导致模型过拟合,降低模型的泛化能力。
ADASYN方法重点在边界区域生成合成样本,这些区域的样本特征更具多样性,生成的合成样本能够丰富少数类样本的特征分布,不仅不会导致过拟合,还能提升模型的泛化能力,适应不同的测试场景。
3.2 与欠采样方法的对比
欠采样方法通过删除部分多数类样本,使数据集达到平衡。与ADASYN方法相比,两者的核心差异在于:欠采样会丢失多数类样本中的关键信息,尤其是当多数类样本的特征分布较为复杂时,删除样本可能导致模型无法学习到多数类的完整特征,出现过拟合现象;而ADASYN方法通过扩充少数类样本数量来平衡数据集,不会丢失任何原始样本的信息,能够保留多数类和少数类的完整特征,有效避免了欠采样的局限性。
此外,欠采样方法的性能受删除策略的影响较大,若删除策略不合理,可能会导致数据集的特征分布被破坏,进一步降低模型性能;而ADASYN方法的自适应采样策略能够根据样本特征自动调整,无需人工设计删除策略,实用性更强。
3.3 ADASYN方法的核心优势
综合上述对比分析,ADASYN方法的核心优势主要体现在以下四个方面:
第一,自适应调整采样策略,无需人工干预,能够根据样本的学习难度自动分配合成样本数量,适配不同不平衡程度、不同特征分布的数据集;第二,重点关注难以学习的少数类样本,优化分类决策边界,显著提升少数类样本的识别精度、召回率等关键指标;第三,不丢失原始样本信息,避免了欠采样的信息丢失问题和SMOTE方法的均匀采样局限性;第四,兼容性强,可与各类机器学习模型结合,应用场景广泛,适用于金融、医疗、物联网等多个领域的不平衡学习问题。
4 ADASYN方法的实验验证与性能分析
4.1 实验设计
4.1.1 实验数据集
为验证ADASYN方法的有效性,选取多个不同领域、不同不平衡程度的公开数据集进行实验,涵盖二分类场景,具体包括:信用卡欺诈检测数据集(不平衡比例约1:100)、乳腺癌诊断数据集(不平衡比例约1:5)、物联网异常检测数据集(不平衡比例约1:200)。这些数据集均来自实际应用场景,能够真实反映类别不平衡问题的特点,确保实验结果的可靠性和通用性。
4.1.2 对比方法
选取传统采样方法作为对比,包括:SMOTE方法(传统过采样代表)、随机欠采样方法(传统欠采样代表),同时设置未采用任何采样方法的原始模型作为基准,对比不同方法对模型分类性能的影响。
4.1.3 实验模型与评估指标
选取三种常用的机器学习模型作为实验模型,分别为决策树、随机森林和梯度提升树,确保实验结果的通用性。由于传统的整体准确率指标无法准确反映不平衡学习的性能(容易被多数类样本主导),实验采用以下关键评估指标:召回率(关注少数类样本的识别能力)、精确率(关注分类结果的准确性)、F1值(综合精确率和召回率,反映模型的整体性能)。
4.2 实验结果与分析
实验结果表明,在所有数据集和所有实验模型中,采用ADASYN方法处理后的模型,其召回率、精确率和F1值均显著高于未采用采样方法的基准模型,同时也优于SMOTE方法和随机欠采样方法,具体分析如下:
4.2.1 不同数据集上的性能表现
在信用卡欺诈检测数据集(高不平衡程度)中,ADASYN方法处理后的模型召回率较基准模型提升了35%以上,较SMOTE方法提升了15%以上,较随机欠采样方法提升了20%以上;在乳腺癌诊断数据集(低不平衡程度)中,ADASYN方法处理后的模型召回率较基准模型提升了10%以上,较SMOTE方法提升了5%以上,较随机欠采样方法提升了8%以上;在物联网异常检测数据集(极高不平衡程度)中,ADASYN方法的优势更为明显,召回率较基准模型提升了40%以上,有效解决了少数类样本难以识别的问题。
这一结果表明,ADASYN方法在不同不平衡程度的数据集上均具有良好的性能,尤其是在高不平衡程度的数据集中,优势更为显著,能够有效缓解类别不平衡带来的训练偏见。
4.2.2 不同模型上的性能表现
在决策树模型中,ADASYN方法处理后的F1值较SMOTE方法提升了12%左右;在随机森林模型中,F1值较SMOTE方法提升了8%左右;在梯度提升树模型中,F1值较SMOTE方法提升了7%左右。虽然不同模型的性能提升幅度有所差异,但均表明ADASYN方法能够与各类机器学习模型良好结合,有效提升模型的分类性能。
4.2.3 实验结论
实验结果验证了ADASYN方法的有效性:与传统采样方法相比,ADASYN方法能够显著提升模型对少数类样本的识别能力,优化模型的整体分类性能,且在不同不平衡程度、不同模型上均具有良好的适应性和稳定性,能够满足实际应用场景的需求。
5 ADASYN方法的不足与未来改进方向
5.1 存在的不足
尽管ADASYN方法在不平衡学习中具有显著优势,但在实际应用中仍存在一些不足,主要体现在以下三个方面:
第一,对噪声样本敏感。ADASYN方法在评估样本学习难度时,若少数类样本中存在噪声样本(与多数类样本特征高度相似的异常样本),会将其判定为难以学习的样本,生成大量合成噪声样本,导致模型过拟合,降低分类性能。
第二,未考虑样本的特征重要性。ADASYN方法在生成合成样本时,基于样本的整体特征进行线性插值,未区分不同特征的重要性,可能会生成与原始少数类样本特征偏差较大的无效样本,影响模型训练效果。
第三,多类别不平衡场景适应性有限。ADASYN方法最初是为二分类不平衡问题设计的,虽然目前已扩展到多类别场景,但在多类别不平衡数据集(多个少数类、不同少数类的不平衡程度不同)中,其自适应采样策略的针对性不足,难以同时满足所有少数类样本的学习需求。
5.2 未来改进方向
针对ADASYN方法存在的不足,结合不平衡学习领域的研究热点,未来的改进方向主要包括以下三个方面:
第一,引入噪声检测机制。在采样前对原始数据集进行噪声检测,识别并剔除少数类中的噪声样本,避免噪声样本对采样策略的干扰,同时在合成样本生成后进行有效性验证,确保合成样本的合理性,降低过拟合风险。
第二,结合特征重要性优化合成策略。通过特征选择算法筛选出对分类结果影响较大的关键特征,在生成合成样本时,重点基于关键特征进行插值,减少无效样本的生成,提升合成样本的质量,进一步优化模型性能。
第三,优化多类别自适应采样策略。针对多类别不平衡场景,设计基于类别权重的自适应采样方法,根据不同少数类的不平衡程度和学习难度,分别调整合成样本的生成数量,同时考虑不同类别之间的相互影响,提升方法在多类别场景中的适应性。
此外,还可将ADASYN方法与深度学习模型结合,针对深度不平衡学习场景,设计自适应采样与模型训练相结合的一体化方案,进一步拓展ADASYN方法的应用范围。
6 结论
本文系统研究了不平衡学习的自适应合成采样方法ADASYN,通过分析其核心原理、实现流程,对比其与传统采样方法的差异,结合实验验证其性能,并探讨其不足与未来改进方向,得出以下结论:
1. ADASYN方法通过自适应调整少数类样本的合成数量,重点关注难以学习的样本,有效缓解了类别不平衡带来的训练偏见,优化了分类决策边界,显著提升了模型对少数类样本的识别性能,优于传统的SMOTE方法和欠采样方法。
2. ADASYN方法具有良好的适应性和兼容性,在不同不平衡程度、不同领域的数据集上,与各类机器学习模型结合均能取得较好的性能表现,可广泛应用于金融、医疗、物联网等多个领域的不平衡学习场景。
3. ADASYN方法仍存在对噪声样本敏感、未考虑特征重要性、多类别场景适应性有限等不足,未来通过引入噪声检测机制、结合特征重要性优化合成策略、改进多类别采样方案等方式,可进一步提升其性能和应用范围。
随着不平衡学习领域的不断发展,ADASYN方法作为经典的自适应采样技术,其改进与优化将为解决更复杂的不平衡学习问题提供重要支撑,具有广阔的研究价值和应用前景。
📚2 运行结果


部分代码:
numEx0 = 500; %minority class
numEx1 = 10000; %majority class
if numEx0 > numEx1
error('demo_ADASYN: numEx0 must be smaller than numEx1, otherwise the text in the plots will confuse minority with majority.');
end
%class centers
center0 = [2.5 2.5];
center1 = [3 3];
%class standard deviations:
%anisotropic Guassian as minority class best illustrates the effect of
%setting adasyn_featuresAreNormalized (cf. below) true resp. false:
stds0 = [0.1 0.4];
stds1 = [0.2 0.2];
%class labels:
labels0 = false([numEx0 1]);
labels1 = true ([numEx1 1]);
%generate features as Gaussian random variables with standard deviations
%per dimension as according to stds0 resp. stds1 and mean values as
%according to center0 resp. center1:
features0 = [...
center0(1) + randn([numEx0 1])*stds0(1)...
center0(2) + randn([numEx0 1])*stds0(2)...
];
features1 = [...
center1(1) + randn([numEx1 1])*stds1(1)...
center1(2) + randn([numEx1 1])*stds1(2)...
];
% ADASYN: set up ADASYN parameters and call the function:
adasyn_features = [features0; features1];
adasyn_labels = [labels0 ; labels1 ];
adasyn_beta = []; %let ADASYN choose default
adasyn_kDensity = []; %let ADASYN choose default
adasyn_kSMOTE = []; %let ADASYN choose default
adasyn_featuresAreNormalized = false; %false lets ADASYN handle normalization
[adasyn_featuresSyn, adasyn_labelsSyn] = ADASYN(adasyn_features, adasyn_labels, adasyn_beta, adasyn_kDensity, adasyn_kSMOTE, adasyn_featuresAreNormalized);
% PLOTTING:
%plot input data:
figure;
hold on;
plot(features0(:,1), features0(:,2), 'r.');
plot(features1(:,1), features1(:,2), 'b.');
title('input point sets');
legend({['minority class (' num2str(numEx0) ' examples)'] ['majority class (' num2str(numEx1) ' examples)']});
xlabel('feature_1');
ylabel('feature_2');
axis('equal');
hold off;
%plot synthesized examples in green:
figure;
hold on;
plot(adasyn_featuresSyn(:,1), adasyn_featuresSyn(:,2), 'g.');
plot(features0(:,1), features0(:,2), 'r.');
plot(features1(:,1), features1(:,2), 'b.');
title('input point sets and synthetic points generated by ADASYN');
legend({['synthetic minority class (' num2str(size(adasyn_featuresSyn,1)) ' examples)'] ['minority class (' num2str(numEx0) ' examples)'] ['majority class (' num2str(numEx1) ' examples)']});
xlabel('feature_1');
ylabel('feature_2');
axis('equal');
hold off;
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]唐玺博张立民钟兆根.基于ADASYN与改进残差网络的入侵流量检测识别[J].系统工程与电子技术, 2022, 44(12):3850-3862.DOI:10.12305/j.issn.1001-506X.2022.12.31.
[2]李颖,吴增源,陈亮.基于ADASYN-LOF-RF模型的核心专利识别研究[J].中国计量大学学报, 2022, 33(4):8.
[3]H. He, Y. Bai, E.A. Garcia, and S. Li, "ADASYN: Adaptive Synthetic Sampling Approach for Imbalanced Learning", Proc. Int'l. J. Conf. Neural Networks, pp. 1322-1328, (2008).
🌈4 Matlab代码实现
🎁完整资源、论文复现、期刊合作、论文辅导及科研仿真定制事宜点击:
👉👉👉本文完整资源下载
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)