当前位置:   article > 正文

User协同过滤(基于Python实现)_user match 引擎

user match 引擎

项目地址: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}}
  1. import pandas as pd
  2. def generate_train_data(nrows=10):
  3. # 处理训练数据 -> dict{user_id:{item_id:rating}}
  4. df = pd.read_csv('../row_data/u.data',
  5. sep='\t',
  6. nrows=nrows,
  7. names=['user_id', 'item_id', 'rating', 'timestamp'])
  8. # d
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/714017
推荐阅读
相关标签
  

闽ICP备14008679号