
机器学习中的‘距离’与‘相似度’深入理解欧氏空间、内积与度量矩阵第一次接触KNN分类器时我盯着屏幕上那些被直线划分开的彩色数据点突然意识到一个根本问题计算机如何看见这些点之间的距离后来在PCA降维项目中当原始数据被压缩成二维散点图时我又困惑于那些保持相对位置不变的投影点。直到系统学习了欧氏空间的数学本质才明白这些算法背后统一的几何语言——内积定义的度量空间。1. 欧氏空间机器学习的几何舞台2012年ImageNet竞赛中AlexNet通过128维特征向量实现图像分类这个高维空间正是典型的欧氏空间。当我们谈论向量化特征时本质上是在构建一个几何环境——每个特征对应一个坐标轴样本成为空间中的点。欧氏空间的三大支柱内积运算(x,y) Σxᵢyᵢ衡量向量对齐程度向量长度||x|| √(x,x)表征向量规模夹角公式cosθ (x,y)/(||x||·||y||)定义方向关系在推荐系统中用户偏好向量与商品特征向量的夹角越小余弦接近1匹配度越高。这正是余弦相似度的几何解释def cosine_similarity(a, b): dot_product np.dot(a, b) norm_a np.linalg.norm(a) norm_b np.linalg.norm(b) return dot_product / (norm_a * norm_b)注意当向量经过L2归一化后余弦相似度等同于内积运算这是许多推荐算法加速计算的技巧2. 度量矩阵隐式几何的密码本在核方法中我们常遇到看似违反直觉的现象在原始空间线性不可分的数据通过核函数映射后变得可分。这背后的数学魔术就是度量矩阵的变换。考虑高斯核函数K(x,y) exp(-γ||x-y||²)其对应的度量矩阵A满足Aᵢⱼ K(xᵢ,xⱼ)通过Mercer定理这个正定矩阵隐含定义了某个高维特征空间的内积。下表对比了常见核函数对应的几何特性核函数类型公式隐含维度适用场景线性核xᵀy原始维度线性可分数据多项式核(γxᵀy r)^dC(nd,d)有序特征Sigmoid核tanh(γxᵀy r)∞神经网络前置高斯核exp(-γx-y在SVM实践中选择不同的核函数实质是在调整度量矩阵从而改变空间的基本几何属性。我曾在一个电商用户分群项目中测试发现对于稀疏行为数据多项式核的效果反而优于高斯核——因为前者更好地保持了原始特征的序关系。3. 正交性特征解耦的数学表达PCA算法的核心是寻找数据的主成分方向这些方向在数学上表现为协方差矩阵的特征向量且彼此正交。这种正交性意味着cov(Xᵢ, Xⱼ) 0 (i≠j)实现PCA时我们通常这样计算# 数据标准化 X_std (X - np.mean(X, axis0)) / np.std(X, axis0) # 计算协方差矩阵 cov_mat np.cov(X_std.T) # 特征分解 eigen_vals, eigen_vecs np.linalg.eig(cov_mat) # 按特征值排序 eigen_pairs [(np.abs(eigen_vals[i]), eigen_vecs[:,i]) for i in range(len(eigen_vals))] eigen_pairs.sort(keylambda k: k[0], reverseTrue)提示实际应用中常使用SVD计算更稳定特别是当特征维度高于样本量时在自然语言处理中词向量的正交性也很有意思。通过观察Word2Vec生成的词向量我们发现同义词具有较小夹角国王-男人女人≈女王这类关系对应向量加减语义无关的词向量接近正交这种几何关系使得词向量空间成为语义推理的绝佳载体。4. 距离度量算法选择的数学依据在KNN和聚类算法中距离函数的选择直接影响模型性能。除了常见的欧氏距离其他度量各有适用场景主要距离度量对比距离类型公式特性典型应用欧氏距离√Σ(xᵢ-yᵢ)²旋转不变物理测量数据曼哈顿距离Σxᵢ-yᵢ切比雪夫距离maxxᵢ-yᵢ马氏距离√(x-y)ᵀS⁻¹(x-y)考虑协方差多元统计分析余弦距离1 - (xᵀy)/(x在实现推荐系统时我遇到过用户评分数据的稀疏性问题。这时采用带权重的改进余弦相似度效果更好def adjusted_cosine(a, b, weights): mask np.logical_and(a ! 0, b ! 0) a_masked a[mask] b_masked b[mask] w_masked weights[mask] if len(a_masked) 0: return 0 dot_product np.dot(w_masked * a_masked, b_masked) norm_a np.linalg.norm(np.sqrt(w_masked) * a_masked) norm_b np.linalg.norm(np.sqrt(w_masked) * b_masked) return dot_product / (norm_a * norm_b)5. 实践中的几何陷阱与解决方案即使理解理论实践中仍会遇到意外情况。以下是三个典型问题及应对策略问题1维度灾难现象高维空间中所有点对距离趋于相同解决方案特征选择/降维 距离加权问题2量纲差异现象不同特征尺度差异淹没真实模式修复方法标准化 (Z-score) 或归一化 (Min-Max)问题3非欧数据挑战图数据、文本等非数值结构对策设计专用核函数或嵌入方法在社交网络分析项目中我们处理图数据时采用拉普拉斯矩阵特征映射将节点嵌入到欧氏空间import networkx as nx from sklearn.manifold import SpectralEmbedding G nx.karate_club_graph() embedding SpectralEmbedding(n_components2, affinityprecomputed) pos embedding.fit_transform(nx.to_numpy_array(G))这种技术的数学基础正是欧氏空间中的谱理论通过图的拉普拉斯矩阵实现拓扑结构与几何空间的连接。