机器学习面试题-余弦相似与欧氏距离的区别和联系

1)区别

假设 2人对三部电影的评分分别是 A = [3, 3, 3]B = [5, 5, 5]

那么2人的欧式距离是 根号12 = 3.46, A、B的余弦相似度是1(方向完全一致)。

余弦值的范围是[-1, 1], 越接近于1,说明2个向量的方向越相近

欧式距离和余弦相似度都能度量2个向量之间的相似度,但是欧式距离从2点之间的距离去考量,余弦相似从2个向量之间的夹角去考量。 从上例可以发出,2人对三部电影的评价趋势是一致的,但是欧式距离并不能反映出这一点,余弦相似则能够很好地反应。余弦相似可以很好地规避指标刻度的差异,最常见的应用是计算 文本的相似度

2)联系

从下图的公式可以看出,归一化后计算的欧式距离是关于余弦相似的单调函数,可以认为归一化后,余弦相似与欧式距离效果是一致的(欧式距离越小等价于余弦相似度越大)。

因此可以将 求余弦相似转为求欧式距离 ,余弦相似的计算复杂度过高,转为求欧式距离后,可以借助KDTree(KNN算法用到)或者BallTree(对高维向量友好)来降低复杂度。

余弦相似

3)参考链接

知乎:欧氏距离和余弦相似度的区别是什么?


标签:

本站使用 「署名 4.0 国际」 创作共享协议,转载请注明出处