Python写一个计算数据集余弦相似度的计算函数
时间: 2024-06-11 16:06:47 浏览: 148
python 余弦相似度算法
以下是Python实现的计算数据集余弦相似度的函数:
```python
import numpy as np
def cos_sim(a, b):
"""
计算两个向量a和b之间的余弦相似度
"""
dot_product = np.dot(a, b)
norm_a = np.linalg.norm(a)
norm_b = np.linalg.norm(b)
return dot_product / (norm_a * norm_b)
def dataset_cos_sim(data):
"""
计算数据集中每对向量之间的余弦相似度
"""
n = data.shape[0]
sim_matrix = np.zeros((n, n))
for i in range(n):
for j in range(i+1, n):
sim_matrix[i][j] = cos_sim(data[i], data[j])
sim_matrix[j][i] = sim_matrix[i][j]
return sim_matrix
```
函数`cos_sim`用于计算两个向量之间的余弦相似度,`dataset_cos_sim`函数则用于计算数据集中每对向量之间的余弦相似度,返回一个相似度矩阵。函数中用到了numpy库提供的向量点乘和向量范数计算函数。
阅读全文