python欧几里得相似度
时间: 2024-06-26 21:01:30 浏览: 188
python脚本案例人脸相似度对比
Python中计算欧几里得相似度通常用于比较两个向量之间的距离,它基于欧几里得距离的概念,即两点在n维空间中的直线距离。在Python中,我们可以使用内置的`math`模块或第三方库如`numpy`来计算。以下是计算欧几里得相似度的基本步骤:
1. 定义两个向量(列表或numpy数组)。
2. 对两个向量分别求平方和(`sum(x**2)`)。
3. 计算两个平方和的差值。
4. 取差值的平方根,得到欧几里得距离(`sqrt(sum((a-b)**2))`)。
5. 欧几里得相似度通常是用1减去距离,范围在0到1之间,越接近1表示相似度越高。
以下是一个简单的例子:
```python
import math
def euclidean_similarity(vec1, vec2):
if len(vec1) != len(vec2):
raise ValueError("Vectors must have the same dimensions")
dot_product = sum(x * y for x, y in zip(vec1, vec2))
vec1_mag = math.sqrt(sum(x**2 for x in vec1))
vec2_mag = math.sqrt(sum(y**2 for y in vec2))
return dot_product / (vec1_mag * vec2_mag)
# 示例向量
vector_a = [1, 2, 3]
vector_b = [4, 5, 6]
similarity = euclidean_similarity(vector_a, vector_b)
```
阅读全文