← 返回Book 2目录

距离与范数

Distance & Norm Visualization

从欧氏距离到马氏距离,从L1到L∞范数

平面两点连线

连线可视化是理解数据点之间关系的基础方法。通过不同的连线方式, 可以展示数据点的分布特征、中心趋势、离散程度和投影关系。

和原点连线

所有数据点与原点(0,0)连线,展示径向距离分布。

质心

所有点与数据质心μ连线,质心是数据的均值点。

簇质心

每个点与所属簇的质心连线,展示簇内结构。

任意两点连线

所有点对之间连线,形成完全图,C(n,2)条边。

水平方向

垂直投影到x轴,展示x坐标的分布。

竖直方向

水平投影到y轴,展示y坐标的分布。

沿y朝任意直线投影

沿y方向投影到斜线y=0.3x+1。

沿x朝任意直线投影

沿x方向投影到斜线y=2x+1。

朝过原点直线正交投影

正交投影到过原点θ=15°的直线,保持垂直关系。

📏 平面两点连线

通过连线可视化数据点之间的关系、距离和投影

当前模式说明

所有点与原点(0,0)连线,展示径向距离

O
共60个数据点 | 60条连线

不同方式展示二元欧氏距离

二元欧氏距离函数f(x₁, x₂) = √(x₁² + x₂²)是最常用的距离度量。 可以通过3D网格面、2D等高线、梯度场等多种方式可视化。

二元函数

距离函数定义:f(x₁, x₂) = √(x₁² + x₂²)

这是从原点到点(x₁, x₂)的欧氏距离,等值线是同心圆。

网格面

可以用3种方式展示:3D网格面+等高线、2D等高线、2D填充等高线+梯度向量场。 梯度向量∇f指向距离增长最快的方向(径向)。

📐 二元欧氏距离可视化

f(x₁, x₂) = √(x₁² + x₂²) 是从原点到点(x₁, x₂)的欧氏距离

数学性质

函数定义

f(x₁, x₂) = √(x₁² + x₂²)

等高线

同心圆:x₁² + x₂² = r²

梯度

∇f = (x₁, x₂) / √(x₁² + x₂²)

指向径向,模长为1

🎯 等高线

距离相等的点形成同心圆。 圆心在原点,半径r对应距离值f=r。 间距均匀表示线性增长。

🧭 梯度

梯度向量∇f指向距离增长最快的方向。 对于欧氏距离,就是从原点指向该点的径向。 梯度模长为1(单位向量)。

🌈 热力图

颜色编码距离值:蓝色(近)→绿色(中)→红色(远)。 直观展示距离场的分布。

3D曲面

z = √(x₁² + x₂²)形成圆锥面, 顶点在原点,沿径向线性增长。

等高线

同心圆族,圆心在原点, 半径r对应距离值f=r。

梯度场

∇f = (x₁, x₂)/√(x₁² + x₂²), 指向径向,模长为1。

三维两点连线

在三维空间中可视化鸢尾花数据的距离关系。

导入数据

使用鸢尾花数据的3个特征:sepal_length, sepal_width, petal_length。

散点和投影点连线

将3D散点投影到z=1平面,连线展示垂直距离。 投影点用×标记,连线显示z方向的偏离。

散点和质心连线

计算3D质心μ = (μ₁, μ₂, μ₃), 所有点与质心连线,展示3D空间中的偏离程度。

用切豆腐的方法展示三元欧氏距离

三元函数f(x₁, x₂, x₃) = √(x₁² + x₂² + x₃²)无法直接可视化。 通过"切片法"在三个坐标平面上绘制等高线,像切豆腐一样展开三维结构。

三元函数

定义三元二次型:f(x₁, x₂, x₃) = √(x^T A x),其中A为单位矩阵时退化为欧氏距离。

外立面

在三个坐标平面的边界上同时绘制等高线, 形成3D"盒子"的外立面视图。

切片展开

沿某一坐标轴方向切片, 将多个切片展开排列,完整展示3D结构。

将等高线展开,沿x₃

固定x₃值,在x₁-x₂平面上绘制等高线切片。

将等高线展开,沿x₂

固定x₂值,在x₁-x₃平面上绘制等高线切片。

将等高线展开,沿x₁

固定x₁值,在x₂-x₃平面上绘制等高线切片。

根据欧氏距离远近渲染两点连线

用颜色编码距离:近的点之间连线用冷色(蓝),远的点用暖色(红)。 形成视觉上的"距离地图"。

在单位正方形和圆盘上随机生成点,计算所有点对的欧氏距离, 用RdYlBu色图映射到连线颜色。距离越远,连线越红;距离越近,连线越蓝。

🎨 根据距离渲染连线

用颜色编码两点间的欧氏距离:蓝色(近) → 黄色(中) → 红色(远)

统计信息
总点数: 34
总连线数: 561
连线密度: 100%

颜色编码规则

近距离 (d ≈ 0)
中等距离 (d ≈ 0.5)
远距离 (d ≈ 1)

距离归一化到[0,1],正方形最大距离√2,圆盘最大距离1。

🔍 视觉模式

近距离点对(蓝色连线)形成密集区域, 远距离点对(红色连线)跨越整个空间。 颜色分布揭示点的聚类结构。

📊 应用场景

网络可视化、社交网络分析、 相似度矩阵可视化、聚类结果展示。 直观展示关系强度。

⚡ 复杂度

n个点产生C(n,2) = n(n-1)/2条连线。 30个点产生435条连线。 连线数随点数二次增长。

💡 可视化原理

对于n个点,有C(n,2) = n(n-1)/2条连线。 每条连线的颜色c = colormap(d/d_max), 其中d是两点距离,d_max是最大可能距离。

🎨 应用场景

