欧式距离 和 余弦相似度

欧式距离 和 余弦相似度

都单位向量化后,再化简后就是: [公式],其中cos为余弦相似度,euc为欧氏距离。

两者在归一化为单位向量的时候计算相似度结果完全一样。只不过余弦相似度是值越大月相似,欧式距离是值越小越相似

 

两者各自的适用模型:

 

  1. 欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异。主要在乎的是值
  2. 余弦距离更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦距离对绝对数值不敏感)。主要在乎的是方向

再举个非常形象简单的关于聚类的例子:

歌手大赛,三个评委给三个歌手打分,第一个评委的打分(10,8,9), 第二个评委的打分(4,2,3),第三个评委的打分(8,10,9),如果采用余弦相似度来看每个评委的差异,虽然每个评委对同一个选手的评分不一样,但第一、第二两个评委对这三位歌手实力的排序是一样的,只是第二个评委对满分有更高的评判标准,说明第一、第二个评委对音乐的品味上是一致的。

因此,用余弦相似度来看,第一、第二个评委为一类人,第三个评委为另外一类。 
如果采用欧氏距离, 第一和第三个评委的欧氏距离更近,就分成一类人了,但其实不太合理,因为他们对于三位选手的排名都是完全颠倒的


https://blog.csdn.net/linvo/article/details/9333019

### 原型网络中的欧式距离余弦相似度 在机器学习领域,尤其是原型网络中,两种常见的度量方式分别是平方欧氏距离余弦相似度。这两种方法用于衡量样本之间的差异或相似程度,在不同场景下各有优势。 #### 平方欧氏距离 (Euclidean Distance) 平方欧氏距离定义为两个向量之间差值的平方: \[ D(x, y) = \sum_{i=1}^{n}(x_i - y_i)^2 \] 这种度量方法适用于当特征空间内的绝对数值大小对于分类决策至关重要时的情况。例如,在图像识别任务中,如果像素强度的变化直接影响类别判断,则应优先考虑使用平方欧氏距离[^1]。 ```python import numpy as np def euclidean_distance(a, b): return np.sum((a - b)**2) ``` #### 余弦相似度 (Cosine Similarity) 相比之下,余弦相似度关注的是两个非零向量间的角度而非它们的具体位置。计算公式如下所示: \[ cos(\theta)=\frac{A·B}{||A|| ||B||} \] 这里 \( A·B \) 表示内积运算;\( ||A|| \),\( ||B|| \) 分别表示向量长度。该指标更适合处理那些方向更重要而幅度不那么重要的情况,比如文本分析里词频统计等应用场合[^2]。 ```python from sklearn.metrics.pairwise import cosine_similarity def compute_cosine_similarity(a, b): a = a.reshape(1, -1) b = b.reshape(1, -1) return cosine_similarity(a, b)[0][0] ``` #### 应用场景对比 - **欧式距离** 更适合于需要精确匹配输入模式的任务,尤其是在低维空间中表现良好; - **余弦相似度** 则更倾向于捕捉高维度稀疏数据集上的语义关系,能够有效忽略模长的影响从而聚焦角度信息。 因此,在构建原型网络模型时,选择哪种度量标准取决于具体的应用需求以及所涉及的数据特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾世林jiashilin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值