Python 实现协同过滤算法

本文介绍了推荐系统的核心思想和常用的推荐方法,重点讲解了协同过滤算法,包括算法概述、分类以及基于项和用户的协同过滤算法实现。还讨论了相似度度量方法,如欧氏距离、皮尔逊相关系数和余弦相似度。最后展示了算法的Python实现及推荐结果。
摘要由CSDN通过智能技术生成

 一、推荐系统

在信息暴涨的时代,每天大量的微博转载和创作,给用户不断更新信息的同时,也增加了用户筛选信息的难度,当用户有明确的需求时可以使用搜索引擎。但是在用户没有明确的需求时,只是为了打发时间,在微博中为了给用户筛选出他们感兴趣的信息,就要分析用户的兴趣,从海量的信息中选择与用户兴趣相似的信息,并将此推荐给用户。推荐系统(Recommendation System RS)被提出,推荐系统的任务就是能够链接信息和用户,帮助用户找到其感兴趣的信息,同时让一些有价值的信息能够触达到潜在的用户。

推荐算法是根据用户的历史行为,挖掘出用户的喜好,并为用户推荐与其喜好相符的商品或者信息。

推荐系统的核心问题是为用户推荐与其兴趣相似度比较高的商品。为此需要函数 f(x)计算候选商品与用户之间的相似度,并向用户推荐相似度比较高的商品。为了预测函数 f(x)可用的历史数据有:用户的历史行为数据、与该用户相关的其他用户信息,商品之间的相似性、文本的描述。

二、推荐的常用方法

  1. 协同过滤的推荐:主要依据的是用户或者项之间的相似性。
  2. 基于内容的推荐:主要依据的是推荐项的性质。
  3. 基于关联规则的推荐
  4. 基于效用的推荐
  5. 基于知识的推荐
  6. 组合推荐

三、基于协同过滤的推荐

1.协同过滤算法概述

协同过滤(Collaborative Filtering CF)推荐算法是通过在用户的行为中寻找特定的模式,并通过该模式为用户产生有效推荐,依赖于系统中用户的行为数据。

基于协同过滤的推荐算法的核心思想是:通过对用户的历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的项。在计算推荐结果的过程中,只与用户对项的评分有关。

2.协同过滤算法分类

  • 基于项的协同过滤算法:主要依据的是项与项之间的相似性。
  • 基于用户的协同过滤算法:主要依据的是用户与用户之间的相似性。

下图基于项的协同过滤算法中,用户 u1、u2、u3,与用户 u1 互动的商品有 i1,i2,与用户 u2 互动的商品有 i1,i2,i3,用户u3 互动的商品 i1。通过计算 i1,i3 商品相似,对于用户 u3 来说,用户 u1 互动过的 i3 用户 u3 为互动,所以为用户 u3 推荐商品 i3。

                                                           

下图基于用户的协同过滤算法中,与用户 u1 互动的商品 i1,i3,用户 u2 互动的商品 i2,用户 u3 互动的商品 i1,i3,i4,。通过计算,用户 u1 和 u3 较为相似,对于用户 u1,用户 u3 互动过的商品 i4 使用户 u1 未互动过的,所以为用户 u1 推荐商品 i4。

                                                   

四、相似度的度量方法

相似性的度量方法必须满足拓扑学中的度量空间的基本条件:

假设 d 是度量空间 M 上的度量:d:M\times M\rightarrow R, 其中度量 d 满足:

  • 非负性:
  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值