训练数据集中的类别不平衡,不能只依赖简单复制少数类样本解决。更稳妥的做法是先确认不平衡是否影响业务目标,再结合数据清洗、分层划分、适度采样、类别权重、损失函数、数据增强和阈值调整进行联合优化,并使用适合不平衡任务的指标验证效果。未来,处理方向将进一步从静态重采样转向动态重加权、长尾表征学习、生成式数据增强和基于风险的决策优化。

训练数据集类别不平衡的核心处理思路
类别不平衡是指不同类别在训练数据中的样本数量或有效信息量差异较大。例如,欺诈交易只占全部交易的千分之一,医学影像中的阳性病例远少于阴性病例,或某些长尾商品的标注数量明显低于热门商品。
优先遵循六个原则
- 先诊断,后处理:区分真实业务分布、标注缺失、数据采样偏差和类别定义问题。
- 训练集可以调整,测试集应保持真实:验证集和测试集应尽量反映线上分布,避免评估结果虚高。
- 不只看准确率:同时关注少数类召回率、精确率、F1、PR-AUC、ROC-AUC和业务成本。
- 避免过度补偿:过采样或高类别权重可能导致误报增加和模型过拟合。
- 数据与算法协同:采样策略、损失函数、阈值和后处理需要整体评估。
- 以错误代价为依据:漏检和误报的成本不同,最优方案不一定是类别分布最均衡的方案。
类别不平衡的定义、成因与风险
常见不平衡类型
- 数量不平衡:不同类别的样本量差异明显。
- 难度不平衡:少数类内部差异大,且更容易与多数类混淆。
- 标签不平衡:少数类标注质量较差,存在漏标、错标或标注标准不一致。
- 分布不平衡:训练数据与线上数据的类别比例、场景或人群结构不同。
- 层级长尾:头部类别占据大部分样本,尾部类别数量持续下降。
主要风险
模型可能通过预测多数类获得较高准确率,却几乎无法识别少数类。常见表现包括少数类召回率过低、概率校准失真、决策阈值不适用,以及模型在新场景中的泛化能力下降。若少数类代表风险事件、缺陷或疾病,这类问题通常会直接影响业务安全。
数据层面的优化方法
1. 重新检查数据与标签
在采样之前,应检查标签定义、重复样本、数据泄漏、异常样本和少数类标注质量。对少数类进行抽样复核,往往比盲目增加样本更有效。还应按时间、用户、设备或主体进行分组切分,避免同一主体同时出现在训练集和测试集中。

