M2-026M2: Classical Machine LearningDecision TreesHard
Mastery:

Decision Trees: 如何处理缺失值与类别特征?对比常见做法。

📐 Mathematical Definition
surrogate split: 用最相似特征替代\text{surrogate split}:\ \text{用最相似特征替代}
⚡ Executive Summary
Core Concept: 缺失值可用代理分裂(CART)、按缺失率分流、或缺失指示变量;类别特征可用 one-hot、目标编码、或原生类别分裂(LightGBM/CatBoost)。

📌 Key Takeaways

  • •
    目标编码需交叉拟合防泄漏
  • •
    高基数类别 → 哈希/嵌入/计数编码

📐 Mathematical Derivations

<strong>缺失值处理</strong>:① <strong>代理分裂(CART)</strong>——对每个主分裂,额外学若干'代理分裂'(用与主特征最相关的其他特征),当主特征缺失时用代理分裂决定走向;优点是保留样本且利用特征相关性,缺点是计算复杂。② <strong>默认方向(XGBoost/LightGBM)</strong>——训练时为每个分裂学习'缺失样本走左还是走右'(按哪边损失更小),推理时缺失样本按该默认方向走;实现简单且效果常优于简单填充。③ <strong>填充 + 指示变量</strong>——用均值/中位数/模型预测填充,并额外加一个'是否缺失'的二值特征(当缺失有信息时有效)。④ <strong>按缺失分流</strong>——把缺失作为一个独立的类别分支。

🏭 Production Trade-offs

<strong>类别特征处理</strong>:① <strong>one-hot</strong>——适合低基数(<10–20 类),高基数会导致维度爆炸与稀疏,且树在每个 one-hot 列上只能做'是/否'分裂(效率低)。② <strong>目标编码(target/mean encoding)</strong>——用类别对应的目标均值替代,需<strong>交叉拟合</strong>(在 K 折内用其他折的均值编码本折,防止标签泄漏)+ 平滑(向全局均值收缩,尤其对低频类别)。③ <strong>原生类别分裂(LightGBM/CatBoost)</strong>——LightGBM 用'按类别目标均值排序后分裂'(many-vs-many 分裂),CatBoost 用 <strong>ordered target statistics</strong>(按时间/随机顺序只用'过去'样本统计)从原理上避免泄漏,且用对称树加速。④ <strong>嵌入</strong>——深度模型中对高基数类别学嵌入向量(如推荐系统中的 item embedding)。⑤ <strong>计数/频率编码</strong>——用类别出现频次作为特征,简单且不泄漏,但信息量有限。
⚠️ Common Interview Pitfalls
  • ✕
    对高基数类别用 one-hot(维度爆炸 + 分裂低效)
  • ✕
    目标编码不做交叉拟合(严重标签泄漏)
🎯 Interviewer Follow-ups
  • ?
    目标编码如何防止泄漏?
  • ?
    为什么 LightGBM 能直接处理类别特征?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM2-025: Decision Trees: 解释树的偏差-方差特性,以及为什么单棵树容易过拟合。📋Back to BankNext →M2-027: 集成方法 (Bagging/RF): 比较 Bagging 与 Boosting 的核心差异。