当前位置:   article > 正文

计算两个向量的余弦相似度_余弦相似度计算公式

余弦相似度计算公式

摘要

余弦相似度是判断两个向量相似度常用的算法,我在做行人重识别的时候,用到了余弦相似度的算法,记录一下。

基本概念

余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
总之,相似度越小,距离越大。相似度越大,距离越小。

数学原理

所以余弦的计算公式如下:
cos ⁡ θ = a 2 + b 2 − c 2 2 a b \cos \theta=\frac{a^{2}+b^{2}-c^{2}}{2 a b} cosθ=2aba2+b2c2
a,b,c 是三个边的长度。

在直角坐标系中,向量表示的三角形的余弦函数是怎么样的呢?下图中向量a用坐标(x1,y1)表示,向量b用坐标(x2,y2)表示。

向量 a \mathrm{a} a 和向量 b \mathrm{b} b 在直角坐标中的长度为 c = x 1 2 + y 1 2 { c}=\sqrt{x_{1}^{2}+y_{1}^{2}} c=x12+y12 , b = x 2 2 + y 2 2 b=\sqrt{x_{2}^{2}+y_{2}^{2}} b=x22+y22 , 向量 a \mathrm{a} a 和向量 b \mathrm{b} b 之间的距离我们用向量 c \mathrm{c} c 表示,就是上图中的黄色直线,那么向 量 c 在直角坐标系中的长度为 c = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 \mathrm{c}=\sqrt{\left(x_{2}-x_{1}\right)^{2}+\left(y_{2}-y_{1}\right)^{2}} c=(x2x1)2+(y2y1)2 , 将 a , b , c 带入三角函数的公式中得到如下的公式:
cos ⁡ ( θ ) = a 2 + b 2 − c 2 2 a b = x 1 2 + y 1 2 + x 2 2 + y 2 2 − ( x 2 − x 1 ) 2 − ( y 2 − y 1 ) 2 2 x 1 2 + y 1 2 ∗ x 2 2 + y 2 2 = x 1 ∗ x 2 + y 1 ∗ y 2 x 1 2 + y 1 2 ∗ x 2 2 + y 2 2

cos(θ)=a2+b2c22ab=x12+y12+x22+y22(x2x1)2(y2y1)22x12+y12x22+y22=x1x2+y1y2x12+y12x22+y22
cos(θ)=2aba2+b2c2=2x12+y12 x22+y22 x12+y12+x22+y22(x2x1)2(y2y1)2=x12+y12 x22+y22 x1x2+y1y2

在多维向量中,余弦的这种计算方法也成立。假定 A 和 B 是两个 n 维向量, A 是 $[A 1 , A 2 , \ldots, A n]$ , B 是 $[B 1 , B 2 ,.., B n]$ , 则 A 与的夹角 \theta 的余弦等于:

cos ⁡ θ = ∑ i = 1 n ( A i × B i ) ∑ i = 1 n ( A i ) 2 × ∑ i = 1 n ( B i ) 2 = A ⋅ B ∣ A ∣ × ∣ B ∣

cosθ=i=1n(Ai×Bi)i=1n(Ai)2×i=1n(Bi)2=AB|A|×|B|
cosθ=i=1n(Ai)2 ×i=1n(Bi)2 i=1n(Ai×Bi)=A×BAB

实现代码

import numpy as np

def cos_sim(a, b):
    a_norm = np.linalg.norm(a)
    b_norm = np.linalg.norm(b)
    cos = np.dot(a,b)/(a_norm * b_norm)
    return cos
loadData_1 = np.squeeze(np.load('0022_c6s1_002976_011.npy'))
loadData_2 = np.squeeze(np.load('0022_c6s1_002976_012.npy'))
print(cos_sim(loadData_1,loadData_2))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

运行结果:0.99

欧式距离与余弦距离的差异

1.欧式距离的数值受到维度的影响,余弦相似度在高维的情况下也依然保持低维完全相同时相似度为1等性质。

2.欧式距离体现的是距离上的绝对差异,余弦距离体现的是方向上的相对差异。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号