首页 > 解决方案 > 如何找到给定数据集的基于用户和基于项目的协同过滤器?

问题描述

我在这个数据挖掘领域很新,只是想学习它。下面是我的数据集。

数据集

它包含课程与学生的数据。每个学生都根据选择的课程给出了评分。

现在(EN)我想做两件事。

  1. 考虑基于用户的协同过滤器,找出哪些学生可以计算与 EN 的相关性?
  2. 考虑基于项目的协同过滤,向 (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)

如果有人可以帮助做到这一点,那就太好了。

谢谢!

标签: pythonmachine-learningrecommendation-enginecollaborative-filtering

解决方案


推荐阅读