文中的数据集来源于 movielens的ml-100k ,数据集包括,u.data、u.item、u.user 。
这里简要介绍下实现的思路,因为是基于物品的协同过滤,所以这里就是找两两物品之间的联系,然后根据物品来给用户进行相应的推荐,这里首先是要生成用户对物品的评分矩阵,然后就是生成物品同现矩阵,推荐结果 =物品同现矩阵* 用户物品评分矩阵。
首先是导入数据,将所给的数据导入进来,因为主要是做的一个实现的过程,所以数据的处理啥的就没怎么去做,主要是实现最终的推荐结果。数据集信息描述如下:
users数量:943 、items数量:1682 、ratings数量:100000
电影类目 ID对照表如下:1: Action、2: Adventure、3: Animation、4: Children's、5: Comedy
职业列表:artist 、doctor 、educator 、engineer 、entertainment
使用的工具为jupyter-notebook
import numpy as np
import pandas as pd
data_col = ['user_id','item_id','rating','timestamp']
item_col = ['movie_id','movie_title','release_date','video_release_date','IMDb_URL','unknown','Action',
'Adventure','Animation',"Children's",'Comedy','Crime','Documentary','Drama','Fantasy',
'Film-Noir','Horror','Musical','Mystery','Romance','Sci-Fi','Thriller','War','Western']
user_col = ['user_id','age','gender','occupation','zip_code']
#总数据包含了用户,物品,评分
data = pd.read_table('