真实面经题目 · 原创解析

在样本不平衡问题中,除了修正数据集,还能有哪些方法?

样本不平衡除了修正数据集,还可以从损失函数、样本权重、阈值移动、指标选择、模型集成、概率校准和业务决策成本入手。回答要说明不同方法解决的是训练偏差、预测阈值还是评估偏差。

60 秒回答模板

除了过采样和欠采样,我会考虑:给少数类更高 class weight 或 sample weight;使用 focal loss、cost-sensitive loss 等让难样本和少数类更重要;调整分类阈值而不是固定 0.5;使用 PR-AUC、Recall、F1、混淆矩阵和业务成本评估;做概率校准和分桶分析;必要时用集成、异常检测或两阶段召回模型。核心是把少数类识别能力和误判成本一起优化。

考点 指标先换
难度 算法岗真实面经题
回答目标 讲清方法、取舍和追问

深入解析

01

先换评估视角

不平衡问题下 accuracy 往往没有意义,模型可能全预测多数类也得高分。应优先看 PR-AUC、Recall、Precision、F1、混淆矩阵、Top-K 命中和业务成本。

02

调整训练权重

class weight、sample weight 和 cost-sensitive loss 可以提高少数类错误的惩罚,让模型训练时更关注少数类。权重不是越大越好,需要在验证集上平衡误报和漏报。

03

改损失函数

focal loss 会降低易分类样本的权重,让模型关注难样本;加权交叉熵适合类别比例悬殊但标签可靠的场景。不同损失函数要结合噪声水平选择。

04

移动分类阈值

模型输出概率后,业务阈值可以按 Recall、Precision、F1、收益成本或风险等级选择。很多不平衡场景的关键不是模型结构,而是阈值策略。

05

模型和业务策略

还可以用两阶段模型先高召回筛候选,再精排;或对极少数异常类使用异常检测。线上需要概率校准、分桶监控和人群稳定性检查。

易错点

  • 不要只回答重采样,题目已经问了除了修正数据集还有什么。
  • 不要用 accuracy 证明模型效果好。
  • 不要把类别权重调得过大,噪声少数类会被放大。
  • 不要忽略阈值和概率校准,训练好模型不等于业务决策最优。

面试官追问

class weight 和过采样有什么区别?

class weight 改变损失贡献,不复制样本;过采样改变训练数据分布,可能增加少数类曝光但也更容易复制噪声。

focal loss 适合什么情况?

适合大量易分类多数类样本压倒训练的场景。它降低易样本权重,让模型更关注难样本和少数类。

阈值怎么定?

根据验证集上的业务成本、Precision-Recall 曲线、F1 或召回目标选择,并在线上持续监控误报和漏报。