使用python写一个分别计算第1个用户与其他3899个用户对应评分向量的相似度(采用余弦度量)
时间: 2024-05-12 08:18:12 浏览: 52
python 余弦相似度算法
好的,这个问题可以回答。以下是Python代码实现:
```python
import numpy as np
def cosine_sim(v1, v2):
"""计算两个向量的余弦相似度"""
dot_product = np.dot(v1, v2)
norm_v1 = np.linalg.norm(v1)
norm_v2 = np.linalg.norm(v2)
return dot_product / (norm_v1 * norm_v2)
# 假设第一个用户的评分向量为v1,其他3899个用户的评分向量存储在矩阵ratings中
v1 = ratings[0]
similarity_scores = []
for i in range(1, 3900):
v2 = ratings[i]
cos_sim = cosine_sim(v1, v2)
similarity_scores.append(cos_sim)
# 打印结果
print(similarity_scores)
```
上述代码中,我们定义了一个计算余弦相似度的函数`cosine_sim`,并且假设第一个用户的评分向量为`v1`,其他3899个用户的评分向量存储在矩阵`ratings`中。然后使用一个循环来计算第一个用户与其他用户的相似度分数,并将分数存储在一个列表`scores`中。最后打印出相似度分数列表即可。
阅读全文