其他分享
首页 > 其他分享> > 怪了,为什么一些场景中使用余弦相似度而不是欧式距离

怪了,为什么一些场景中使用余弦相似度而不是欧式距离

作者:互联网

空间中的两个点 a ( x 1 , y 2 ) , b ( x 2 , y 2 ) a(x_1, y_2), b(x_2, y_2) a(x1​,y2​),b(x2​,y2​)

余弦相似度计算公式为

c o s = a ⋅ b ∣ ∣ a ∣ ∣ ∗ ∣ ∣ b ∣ ∣ = x 1 x 2 + y 1 y 2 x 1 2 + y 1 2 ⋅ x 2 2 + y 2 2 cos = \frac{a·b}{||a|| * ||b||} = \frac{x_1x_2+y_1y_2}{\sqrt{x_1^2+y_1^2} · \sqrt{x_2^2+y_2^2}} cos=∣∣a∣∣∗∣∣b∣∣a⋅b​=x12​+y12​ ​⋅x22​+y22​ ​x1​x2​+y1​y2​​

欧式距离计算公式为

e u c = ∣ ∣ a − b ∣ ∣ 2 = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 euc = ||a-b||_2 = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2} euc=∣∣a−b∣∣2​=(x1​−x2​)2+(y1​−y2​)2

余弦相似度计算的是两个向量夹角的余弦,关注的是向量之间的角度关系,不关心绝对值大小,取值为[-1, 1]。

当向量归一化后,欧式距离与余弦相似度存在转换关系 e u c ( a , b ) = 2 ( 1 − c o s ( a , b ) ) euc(a,b) = \sqrt{2(1-cos(a,b))} euc(a,b)=2(1−cos(a,b))

欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工程师面试,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~
在这里插入图片描述

标签:cos,场景,euc,余弦,相似,欧式,y2
来源: https://blog.csdn.net/qq_40006058/article/details/121070282