网络可视化、社交网络分析、聚类结果展示、 相似度矩阵可视化。颜色直观展示关系强度。

平面Lp范数等高线

Lp范数是欧氏距离的推广:||x||_p = (|x₁|^p + |x₂|^p)^(1/p)。 不同的p值定义了不同的"距离"概念。

创建数据

在[-2.5, 2.5] × [-2.5, 2.5]区域生成网格,计算Lp范数值。

自定义Lp范数函数

对于p = ∞,||x||_∞ = max(|x₁|, |x₂|)。 对于有限p,使用通用公式计算。

可视化

📐 Lp范数等高线

Lp范数定义:||x||_p = (|x₁|^p + |x₂|^p)^(1/p)

圆形(欧氏距离)

特殊p值

p = 1 (L1)

曼哈顿距离,出租车几何

||x|| = |x₁| + |x₂|

p = 2 (L2)

欧氏距离,日常几何

||x|| = √(x₁² + x₂²)

p = ∞ (L∞)

切比雪夫距离,棋盘距离

||x|| = max(|x₁|, |x₂|)

||x|| = 1

📏 0 < p < 1

技术上不是范数(不满足三角不等式)。 "单位球"向内凹,是凹函数。

🔵 1 ≤ p ≤ 2

从菱形(p=1)平滑过渡到圆形(p=2)。 p=1.5常用于稀疏优化。

🔷 p > 2

从圆形(p=2)过渡到正方形(p=∞)。 "单位球"逐渐逼近正方形。

💡 应用场景: L1范数用于稀疏性(LASSO回归)、抗噪声; L2范数用于最小二乘、能量最小化; L∞范数用于最坏情况优化、鲁棒控制。 不同的p值适合不同的应用场景,没有绝对的"最好"。

三维空间Lp范数

三维Lp范数:||x||_p = (|x₁|^p + |x₂|^p + |x₃|^p)^(1/p)。 单位球面(满足||x||_p = 1的所有点x)的形状随p变化:从八面体(p=1)到球(p=2)到立方体(p=∞)。

自定义函数展示隐函数

使用contour函数在XY、XZ、YZ三个平面上绘制等高线, 通过zdir参数指定投影方向。

可视化

展示4种视图:XY平面等高线、XZ平面等高线、YZ平面等高线、三平面组合视图。

p = 1

八面体,6个顶点在坐标轴上, ||x||₁ = |x₁| + |x₂| + |x₃|

p = 2

球面,最常见的单位球, ||x||₂ = √(x₁² + x₂² + x₃²)

p = ∞

立方体,边界平行于坐标平面, ||x||_∞ = max(|x₁|, |x₂|, |x₃|)

基于鸢尾花数据各种距离度量等高线

在真实数据(鸢尾花)上比较不同距离度量的等高线形状。 展示从L1到L∞范数,以及标准化欧氏距离和马氏距离。

导入数据

使用sepal_length和petal_length两个特征,计算协方差矩阵Σ和相关矩阵ρ。

自定函数产生旋转网格

通过特征向量V旋转正交网格,展示数据的主方向。

🌸 鸢尾花数据距离度量对比

在真实数据上比较8种距离度量的等高线形状

当前度量:L2 (欧氏)

最常用,等距线是圆形

📊 Lp范数族

L1到L∞展示了从菱形到正方形的连续过渡。 p值越大,等距线越接近正方形, 各维度的权重越均匀。

🎯 统计距离

标准化欧氏距离考虑方差,马氏距离进一步考虑协方差。 等距线从圆形变为椭圆,沿数据主方向拉伸。

欧氏距离

d = √((x-μ₁)² + (y-μ₂)²),等距线是同心圆。

L1范数

d = |x-μ₁| + |y-μ₂|,等距线是菱形。

L1.5范数

d = (|x-μ₁|^1.5 + |y-μ₂|^1.5)^(1/1.5),介于菱形和圆之间。

L4范数

d = (|x-μ₁|^4 + |y-μ₂|^4)^(1/4),接近正方形。

L8范数

d = (|x-μ₁|^8 + |y-μ₂|^8)^(1/8),更接近正方形。

L_inf范数

d = max(|x-μ₁|, |y-μ₂|),等距线是正方形。

标准欧氏距离

d = √((x-μ₁)²/σ₁² + (y-μ₂)²/σ₂²),考虑不同特征的标准差。

马氏距离

d = √((x-μ)^T Σ^(-1) (x-μ)),考虑特征间的协方差,等距线是椭圆。

🎯 马氏距离的特殊性

马氏距离考虑了特征间的相关性,通过协方差矩阵Σ归一化。 等距线沿数据的主方向(特征向量)拉伸,形成椭圆而非圆。

  • • 当Σ为单位矩阵时,退化为欧氏距离
  • • 当Σ为对角矩阵时,退化为标准化欧氏距离
  • • 马氏距离在统计学、异常检测、聚类分析中广泛应用

💡 核心洞察

距离与范数是数据科学的基石。从最简单的欧氏距离,到考虑不同维度重要性的加权距离, 再到考虑特征相关性的马氏距离,每种距离度量都编码了对"相似性"的不同理解。 Lp范数族展示了从曼哈顿街区(p=1)到欧几里得几何(p=2)再到棋盘距离(p=∞)的连续过渡。 在机器学习中,选择合适的距离度量至关重要:KNN用欧氏距离,聚类可能用马氏距离, 稀疏优化偏爱L1范数,神经网络常用L2正则化。理解距离的几何意义——等距线的形状、 投影的含义、质心的位置——能帮助我们选择正确的度量,构建更好的模型。 每一种连线方式都讲述着数据点之间关系的不同故事,每一个范数都定义了空间的不同结构。