python - 如何找到给定数据集的基于用户和基于项目的协同过滤器?
问题描述
我在这个数据挖掘领域很新,只是想学习它。下面是我的数据集。
它包含课程与学生的数据。每个学生都根据选择的课程给出了评分。
现在(EN)我想做两件事。
- 考虑基于用户的协同过滤器,找出哪些学生可以计算与 EN 的相关性?
- 考虑基于项目的协同过滤,向 (EN) 建议合适的课程
下面是我的代码
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
ratings = pd.read_csv('Courses.csv',index_col=0)
ratings = ratings.fillna(0)
ratings
trainset, testset = train_test_split(ratings , test_size=.25, random_state=1)
# Above line is not good, As i need to convert the ratings into DataFrame or read this csv as DataFrame
## User-based filtering
sim_options = {'name': 'cosine', 'user_based': True}
algo = KNNBasic(sim_options=sim_options)
ratings_similarity = cosine_similarity(ratings.T)
ratings_similarity_df=pd.DataFrame(ratings_similarity,index=ratings.columns,columns=ratings.columns)
print(ratings_similarity_df)
如果有人可以帮助做到这一点,那就太好了。
谢谢!
解决方案
推荐阅读
- amazon-web-services - 如何跨 2 个不同的 AWS 组织运行 aws-nuke
- python - Houghcircle、Contour 和近似 polydp。找不到七边形
- ceph - cephadmn 对待第一个主机的方式不同??【DR场景】
- php - 来自 PHP 循环的模式标记
- c# - 在 PowerShell 中格式化符号 $" 对于 C# 代码
- python - Pandas 中从宽到长,但将列值作为新列
- r - R:在随机森林中调整 mtry 时出错(回归)
- mobx - 为什么 Mobx 声称我正在尝试更改可观察值?
- amazon-web-services - 为什么 AWS Lambda 每 15 分钟“爆发”一次?
- python - 当我有时,end =“”它不会工作,但是当它被删除时我无法完成它