真实面经题目 · 原创解析
在样本不平衡问题中,除了修正数据集,还能有哪些方法?
样本不平衡除了修正数据集,还可以从损失函数、样本权重、阈值移动、指标选择、模型集成、概率校准和业务决策成本入手。回答要说明不同方法解决的是训练偏差、预测阈值还是评估偏差。
除了过采样和欠采样,我会考虑:给少数类更高 class weight 或 sample weight;使用 focal loss、cost-sensitive loss 等让难样本和少数类更重要;调整分类阈值而不是固定 0.5;使用 PR-AUC、Recall、F1、混淆矩阵和业务成本评估;做概率校准和分桶分析;必要时用集成、异常检测或两阶段召回模型。核心是把少数类识别能力和误判成本一起优化。
不平衡问题下 accuracy 往往没有意义,模型可能全预测多数类也得高分。应优先看 PR-AUC、Recall、Precision、F1、混淆矩阵、Top-K 命中和业务成本。
class weight、sample weight 和 cost-sensitive loss 可以提高少数类错误的惩罚,让模型训练时更关注少数类。权重不是越大越好,需要在验证集上平衡误报和漏报。
focal loss 会降低易分类样本的权重,让模型关注难样本;加权交叉熵适合类别比例悬殊但标签可靠的场景。不同损失函数要结合噪声水平选择。
模型输出概率后,业务阈值可以按 Recall、Precision、F1、收益成本或风险等级选择。很多不平衡场景的关键不是模型结构,而是阈值策略。
还可以用两阶段模型先高召回筛候选,再精排;或对极少数异常类使用异常检测。线上需要概率校准、分桶监控和人群稳定性检查。
class weight 改变损失贡献,不复制样本;过采样改变训练数据分布,可能增加少数类曝光但也更容易复制噪声。
适合大量易分类多数类样本压倒训练的场景。它降低易样本权重,让模型更关注难样本和少数类。
根据验证集上的业务成本、Precision-Recall 曲线、F1 或召回目标选择,并在线上持续监控误报和漏报。