M2-072M2: Classical Machine LearningClass Imbalance LearningEasy
Mastery:

Class Imbalance Learning: SMOTE 的原理是什么?有什么风险。

📐 Mathematical Definition
xnew=xi+λ(xnn−xi),λ∼U(0,1)x_{new}=x_i+\lambda(x_{nn}-x_i),\quad \lambda\sim U(0,1)
⚡ Executive Summary
Core Concept: 在少数类近邻之间线性插值生成合成样本;风险是噪声放大、类别重叠区生成错误样本。

📌 Key Takeaways

  • •
    对高维稀疏效果差
  • •
    变体:Borderline-SMOTE、ADASYN、SMOTE-NC

📐 Mathematical Derivations

SMOTE 的算法:对每个少数类样本 xᵢ,找其 k 个少数类近邻;随机选一个近邻 x_nn,在两者连线上随机插值生成新样本 x_new=xᵢ+λ(x_nn−xᵢ)(λ~U(0,1))。<strong>核心思想</strong>是'在少数类的局部邻域内扩充',而非简单复制(复制会导致对特定样本的过拟合)。<strong>风险与局限</strong>:① <strong>高维失效</strong>——高维下近邻概念不可靠(维度灾难),生成的样本可能落在无意义的区域;② <strong>类别重叠区</strong>——若少数类与多数类边界重叠,插值可能生成落在多数类区域的'错误标签'样本(因为近邻中可能混有少数类的离群点);③ <strong>噪声放大</strong>——若少数类含标签噪声,SMOTE 会在噪声点周围生成更多噪声;④ <strong>不适用于类别特征</strong>——线性插值对 one-hot/类别特征无意义(需 SMOTE-NC 或用专门方法);⑤ <strong>可能加剧过拟合</strong>——合成样本与原始样本高度相关,若不做 CV 内处理会导致评估泄漏。

🏭 Production Trade-offs

变体与替代方案:① <strong>Borderline-SMOTE</strong>——只对'边界附近'的少数类样本做合成(这些样本最易被误判),避免在安全区域生成冗余样本;② <strong>ADASYN</strong>——按'被误判难度'自适应决定每个少数类样本生成多少样本(难分的生成更多);③ <strong>SMOTE-NC</strong>——处理混合数值与类别特征;④ <strong>SMOTE + Tomek Links / ENN</strong>——合成后再用数据清洗删除边界上的噪声样本(混合采样);⑤ <strong>替代方案</strong>——<strong>类权重/Focal Loss</strong> 通常更简单有效且无合成风险;<strong>集成方法</strong>(EasyEnsemble 对多个欠采样子集训练后集成)在极端不平衡下表现好;<strong>异常检测视角</strong>(单类 SVM、孤立森林)适合'少数类是异常'的场景。⑥ <strong>实践建议</strong>——先用类权重与阈值调整;若效果不足再试 SMOTE(并在 CV 折内);始终用 PR-AUC 或业务指标评估。
⚠️ Common Interview Pitfalls
  • ✕
    在高维稀疏数据上用 SMOTE
  • ✕
    在类别严重重叠时用 SMOTE(生成错误标签样本)
🎯 Interviewer Follow-ups
  • ?
    为什么 SMOTE 在高维效果差?
  • ?
    什么时候不该用 SMOTE?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM2-071: Class Imbalance Learning: 处理类别不平衡的主要方法有哪些?📋Back to BankNext →M2-073: Class Imbalance Learning: 为什么不平衡数据下应优先看 PR-AUC 而不是 ROC-AUC?