推荐算法余弦相似度python
时间: 2023-11-15 07:01:52 浏览: 46
余弦相似度是一种常用的推荐算法,它可以用来计算两个向量之间的相似度。在推荐系统中,我们可以将用户的兴趣向量和物品的特征向量表示成向量形式,然后通过计算它们之间的余弦相似度来评估用户对物品的喜好程度。在Python中,我们可以使用NumPy库来计算余弦相似度。具体实现步骤如下:
1. 导入NumPy库
```python
import numpy as np
```
2. 定义两个向量
```python
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
```
3. 计算余弦相似度
```python
cos_sim = np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
```
其中,np.dot(a, b)表示向量a和向量b的点积,np.linalg.norm(a)表示向量a的模长。
最终得到的cos_sim即为两个向量之间的余弦相似度。
相关问题
余弦相似度python
以下是余弦相似度算法的Python实现代码:
```python
import math
def cosine_similarity(vec1, vec2):
dot_product = sum(vec1[i] * vec2[i] for i in range(len(vec1)))
magnitude1 = math.sqrt(sum(vec1[i] ** 2 for i in range(len(vec1))))
magnitude2 = math.sqrt(sum(vec2[i] ** 2 for i in range(len(vec2))))
return dot_product / (magnitude1 * magnitude2)
```
其中,vec1和vec2分别是两个向量。我们首先计算这两个向量的点积,即两个向量对应元素相乘后相加得到的结果。然后,我们计算这两个向量的模长,即每个元素的平方和再开根号。最后,余弦相似度就是点积除以两个向量模长的乘积的结果。
余弦相似度算法python
以下是使用Python实现余弦相似度算法的示例代码:
```python
import math
# 定义余弦相似度函数
def cosine_similarity(v1, v2):
dot_product = 0.0
norm_v1 = 0.0
norm_v2 = 0.0
for i in range(len(v1)):
dot_product += v1[i] * v2[i]
norm_v1 += v1[i]**2
norm_v2 += v2[i]**2
if norm_v1 == 0.0 or norm_v2 == 0.0:
return 0
else:
return dot_product / ((norm_v1 * norm_v2) ** 0.5)
# 示例使用
v1 = [1, 2, 3, 4, 5]
v2 = [3, 4, 5, 6, 7]
print(cosine_similarity(v1, v2))
```
在示例中,我们定义了一个 `cosine_similarity` 函数,该函数接受两个向量 `v1` 和 `v2` 作为输入,并返回它们之间的余弦相似度。我们使用 `dot_product` 变量计算两个向量的点积,使用 `norm_v1` 和 `norm_v2` 变量计算两个向量的范数,并将它们用于计算余弦相似度。
在示例中,我们将向量 `v1` 和 `v2` 分别设置为 `[1, 2, 3, 4, 5]` 和 `[3, 4, 5, 6, 7]`,并打印它们之间的余弦相似度。输出结果为 `0.9970544855015815`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)