协同过滤 --- 数据挖掘学习笔记

协同过滤是一种推荐系统技术,通过分析用户兴趣找到相似用户或物品,进行个性化推荐。本文详细介绍了用户基和物品基的协同过滤算法,包括相似度评价、推荐策略及其在大数据环境下的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Collaborative Filtering

1.协同过滤CF

    最近你想看电影了,但是不知道看什么好,想要了解电影的推荐信息,通过什么途径呢?

    比如向问朋友,问老师,问亲友,但是毕竟每个人的品味不同,而且现在可选择的商品或电影太多太多了,不肯得到很好的推荐效果,知道你确实想要什么。

    协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。

    一个协作型过滤算法通常的做法是对一大群人进行搜索, 并从中找出与我们品味相近的一小群入。算法会对这些人所偏爱的其他内容进行考查,并将它们组合起来构造出一个经过排名的推荐列表。有许多不同的方法可以帮助我们确定哪些人与自己的品味相近,并将他们的选择组合成列表。

2. 协同过滤种类

    user-based cf 是基于用户的协同过滤,通过不同用户对item的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐;

    item-based cf 是基于物品的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐;

3.user-based CF 基于用户的协同过滤

    实现思想:

    1. 获取偏好:获取不同用户对item的评分列表。key是用户,value是用户对每个item的评分(item1:3, item2 : 5 ...etc)

    2. 相似度评价:找出相似的用户。(欧式距离评价,皮尔逊相关系数评价...etc)

    3. 依据相似度评价,寻找topMatch,找出某个人最相似的前N个人。

    4. 推荐物品,即找出相似的人,如何推荐,推荐哪些item。

    

    每个步骤都是要再三思考的:

    比如相似度评价,就要很多方法,欧式距离在空间上的绝对距离来评价,需要量纲一致才能出现比较好的效果。而皮尔逊相关系数是在方向上,余弦相似度,以向量的夹角来判断相似性,不要求量纲的绝对一致就能出现比较好的效果。还有找出相似的用户,如何推荐商品,是直接推荐它没看过的商品,还是根据大家对某个item的评分来决定是否要推荐。

3.1 为用户推荐电影

    下面用一个例子来说明:

    1. 获取偏好:

     这个属于数据源的收集,每个用户对某样商品的评分,经过etl形成类似如下的格式,里面包含了每个用户,对它所评价过的电影的评分列表。

# A dictionary of movie critics and their ratings of a small
# set of movies
critics={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,
 'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5, 
 'The Night Listener': 3.0},
'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5, 
 'Just My Luck': 1.5, 'Superman Returns': 5.0, 'The Night Listener': 3.0, 
 'You, Me and Dupree': 3.5}, 
'Michael Phillips': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.0,
 'Superman Returns': 3.5, 'The Night Listener': 4.0},
'Claudia Puig': {'Snakes on a Plane': 3.5, 'Just My Luck': 3.0,
 'The Night Listener': 4.5, 'Superman Returns': 4.0, 
 'You, Me and Dupree': 2.5},
'Mick LaSalle': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0, 
 'Just My Luc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值