【推荐算法】从零开始做推荐(一)——认识推荐,认识数据

前言

  推荐系统挺有趣的,但对做研究的人来讲上手有很多坑。相比于图像领域数据集、代码公开透明,评价指标高度统一,推荐系统仍处在整合阶段,龙蛇混杂。

  本系列打算在推荐系统公开数据集上一步步实现完整推荐,并实现多个经典的推荐算法。由于本人技术、思路上才能有限,因此不能保证所写完全正确,同时也会有自己的疑惑,仅将自己的经验分享给大家,欢迎讨论。
  如果你对本系列(未写完,持续更新中)感兴趣,可接以下传送门:
  【推荐算法】从零开始做推荐(一)——认识数据
  【推荐算法】从零开始做推荐(二)——推荐系统的评价指标,计算原理与样例
  【推荐算法】从零开始做推荐(三)——传统矩阵分解的TopK推荐实战
  【推荐算法】从零开始做推荐(四)——python Keras框架 利用Embedding实现矩阵分解TopK推荐
  【推荐算法】从零开始做推荐(五)——贝叶斯个性化排序矩阵分解 (BPRMF) 推荐实战
  【推荐算法】从零开始做推荐(六)——贝叶斯性化排序矩阵分解 (BPRMF) 的Tensorflow版

推荐是什么?

  个人总结如下。
  狭义上的推荐:给用户(User)推荐项目(Item),挖掘用户可能喜欢的项目展示给用户。
  广义上的推荐:将推荐的主体和客体进行升华,主体和客体可以任意选择,如给项目推荐用户,给用户推荐用户等。值得注意的是,用户和项目也可以根据场景里不同的实体进行变换,如给用户集(如包含多个用户的群组)推荐项目等,给用户推荐项目集(如包含多个地点的行程)等。

推荐需要知道些什么?

  从人的思维出发,如果要给任意一个用户u推荐项目,我应该知道什么?

  1. 用户u的喜好,我得知道任意一个用户uU 的信息。
  2. 认识项目i,我得知道任意一个项目iI 的信息。
  3. 用户u以前喜欢什么项目,我得知道U I 的交互信息。

  用图来表达:
在这里插入图片描述
  这是我们最期望得到三个信息,但理想很丰满,现实很骨感,很多情况下能得到信息往往不是那么全。
  对于表1,表2,表3,如果非要去掉一个选谁呢?
  去掉表2,主体信息和客体信息,相对而言,主体更为重要。
  如果还要去掉一个呢?
  去掉表1,必须用户和项目的信息都知道一些,否则无法推荐。
  因此,推荐所要的核心信息就是表3,业内有多种叫法:评分矩阵、签到矩阵或点击矩阵等。

经典数据集

  之前的介绍是一个抽象的介绍,接下来我们一起来看看真实的数据集长啥样。要说推荐系统里用的最多的数据集,MovieLens肯定能占上名号,以下为其介绍。
在这里插入图片描述
  这里我们看MovieLens给出的两个数据集,一个叫MovieLens 1M稍微大一些,另一个叫MovieLens 100K稍微小一些。

MovieLens 1M

  进入如下界面,选择红色框框部分进行下载。
在这里插入图片描述
  下载完成之后解压,解压完的文件如下图所示。
在这里插入图片描述
  我平常接触的文件大多为txt,csv,dat接触的不多,但是也能用DF来进行读取。写一个函数,专门用来预览该数据集。

def veiw_data():
    usnames = ['user','gender','age','occupation','zip']
    user = pd.read_table("users.dat",sep = '::',header = None,names = usnames,engine='python')
    itnames = ['item','title','genres']
    item = pd.read_table("movies.dat",sep = '::',header = None,names =
  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lechuan_dafo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值