数学中范数概念
范数
我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。
在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,学过线性代数,我们知道,通过运算$AX=B$,可以将向量$X$变化为$B$,矩阵范数就是来度量这个变化大小的。
对于一个向量$x=(x_1,x_2,\cdots,x_n)$,其各种范数描述如下
L1范数
即向量元素绝对值之和。在numpy中调用:
1 | import numpy as np |
L2范数
Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方。在numpy中调用:
1 | import numpy as np |
P范数
在numpy中调用:1
2import numpy as np
np.linalg.norm(x,ord=p)
L-$\infty$范数
L-$+\infty$
即所有向量元素绝对值中的最大值。在numpy中调用:1
2import numpy as np
np.linalg.norm(x,ord=np.inf)
L-$-\infty$
即所有向量元素绝对值中的最小值。在numpy中调用:1
2import numpy as np
np.linalg.norm(x,ord=-np.inf)
闵可夫斯基距离(Minkowski distance)
距离度量的性质:
- 非负性:$\text{dist}(x_i,x_j)\geq 0$
- 同一性:$\text{dist}(x_i,x_j)=0$,当且仅当$x_i=x_j$
- 对称性:$\text{dist}(x_i,x_j)=\text{dist}(x_j,x_i)$
- 直递性:$\text{dist}(x_i,x_j)\leq\text{dist}(x_i,x_k)+\text{dist}(x_k,x_j)$
给定样本$x_i=(x_{i1},x_{i2},\dots,x_{in}),x_j=(x_{i1},x_{i2},\dots,x_{in})$,最常用的求距离的方法
$p=2$时,闵可夫斯基距离即是欧式距离(Euclidean distance)
$p=1$时,闵可夫斯基距离即是曼哈顿距离(Manhattan distance)