我是靠谱客的博主 愉快橘子,最近开发中收集的这篇文章主要介绍关于欧氏距离和余弦相似度的使用场景,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在做“判断两段文本的语义相似度”的事情,实验中用doc2vec做文本向量化,用余弦值衡量文本相似度。
## 那么为什么选用余弦呢?
如向量的维度是3,有三段文本a、b、c,文本向量化之后的结果假如如下:a=(1,0,0)、b=(0,1,0)、c=(10,0,0)。
我们知道doc2vec的每一个维度都代表一个特征,观察向量的数字,主观看来a和c说的意思应该相似,阐述的都是第一个维度上的含义,a和b语义应该不相似。那么如果用欧式距离计算相似度,a和b的相似度就比a和c的相似度高,而如果用余弦计算,则答案反之。

## 那么欧式距离和余弦相似度的区别是什么呢?
余弦相似度衡量的是维度间取值方向的一致性,注重维度之间的差异,不注重数值上的差异,而欧氏度量的正是数值上的差异性。
## 那么欧式距离和余弦相似度的应用场景是什么呢
以下场景案例是从网上摘抄的。

  • 如某T恤从100块降到了50块(A(100,50)),某西装从1000块降到了500块(B(1000,500)),那么T恤和西装都是降价了50%,两者的价格变动趋势一致,可以用余弦相似度衡量,即两者有很高的变化趋势相似度,但是从商品价格本身的角度来说,两者相差了好几百块的差距,欧氏距离较大,即两者有较低的价格相似度。

  • 如果要对电子商务用户做聚类,区分高价值用户和低价值用户,用消费次数和平均消费额,这个时候用余弦夹角是不恰当的,因为它会将(2,10)和(10,50)的用户算成相似用户,但显然后者的价值高得多,因为这个时候需要注重数值上的差异,而不是维度之间的差异。

  • 两用户只对两件商品评分,向量分别为(3,3)和(5,5),显然这两个用户对两件商品的偏好是一样的,但是欧式距离给出的相似度显然没有余弦值合理。

最后

以上就是愉快橘子为你收集整理的关于欧氏距离和余弦相似度的使用场景的全部内容,希望文章能够帮你解决关于欧氏距离和余弦相似度的使用场景所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部