真实面经题目 · 原创解析
SMOTE 数据扩增算法的原理是什么?
SMOTE 是处理类别不平衡的过采样方法,它在少数类样本和近邻之间插值生成新样本,而不是简单复制少数类样本。
出现于:百度 · 算法
真实面经题目 · 原创解析
SMOTE 是处理类别不平衡的过采样方法,它在少数类样本和近邻之间插值生成新样本,而不是简单复制少数类样本。
SMOTE 的核心是合成少数类样本。对每个少数类样本,先在少数类内部找 K 个近邻,随机选择一个近邻,然后在该样本和近邻连线上按随机比例插值,生成新的少数类样本。这样可以扩大少数类决策区域,缓解简单复制带来的过拟合。它适合连续特征空间,但对噪声、离群点、类别边界重叠和高维稀疏特征要谨慎。实际使用时通常只在训练集上做 SMOTE,并结合交叉验证、指标和业务切片评估。
当少数类样本太少时,模型容易偏向多数类,召回少数类的能力会很差。SMOTE 试图通过生成少数类合成样本,让模型看到更多少数类区域。
对少数类样本 x,找到少数类近邻 x_nn,在 x 到 x_nn 的连线上取 x + random * (x_nn - x),得到新的合成样本。
随机复制只增加相同样本的权重,容易让模型记住少数类点;SMOTE 生成的是邻域内的新点,能一定程度扩展少数类分布,也降低完全重复样本带来的过拟合。
SMOTE 假设少数类样本之间的插值仍然合理。若存在噪声点、离群点或类别边界混杂,插值可能生成错误样本,反而模糊边界并伤害泛化。
SMOTE 只能在训练折内执行,不能先对全量数据过采样再划分验证集,否则相似合成样本会泄漏到验证集,导致指标虚高,线上真实表现却不一定提升。
随机过采样复制原有少数类样本,SMOTE 通过近邻插值生成新样本,过拟合风险相对小但可能引入边界噪声。
要谨慎。高维稀疏 one-hot 或 TF-IDF 空间里的线性插值未必有真实语义,embedding 空间可能更合理。
在交叉验证或训练验证划分后,只对训练集做 SMOTE,验证集和测试集保持真实分布。