真实面经题目 · 原创解析
重采样和欠采样会带来什么问题?
重采样和欠采样能缓解类别不平衡,但会改变训练分布,引入信息损失、过拟合、概率校准偏差和评估口径问题。
出现于:滴滴 · 算法
真实面经题目 · 原创解析
重采样和欠采样能缓解类别不平衡,但会改变训练分布,引入信息损失、过拟合、概率校准偏差和评估口径问题。
重采样要分过采样和欠采样看。过采样会增加少数类权重,简单复制容易过拟合,合成样本可能引入噪声;欠采样会丢掉多数类样本,可能损失边界信息和长尾模式。两者都会改变训练集先验分布,导致模型输出概率不再天然校准,阈值和线上真实分布需要重新验证。评估时验证集和测试集应保持真实分布,采样只能在训练集内做,并结合 PR-AUC、召回率、精确率、业务成本和切片指标判断收益。
过采样增加少数类样本,欠采样减少多数类样本。它们都在训练阶段调整类别比例,但带来的副作用不同,不能只说让数据更平衡。
简单复制少数类样本会让模型反复看到相同点,容易记忆噪声。SMOTE 这类合成方法也可能在错误边界附近生成不合理样本,造成少数类区域被过度放大。
欠采样会丢弃多数类信息。如果多数类内部有多个子群、长尾模式或关键边界样本,删除后模型会低估真实负类分布,线上误报可能上升。
采样改变了训练集类别先验,模型分数可能不再对应真实概率。上线前要重新调阈值,必要时做概率校准或按真实分布评估,避免把排序分数当概率。
验证集和测试集应保持线上真实比例。采样如果提前作用于全量数据,会让评估分布失真,甚至产生相似样本泄漏,导致离线收益不可相信。
因为训练类别先验被人为改变,模型学到的是采样后的分布,输出分数需要在真实分布上重新校准。
可以用类别权重、focal loss、阈值调整、异常检测、代价敏感学习和更合适的评估指标。
验证集要模拟真实线上分布,重采样会改变指标含义,无法判断真实业务效果。