M2-049M2: Classical Machine LearningK-Nearest Neighbors & Metric LearningMedium
Mastery:

K-Nearest Neighbors & Metric Learning: 为什么 KNN 需要特征缩放?不同距离度量有何差异。

📐 Mathematical Definition
dmahal(x,y)=(x−y)⊤Σ−1(x−y)d_{mahal}(x,y)=\sqrt{(x-y)^\top\Sigma^{-1}(x-y)}
⚡ Executive Summary
Core Concept: 距离对量纲敏感,需标准化;欧氏/L1/余弦/马氏距离适应不同数据结构。

📌 Key Takeaways

  • •
    余弦适合文本/嵌入
  • •
    马氏距离考虑特征相关性
  • •
    L1 对异常值更鲁棒

📐 Mathematical Derivations

缩放的必要性:欧氏距离 d=√(Σ(xᵢ−yᵢ)²) 对每个维度等权,若某特征量纲大 1000 倍,它的差异会主导距离,其他特征的影响被淹没。例如'年龄(0–100)'与'收入(0–10⁶)',不标准化时收入完全决定距离。<strong>标准化后</strong>各维度方差为 1,贡献均衡。<strong>四种距离的差异</strong>:① <strong>欧氏(L2)</strong>——默认选择,对异常值敏感(平方放大),假设各维独立同尺度;② <strong>曼哈顿(L1)</strong>——各维差异的绝对值和,对异常值更鲁棒(线性而非平方),在高维下有时优于 L2(因为 L2 的距离集中现象更严重);③ <strong>余弦</strong>——只关心方向不关心长度,适合<strong>高维稀疏</strong>(文本 TF-IDF、嵌入向量),因为此时'长度'常是文档长度等无关因素;④ <strong>马氏距离</strong>——用协方差矩阵 Σ⁻¹ 加权,自动考虑特征相关性与尺度差异,等价于'先白化再算欧氏距离'。

🏭 Production Trade-offs

实践要点:① <strong>缩放方法的选择</strong>——StandardScaler(零均值单位方差,适合近似正态)vs MinMaxScaler(压到 [0,1],适合有界特征)vs RobustScaler(用中位数与 IQR,抗异常值);KNN 对异常值敏感,RobustScaler 常更稳。② <strong>余弦 vs 欧氏的关系</strong>——若先对向量做 L2 归一化,则欧氏距离与余弦相似度<strong>单调对应</strong>(‖a−b‖²=2−2cos),故归一化后的欧氏 KNN ≡ 余弦 KNN。③ <strong>马氏距离的陷阱</strong>——需估计 p×p 协方差矩阵的逆,当 p>n(宽数据)或特征共线时 Σ 奇异,需用伪逆或收缩估计(shrinkage);这也意味着马氏距离在高维下不实用。④ <strong>度量学习</strong>——若默认距离不适合任务,可<strong>学习</strong>一个度量(LMNN、NCA、或对比学习),把'同类更近、异类更远'作为目标——这是深度度量学习(人脸识别、检索)的基础。
⚠️ Common Interview Pitfalls
  • ✕
    不标准化直接算欧氏距离
  • ✕
    在 p>n 时用马氏距离(协方差矩阵奇异)
🎯 Interviewer Follow-ups
  • ?
    为什么余弦适合高维稀疏?
  • ?
    马氏距离何时退化?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM2-048: K-Nearest Neighbors & Metric Learning: K 的取值如何影响偏差与方差?📋Back to BankNext →M2-050: K-Nearest Neighbors & Metric Learning: KNN 如何用于回归与异常检测?