2. 过采样少数类
随机过采样通过重复少数类样本提高其训练频率,实现简单,适合数据量较小的任务。但重复样本过多会增加过拟合风险。SMOTE等合成方法可在特征空间中生成新样本,适合连续特征较多且类别边界相对稳定的任务;对于文本、图像或复杂离散特征,应谨慎验证合成样本是否符合真实语义。
3. 欠采样多数类
随机欠采样可以降低训练成本并减少多数类主导程度,但可能丢失重要信息。更稳妥的方式包括基于聚类保留代表样本、删除冗余样本,或针对边界样本进行选择性欠采样。数据量本身不大时,不宜大幅削减多数类。
4. 数据增强与主动采集
图像任务可使用符合业务规律的裁剪、旋转、颜色变化或混合增强;文本任务可采用回译、同义改写或受约束的生成增强。增强必须保持标签语义不变。对于高价值少数类,更有效的长期方法是主动采集真实数据,并优先补充模型最不确定、最容易混淆的样本。
算法与损失函数层面的优化方法
1. 类别权重
在损失函数中提高少数类权重,可以让模型更重视少数类错误。权重可按类别频率的倒数、平方根倒数或有效样本数计算,但不应机械使用极端权重。建议通过验证集或业务成本矩阵调参,并观察不同类别的概率校准情况。
2. 加权损失与焦点损失
加权交叉熵适合多数分类模型,是常用基线。Focal Loss会降低容易分类样本的影响,更关注难例,适用于目标检测或正负样本差异较大的任务。类别平衡损失、LDAM等方法则尝试同时考虑类别频率与分类间隔,适合长尾分类场景。
3. 难例挖掘与分阶段训练
模型可以记录高置信度错误样本、决策边界附近样本和少数类内部的代表性样本,再进行定向训练。分阶段训练通常先学习稳定的通用表征,再加强少数类分类器或决策头,可减少头部类别对表征空间的挤压。
4. 集成与迁移学习
分层采样训练多个模型,再通过集成降低单一采样方案的偏差。对于少数类样本极少的任务,可使用预训练模型、迁移学习或自监督学习先获得通用表征,再进行少量标注数据的微调。
评估、阈值与业务场景适配
不要将准确率作为唯一指标
- 少数类召回率:适合关注漏检成本的风控、医疗筛查和安全检测场景。
- 精确率:适合误报会带来高运营成本的告警和审核场景。
- F1或F-beta:用于在精确率与召回率之间进行权衡;F-beta可提高对召回率的重视。
- PR-AUC:在正类极少时通常比ROC-AUC更能反映模型识别少数类的能力。
- 混淆矩阵与成本指标:帮助定位具体错误类型及其业务影响。
单独优化决策阈值
模型训练完成后,不必默认使用0.5作为分类阈值。应根据验证集上的精确率、召回率、成本矩阵和人工审核能力选择阈值。线上还需要持续监控类别比例、预测分数分布、少数类召回率和数据漂移,防止训练阶段的优化在真实分布变化后失效。
不同场景下的策略选择
风控与异常检测
异常通常极少且不断变化,重点应放在高召回率、低误报和持续反馈。可结合代价敏感学习、阈值分层、人工复核和新型异常样本回流,不建议只依赖固定过采样比例。
医学与工业缺陷检测
漏诊或漏检成本通常较高,应优先保障少数类召回率,同时通过专家复核、困难样本增强和概率校准控制误报。测试集应按患者、批次或设备隔离,避免相关样本泄漏。
文本与图像长尾分类
可先使用预训练表征,再结合类别权重、少数类增强、分阶段训练和分类器重校准。对于极少样本类别,应评估零样本、少样本或层级分类方案,而不是无限生成近似样本。
类别不平衡处理的最佳实践流程
- 明确少数类的业务价值、漏检成本和误报成本。
- 统计各数据切分中的类别比例,并检查时间、主体和场景分布。
- 复核少数类标签质量,清理重复样本和潜在泄漏。
- 建立不做处理的基线模型,记录混淆矩阵和PR-AUC等指标。
- 分别比较采样、类别权重、损失函数和数据增强方案。
- 在保持真实分布的验证集上选择阈值,并进行概率校准。
- 使用分组交叉验证或时间切分评估稳定性。
- 上线后监控类别漂移、模型分数、误报漏报和人工反馈。
- 将新发现的难例回流到数据集,形成持续迭代闭环。
未来演进趋势
从静态采样转向动态重加权
未来系统会根据训练阶段、样本难度、类别变化和业务风险动态调整采样概率与损失权重,减少固定比例带来的过拟合和偏差。
生成式数据增强更加受约束
生成模型可以补充尾部类别,但重点将从“生成更多样本”转向“生成可验证、覆盖真实变化、不会改变标签语义的样本”。自动质量筛选、去重和分布一致性检测会成为必要环节。
长尾表征学习与分类器解耦
研究和工程实践会更多区分“学习通用特征”和“学习类别决策”两个阶段,利用重采样或重校准改善尾部类别,而不破坏头部类别已经学到的表征。
从分类指标转向风险决策优化
模型评价将更加重视不同错误的实际成本、资源约束、公平性和可解释性。最终目标不是让数据分布看起来均衡,而是在真实约束下实现可接受的风险与收益平衡。
数据质量与反馈闭环成为核心能力
随着模型部署,类别比例会变化,少数类也可能出现新的子类型。自动漂移检测、主动学习、弱监督标注和人工反馈回流,将比一次性调整训练集更重要。
常见问题
类别不平衡达到什么程度才需要处理?
没有统一比例阈值。应结合少数类召回率、混淆矩阵和业务错误成本判断。如果多数类基线已经导致少数类几乎无法识别,或者少数类漏检代价较高,就需要进行针对性处理。
过采样和欠采样应该如何选择?
数据量较小且少数类重要时,可优先尝试适度过采样或类别权重;多数类数据量很大、存在大量冗余时,可使用选择性欠采样。两者都应在真实分布的验证集上比较,不能只看训练集指标。
SMOTE适用于所有机器学习任务吗?
不适用。SMOTE更适合连续数值特征和类别边界相对平滑的任务。对高维稀疏文本、复杂图像或离散组合特征,合成样本可能缺乏真实语义,应优先考虑预训练表征、任务相关增强或真实数据采集。
为什么训练集做了平衡,测试集却不能一起平衡?
如果线上类别分布本身不均衡,测试集也应尽量保留这种分布,否则准确率、精确率和PR-AUC等指标可能与真实部署效果不一致。可以额外构造平衡测试集分析类别能力,但不能用它替代真实分布评估集。
类别权重越大,少数类效果越好吗?
不一定。权重过大可能使模型过度关注少数类,造成误报增加、概率失真和泛化下降。应根据验证集表现、成本矩阵和阈值调整结果选择权重,并检查不同类别的校准情况。
类别不平衡任务最推荐看哪个指标?
应根据业务目标组合使用指标。正类极少时,PR-AUC通常比ROC-AUC更有参考价值;关注漏检时看少数类召回率,关注误报时看精确率,同时结合F1、混淆矩阵和实际错误成本。
总结
类别不平衡的优化不是简单把各类别样本数调整为相同,而是围绕真实分布、标签质量、错误成本和部署约束建立完整方案。最佳实践包括数据诊断、合理采样、类别权重、损失函数优化、难例挖掘、阈值调节和持续监控。未来将向动态重加权、可靠生成增强、长尾表征学习与风险驱动决策演进。