使用Surprise实现电影推荐
本文记录学习使用Surprise库实现电影数据集MovieLens的推荐系统。 安装 pip pip install numpy pip install scikit-surprise conda conda install -c conda-forge scikit-surprise 先来看一下Surprise官方的例子 from surprise import SVD from surprise import Dataset from surprise.model_selection import cross_validate # 加载movielens-100k数据集,如果本地没有则会自动下载 data = Dataset.load_builtin('ml-100k') # 使用SVD算法 algo = SVD() # 对数据集切成5份进行交叉验证 cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True) 会看到类似如下的输出结果: Evaluating RMSE, MAE of algorithm SVD on 5 split(s). Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 Mean Std RMSE 0.9311 0.9370 0.9320 0.9317 0.9391 0.9342 0.0032 MAE 0.7350 0.7375 0.7341 0.7342 0.7375 0.7357 0.0015 Fit time 6.53 7.11 7.23 7.15 3.99 6.40 1.23 Test time 0.26 0.26 0.25 0.15 0.13 0.21 0.06 基于用户的推荐 基本思想是先找到给定用户User的相似用户,然后取各相似用户的观影记录推荐给那个给定的用户User。下面使用代码来实现。 ...