UserCF是和ItemCF齐名的另一种基本的协同过滤方法
它的核心思想也是两步:
- 将用户产生行为的物品作为用户特征,计算用户相似度矩阵
- 根据用户相似度矩阵得到与推荐用户相似的K个用户,将相似度作为权值累加,从相似用户产生行为的物品中排名前N的物品推荐给用户
具体代码可以参考:
(项目截取,只能作为参考)
# 协同过滤推荐算法(UserCF)实现
import math
from operator import itemgetter
from ...models import UCFRec
from ... import db
class UserBasedCF:
# 初始化相关参数
def __init__(self, users=10, rec=20):
# K值:最相似的10个用户
self.n_sim_user = users
# N值:推荐(缓存)20个菜谱
self.n_rec_cookbook = rec
# 将数据集划分为训练集和测试集
self.trainSet = {}
# 用户相似度矩阵
self.use