M2-064M2: Classical Machine LearningFeature EngineeringMedium
Mastery:

Feature Engineering: 解释特征交互与多项式特征,什么时候需要。

📐 Mathematical Definition
ϕ(x)=[1,x1,x2,x1x2,x12,… ]\phi(x)=[1,x_1,x_2,x_1x_2,x_1^2,\dots]
⚡ Executive Summary
Core Concept: 线性模型无法捕捉交互,需显式构造 x_i·x_j;树模型可自动学习交互。

📌 Key Takeaways

  • •
    组合爆炸 → 需特征选择或 FM/FFM
  • •
    深度学习用注意力隐式建模交互

📐 Mathematical Derivations

交互的必要性:线性模型假设 E[y|x]=Σwⱼxⱼ(各特征独立贡献),无法表达'效果依赖另一特征'的关系——例如'广告投放的效果取决于用户年龄'(年龄×投放的交互项)。<strong>多项式特征</strong>(sklearn 的 <code>PolynomialFeatures</code>)显式生成所有 d 阶组合(x₁x₂、x₁²、x₁x₂x₃ 等),把线性模型提升为多项式回归。<strong>组合爆炸</strong>:p 个特征的 d 阶组合数为 C(p+d, d),当 p=100、d=2 时约 5000 项,d=3 时约 17 万项——参数与计算量急剧上升,且需要大量数据才能稳定估计。<strong>替代方案</strong>:① <strong>特征选择</strong>——只保留有意义的交互(用领域知识或正则筛选);② <strong>FM(因子分解机)</strong>——为每个特征学隐向量 vⱼ,用 ⟨vⱼ,vₖ⟩ 表示二阶交互权重,参数量从 O(p²) 降到 O(pk),这是推荐系统(CTR 预估)的核心;③ <strong>FFM(Field-aware FM)</strong>——为每个特征域单独学隐向量,表达力更强。

🏭 Production Trade-offs

实践要点:① <strong>树模型自动学交互</strong>——树的分裂天然产生交互(一个分裂在另一个之后即形成条件依赖),故树模型通常<strong>不需要</strong>手工构造交互特征;但<strong>线性模型、逻辑回归、SVM(线性核)必须显式加</strong>。② <strong>领域知识优先</strong>——有意义的交互应由领域知识指导(如'价格/收入'比、'BMI=体重/身高²'),这比盲目生成全部多项式更有效且可解释。③ <strong>深度学习的隐式交互</strong>——神经网络的隐藏层可自动学习任意阶交互(理论上 MLP 是通用逼近器),注意力机制进一步实现内容自适应的交互(每对特征按语义加权);这使特征工程在深度学习中需求大幅降低(但仍有用——输入表示的设计仍是关键)。④ <strong>数值稳定性</strong>——高阶多项式会导致数值范围急剧扩大(x=10 时 x⁵=100000),需标准化或改用样条(spline)替代高次项。⑤ <strong>正则化的必要性</strong>——加入大量交互后必须用 L1/L2 正则或特征选择控制复杂度。
⚠️ Common Interview Pitfalls
  • ✕
    对树模型手工构造全部多项式交互(冗余且增噪)
  • ✕
    加入大量高阶交互而不做正则化
🎯 Interviewer Follow-ups
  • ?
    FM 如何避免组合爆炸?
  • ?
    为什么深度学习不需要手工交互?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM2-063: Feature Engineering: 为什么要对数值特征分箱?分箱方式有哪些。📋Back to BankNext →M2-065: Feature Engineering: 时间特征的工程要点有哪些?如何避免泄漏。