M2-109M2: Classical Machine Learning梯度提升 (GBDT/XGBoost)Medium
Mastery:

梯度提升 (GBDT/XGBoost): 解释 GBDT 处理类别不平衡的方法与它们的差异。

📐 Mathematical Definition
scale_pos_weight=#neg#pos\text{scale\_pos\_weight}=\frac{\#\text{neg}}{\#\text{pos}}
⚡ Executive Summary
Core Concept: scale_pos_weight 调正类权重、采样、或自定义损失(Focal);本质都是调整损失权重。

📌 Key Takeaways

  • •
    等价于给正类样本加权
  • •
    也可用自定义 Focal 损失

📐 Mathematical Derivations

三种主要方法:① <strong>scale_pos_weight</strong>(XGBoost)/ <code>is_unbalance</code> 或 <code>scale_pos_weight</code>(LightGBM)——给正类样本的损失乘以权重 w=负类数/正类数,使两类总损失平衡。<strong>本质</strong>是在损失中给少数类加权(等价于按权重重采样)。<strong>副作用</strong>:模型输出的概率被'重新加权',不再反映真实频率——若需要真实概率(如出价、风险定价),必须<strong>重新校准</strong>(用原始先验校正:p_cal = p·π/(p·π+(1−p)·(1−π)/w) 之类的公式,或在独立数据上做 Platt/isotonic 校准)。② <strong>采样</strong>——对负类欠采样或对正类过采样(含 SMOTE);优点是简单,缺点是丢信息或引入合成样本;<strong>必须在 CV 折内做</strong>。③ <strong>自定义损失</strong>——Focal 损失(降低易分类样本权重)、或代价敏感损失(按误判代价加权);更灵活但需实现与调参。<strong>四者的共同本质</strong>:都是<strong>调整损失中不同类别/样本的相对权重</strong>,差异只在实现层次(数据层/损失层)与副作用(是否改变数据分布、是否影响校准)。

🏭 Production Trade-offs

实践要点:① <strong>优先用类权重而非采样</strong>——类权重不改变数据分布、不引入重复样本、方差更小、更稳定;采样会改变有效样本数(影响训练时间与 batch 组成)。② <strong>必须重新校准</strong>——任何调整了类别权重的训练都会使输出概率偏离真实频率;若下游用概率(而非只排序),应在独立数据上校准。③ <strong>评估指标的选择</strong>——不平衡下应看 <strong>PR-AUC</strong>、F1、Recall@固定精度,而非 accuracy 或 ROC-AUC;同时报告<strong>校准后</strong>的指标。④ <strong>不要对验证/测试集做采样或加权</strong>——只在训练折上处理,评估时保持原始分布(否则评估失真)。⑤ <strong>GBDT 的天然优势</strong>——树模型对不平衡的鲁棒性优于线性模型(分裂基于不纯度,不受类别比例直接主导),故有时<strong>不调权重也能得到可用的排序</strong>;先试不调、再看 PR-AUC 是否可接受,是可取的流程。⑥ <strong>极端不平衡(如 1:10000)</strong>——此时应考虑<strong>问题重构</strong>:把少数类检测视为异常检测(单类分类、孤立森林),或用<strong>两阶段</strong>(先粗筛召回、再精排);单纯调权重可能不足以解决。
⚠️ Common Interview Pitfalls
  • ✕
    调权重后直接用概率做决策(未校准)
  • ✕
    对验证/测试集做重采样或加权
🎯 Interviewer Follow-ups
  • ?
    为什么调权重后需要重新校准概率?
  • ?
    与采样方法的关系?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM2-108: 梯度提升 (GBDT/XGBoost): 解释 GBDT 的单调性约束与它的业务价值。📋Back to BankNext →M2-110: 梯度提升 (GBDT/XGBoost): 解释 GBDT 的早停与最优迭代数的确定。