surprise是scikit系列中的一个,简单易用,同时支持多种推荐算法:基础算法、协同过滤算法、矩阵分解(隐语义模型)。
surprise文档: https://surprise.readthedocs.io/en/stable/getting_started.html
数据集:movielens-100k数据集
数据集下载地址:http://files.grouplens.org/datasets/movielens
1.基于邻域的方法(协同过滤)(collaborative filtering): user-based, item-based。
import os, io, collections
import pandas as pd
from surprise import Dataset, KNNBaseline, SVD, accuracy, Reader
from surprise.model_selection import cross_validate, train_test_split
# 协同过滤方法
# 载入movielens-100k数据集,一个经典的公开推荐系统数据集,有选项提示是否下载。
data = Dataset.load_builtin('ml-100k')
# 或载入本地数据集# 数据集路径path to dataset filefile_path = os.path.expanduser('~/.surprise_data/ml-100k/ml-100k/u.data')# 使用Reader指定文本格式,参数line_format指定特征(列名),参数sep指定分隔符reader = Reader(line_format='us