赞
踩
项目地址:https://github.com/ChanKamShing/UserCF_python.git
推荐系统的作业流程:
召回/match(推荐引擎)-> 物品候选集 -> 过滤 -> 排序 -> 策略(保证结果多样性) -> 推荐list
协同过滤CF属于第一阶段,我们常常称之为“推荐引擎”。“推荐引擎”可以有多个基准,包括:基于相似用户、基于相似物品、基于特征搜索,以及基于热门等方式。通过不同的方式可以解决不同的问题,譬如冷启动问题,这里介绍的是基于相似用户的方式。
在本文中,不会详细介绍代码,主要从逻辑上讲述。
1、找出当前用户的若干个相似用户,取出每个相似用户购买过的商品(或打分过的电影)集合;
2、基于当前用户的购买过的商品(或打分过的电影)集合,对其相似用户购买过的商品(或打分过的电影)集合进行过滤,得出存在相似用户,同时不存在当前用户的商品(或电影)集合;
3、基于当前用户与相似用户之间的相似度,以及用户对商品(或电影)的打分,进行排序取topN,得到物品候选集
u.data数据格式(user_id, item_id, rating, timestamp):
一、创建源数据的结构
timestamp列数据在寻找相似用户里面,意义不大,可以不使用;对于pyspark程序,u.data数据是没有结构的,所以第一时间是读取u.data,并定义数据的结构,可以将数据的结构定义为:
dict{user_id:{item_id:rating}}
- import pandas as pd
-
- def generate_train_data(nrows=10):
- # 处理训练数据 -> dict{user_id:{item_id:rating}}
- df = pd.read_csv('../row_data/u.data',
- sep='\t',
- nrows=nrows,
- names=['user_id', 'item_id', 'rating', 'timestamp'])
-
- # d
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。