60 秒回答模板

重采样要分过采样和欠采样看。过采样会增加少数类权重,简单复制容易过拟合,合成样本可能引入噪声;欠采样会丢掉多数类样本,可能损失边界信息和长尾模式。两者都会改变训练集先验分布,导致模型输出概率不再天然校准,阈值和线上真实分布需要重新验证。评估时验证集和测试集应保持真实分布,采样只能在训练集内做,并结合 PR-AUC、召回率、精确率、业务成本和切片指标判断收益。

考点 信息损失
难度 真实面经题
回答目标 讲清方法、边界和追问

深入解析

01

先区分两类采样

过采样增加少数类样本,欠采样减少多数类样本。它们都在训练阶段调整类别比例,但带来的副作用不同,不能只说让数据更平衡。

02

过采样的风险

简单复制少数类样本会让模型反复看到相同点,容易记忆噪声。SMOTE 这类合成方法也可能在错误边界附近生成不合理样本,造成少数类区域被过度放大。

03

欠采样的风险

欠采样会丢弃多数类信息。如果多数类内部有多个子群、长尾模式或关键边界样本,删除后模型会低估真实负类分布,线上误报可能上升。

04

分布和校准偏差

采样改变了训练集类别先验,模型分数可能不再对应真实概率。上线前要重新调阈值,必要时做概率校准或按真实分布评估,避免把排序分数当概率。

05

评估不能被污染

验证集和测试集应保持线上真实比例。采样如果提前作用于全量数据,会让评估分布失真,甚至产生相似样本泄漏,导致离线收益不可相信。

易错点

  • 不要把重采样当成无副作用的数据增强。
  • 不要在训练验证划分前做采样,容易造成评估泄漏。
  • 不要只看 accuracy,不平衡问题更要看 PR-AUC、召回和精确率取舍。

面试官追问

采样后为什么概率会不准?

因为训练类别先验被人为改变,模型学到的是采样后的分布,输出分数需要在真实分布上重新校准。

除了采样还能怎么处理不平衡?

可以用类别权重、focal loss、阈值调整、异常检测、代价敏感学习和更合适的评估指标。

为什么验证集不能重采样?

验证集要模拟真实线上分布,重采样会改变指标含义,无法判断真实业务效果。