协同过滤算法用于发现用户与物品之间的相关性,主要有两种:基于用户的和基于物品的。
基于用户:
用户1购买了物品A、B、C、D,并给了好评;而用户2也买了A、B、C,那么认为用户1和用户2是同类型用户,也可以把D推荐给用户2。
基于物品:
物品A和物品B都被用户1、2、3买过,则认为物品A和B有较高的相似度,而用户4买过物品A,则可以把物品B也推荐给用户4。
下面的案例是基于物品的协同过滤算法:
项目背景:某视频平台决定依据用户的观影记录做一个智能推荐系统,优化体验,提高用户粘性。
处理数据集
# 导入数据
import pandas as pd
movies = pd.read_excel('/kaggle/input/movie-name-and-category/Movie Name and Category.xlsx')
score = pd.read_excel('/kaggle/input/movie-name-and-category/Film rating.xlsx')
# 关联为一张表
df = pd.merge(movies, score, on='电影编号')
df.head()
代码详解:
merge()函数用来关联两个数据集,默认是内连接inner join。on:用于连接的列名,必须在两个DataFrame对象中都存在。
左连接的语法是:result2 = pd.merge(df1, df2, on='key', how='left');how:连接方式,包括‘left’,‘right’,‘outer’,‘inner’四种(默认为‘inner’)。
(数据集见评论区,数据集中有9712部电影和100836条评分)
运行结果:

该文介绍了如何使用协同过滤算法,特别是基于物品的协同过滤,来构建视频推荐系统。通过读取和合并数据集,转换为数据透视表,计算皮尔逊相关系数以确定电影之间的相似度,然后筛选出与目标电影相关性高的其他电影进行推荐。这种方法有助于提高用户粘性和优化体验。
最低0.47元/天 解锁文章
6122

被折叠的 条评论
为什么被折叠?



