读书笔记---推荐系统实践(3)

基于邻域的算法

基于领域的算法是推荐系统中最基本的算法,包括基于用户的协同过滤算法以及基于物品的协同过滤算法。

基于用户的协同过滤算法

  • 这是推荐系统中最古老的算法,甚至可以说这个算法标志这推荐系统的诞生。
  • 基础算法
    主要步骤:
    (1)找到和目标用户有相似兴趣的用户集合。
    (2)根据相似用户的感兴趣的,推荐目标用户感兴趣但是没有听说过的进行推荐。
    对于步骤(1),关键是计算两个用户的兴趣的相似度。可以通过Jaccard公式或者余弦公式。假设有用户u和v,N(u)表示u有正反馈的物品,以此类推。
    Jaccard公式:
    这里写图片描述
    余弦公式:
    这里写图片描述
    使用Python实现余弦公式的为代码如下(该方法非常耗时):
def UserSimarility(train):
    w = dict();
    for u in train.keys():
        for v in train.keys():
            if u == v:
                continue
            w[u][v] = len(train[u] & train[v])
            w[u][v] /= math.sqrt(len(train[u]) * len(train[v] * 1.0))
    return w

然而以上的算法相当耗时,时间消耗在寻找相似用户之上。我们可以通过建立倒排表,通过UserCF实现推荐算法。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值