M2-114M2: Classical Machine LearningClass Imbalance LearningMedium
Mastery:
Class Imbalance Learning: 解释 EasyEnsemble 与 BalanceCascade 等不平衡集成方法。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 用多个欠采样子集训练多个模型后集成;避免欠采样丢信息,也避免过采样过拟合。
📌 Key Takeaways
- •每次从多数类抽子集与全部少数类组成平衡训练集
- •BalanceCascade 迭代移除已被正确分类的多数类样本
📐 Mathematical Derivations
<strong>EasyEnsemble</strong> 的做法:独立地抽取 T 个多数类子集(每个子集大小 ≈ 少数类样本数),与<strong>全部</strong>少数类样本组合,训练 T 个分类器,最后<strong>平均</strong>它们的预测。<strong>为什么有效</strong>:单次欠采样会丢弃大量多数类信息(浪费数据);EasyEnsemble 通过<strong>多次采样</strong>让不同子集覆盖不同的多数类样本(近似使用了全部多数类信息),同时每个基分类器面对的是<strong>平衡</strong>数据(不受不平衡影响);最终的平均(集成)进一步降低方差。<strong>BalanceCascade</strong> 的改进:<strong>迭代式</strong>地训练——每轮训练后,把<strong>已被当前集成正确分类</strong>的多数类样本<strong>移除</strong>(因为它们'太容易',不再需要),使后续轮次聚焦于<strong>难分类</strong>的多数类样本(靠近边界的)。这使模型逐步聚焦于决策边界附近(类似 Boosting 聚焦难样本,但方向相反:这里是移除易样本而非加重难样本权重)。其他变体:<strong>RUSBoost</strong>(欠采样 + Boosting)、<strong>SMOTEBoost</strong>(过采样 + Boosting)、<strong>EasyEnsemble + AdaBoost</strong>(每个子集内用 AdaBoost 训练)。
🏭 Production Trade-offs
实践要点:① <strong>与单次欠采样/过采样的对比</strong>——单次欠采样丢信息(方差大)、单次过采样(尤其复制)易过拟合;EasyEnsemble 通过'多次采样 + 集成'兼顾两者优点,是<strong>不平衡数据的经典稳健方案</strong>。② <strong>与类权重的关系</strong>——类权重(不改变数据)与 EasyEnsemble(改变数据 + 集成)目标相同(平衡损失),但前者更简单、后者可能更稳健(因为集成的多样性);实践中<strong>先试类权重</strong>,效果不足再试 EasyEnsemble。③ <strong>计算成本</strong>——EasyEnsemble 需训练 T 个模型(T 常取 4–50),成本是单模型的 T 倍;可用并行训练缓解。④ <strong>评估</strong>——必须用 PR-AUC/F1 等不平衡敏感指标,且<strong>不能在重采样后的数据上评估</strong>(应在原始分布上评估);每个基分类器训练时的采样必须<strong>在 CV 折内</strong>做。⑤ <strong>适用场景</strong>——多数类样本极多(如 100 万 vs 1000)且可承受多次训练成本时;若多数类样本本身不多(欠采样会严重丢信息)则不适合。⑥ <strong>现代替代</strong>——GBDT 类模型 + 类权重/Focal 损失在多数场景下已足够(且实现简单);EasyEnsemble 更适合传统模型(LR/SVM)或极端不平衡场景。⑦ <strong>注意</strong>——集成的基模型需<strong>多样</strong>(不同采样 + 可加不同算法/超参)才有集成收益。
⚠️ Common Interview Pitfalls
- ✕单次欠采样丢信息却不做集成
- ✕在重采样后的数据上评估性能(失真)
🎯 Interviewer Follow-ups
- ?EasyEnsemble 为什么优于单次欠采样?
- ?与 Boosting 的关系?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.