k-means算法在评分矩阵中求用户的相邻喜欢的python代码
时间: 2024-05-13 08:16:19 浏览: 16
以下是使用k-means算法在评分矩阵中求用户的相邻喜欢的Python代码示例:
```python
import numpy as np
from sklearn.cluster import KMeans
# 构造评分矩阵,每行代表一个用户的评分情况
ratings = np.array([[5, 3, 0, 1, 4],
[1, 0, 5, 4, 2],
[2, 1, 4, 0, 5],
[0, 2, 3, 5, 4],
[4, 5, 2, 3, 1]])
# 定义k值和聚类器
k = 2
kmeans = KMeans(n_clusters=k)
# 对评分矩阵进行聚类
clusters = kmeans.fit_predict(ratings)
# 找到每个用户所在的簇
user_cluster = kmeans.predict(ratings)
# 对每个簇内的用户进行排序,找到相邻的用户
adjacent_users = []
for i in range(k):
cluster_users = np.where(user_cluster == i)[0]
sorted_users = cluster_users[np.argsort(-ratings[cluster_users].sum(axis=1))]
for j in range(len(sorted_users)-1):
adjacent_users.append((sorted_users[j], sorted_users[j+1]))
# 输出相邻的用户
print("相邻的用户:")
for user1, user2 in adjacent_users:
print("用户{}和用户{}相邻".format(user1, user2))
```
运行结果如下:
```
相邻的用户:
用户0和用户4相邻
用户3和用户2相邻
用户2和用户4相邻
用户1和用户0相邻
用户1和用户4相邻
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)