相似度度量

xiaoxiao2021-02-28  38

norm函数的应用:(1) 欧氏距离(Euclidean Distance):(2)曼哈顿距离(Manhattan Distance)(3)切比雪夫距离(Chebyshev Distance)(4)闵可夫斯基(Minkowski Distance):(5)皮尔逊相关系数:

norm函数的应用:

enum { NORM_INF=1, NORM_L1=2, NORM_L2=4, NORM_L2SQR=5, NORM_HAMMING=6, NORM_HAMMING2=7, NORM_TYPE_MASK=7, NORM_RELATIVE=8, NORM_MINMAX=32 }; //! computes norm of selected part of the difference between two arrays CV_EXPORTS_W double norm(InputArray src1, InputArray src2, int normType=NORM_L2, InputArray mask=noArray());

(1) 欧氏距离(Euclidean Distance):

欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。

两个n维向量 a(x11,x12...x1n)b(x21,x22...x2n) a ( x 1 1 , x 1 2 . . . x 1 n ) , b ( x 2 1 , x 2 2 . . . x 2 n ) 之间的欧式距离:

dab=nk=1(x1kx2k)2 d a b = ∑ k = 1 n ( x 1 k − x 2 k ) 2

表示成向量形式:

dab=(ab)(ab)T d a b = ( a − b ) ( a − b ) T

(2)曼哈顿距离(Manhattan Distance)

城市街区距离(City Block distance)

二维平面两点 a(x1,y1) a ( x 1 , y 1 ) b(x2,y2) b ( x 2 , y 2 ) 间的曼哈顿距离

两个n维向量 a(x11,x12,,x1n) a ( x 11 , x 12 , … , x 1 n ) b(x21,x22,,x2n) b ( x 21 , x 22 , … , x 2 n ) 间的曼哈顿距离

(3)切比雪夫距离(Chebyshev Distance)

二维平面两点 a(x1,y1) a ( x 1 , y 1 ) b(x2,y2) b ( x 2 , y 2 ) 间的切比雪夫距离

两个n维向量 a(x11,x12,,x1n) a ( x 1 1 , x 1 2 , … , x 1 n ) b(x21,x22,,x2n) b ( x 2 1 , x 2 2 , … , x 2 n ) 间的切比雪夫距离

(4)闵可夫斯基(Minkowski Distance):

闵氏距离不是一种距离,而是一组距离的定义

其中p是一个变参数。

当p=1时,就是曼哈顿距离

当p=2时,就是欧氏距离 (2—范数)

当p→∞时,就是切比雪夫距离

根据变参数的不同,闵氏距离可以表示一类的距离。

闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点。

举个例子:二维样本(身高,体重),其中身高范围是150~190,体重范围是50~60,有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离,但是身高的10cm真的等价于体重的10kg么?因此用闵氏距离来衡量这些样本间的相似度很有问题。

简单说来,闵氏距离的缺点主要有两个:(1)将各个分量的量纲(scale),也就是“单位”当作相同的看待了。(2)没有考虑各个分量的分布(期望,方差等)可能是不同的。

(5)皮尔逊相关系数:

皮尔逊系数就是向量cos计算之前两个向量都先搞个差值化;

分子部分: 每个向量的每个分量要先减掉向量各个数字的平均值, 这就是在差值化,向量 x(x1,x2...xn) x ( x 1 , x 2 . . . x n ) 与向量 y(y1,y2...yn) y ( y 1 , y 2 . . . y n ) ,先计算两个向量的平均值 mean(x)=μx m e a n ( x ) = μ x mean(y)=μy m e a n ( y ) = μ y ,再将向量的每个分量减去均值,得到差值向量,两个差值向量做内积。

x((x1μx),(x2μx)...(xnμx))=x(x1,x2...xn) x ′ ( ( x 1 − μ x ) , ( x 2 − μ x ) . . . ( x n − μ x ) ) = x ′ ( x 1 ′ , x 2 ′ . . . x n ′ )

y((y1μy),(y2μy)...(ynμy))=y(y1,y2...yn) y ′ ( ( y 1 − μ y ) , ( y 2 − μ y ) . . . ( y n − μ y ) ) = y ′ ( y 1 ′ , y 2 ′ . . . y n ′ )

分母部分: 两个根号式子就是在做取模运算, 里面的所有分量函数也要减掉平均值, 其实也就是求做差值化后的两个向量的模相乘。

最终的皮尔逊相关系数如下: corr(x,y)=(x,y)|x||y| c o r r ( x , y ) = ( x ′ , y ′ ) | x ′ | | y ′ |

转载请注明原文地址: https://www.6miu.com/read-2600119.html

最新回复(0)