欧氏距离和余弦相似度区别
时间: 2025-01-16 20:59:51 浏览: 78
### 欧氏距离与余弦相似度的区别
在机器学习和数据分析领域,衡量样本间的相似性或距离是非常重要的操作之一。两种常用的度量方式分别是欧氏距离(Euclidean Distance) 和余弦相似度(Cosine Similarity),二者各有特点。
#### 定义上的区别
- **欧氏距离**定义为两个向量之间直线的距离,适用于数值型变量的空间中两点间最短路径长度的测量。具体公式如下:
```python
import numpy as np
def euclidean_distance(vec_a, vec_b):
return np.sqrt(np.sum((vec_a - vec_b)**2))
```
这种度量方法考虑到了各个维度上绝对差值的影响,因此当不同属性的重要性不同时可能需要先做标准化处理[^4]。
- **余弦相似度**则是通过计算两个非零向量夹角的余弦值来反映它们方向的一致程度,取值范围[-1, 1],其中1表示完全相同的方向(-1相反),0垂直无关:
```python
from sklearn.metrics.pairwise import cosine_similarity
cos_sim = cosine_similarity([vec_a], [vec_b])
print(f"Cosine similarity between vectors: {cos_sim[0][0]}")
```
此度量仅关注于角度而非大小,所以即使两对象的实际位置相差很大但如果指向一致也会得到较高的分数[^1]。
#### 应用场景的不同
- 对于那些关心实际物理意义下的差距情况的任务来说,比如地理位置分析、图像识别等,则更适合采用能够体现真实间距变化特性的**欧氏距离**作为评价标准;而对于文本分类、推荐系统这类更在意事物本质联系而不是表面数量关系的情形而言,基于方向判断的**余弦相似度**就显得尤为合适了[^5]。
阅读全文
相关推荐

















