[皮尔逊相关系数corrwith]使用案例:电影推荐系统

这篇具有很好参考价值的文章主要介绍了[皮尔逊相关系数corrwith]使用案例:电影推荐系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

协同过滤算法用于发现用户与物品之间的相关性,主要有两种:基于用户的和基于物品的。

基于用户:

用户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条评分)

运行结果:

[皮尔逊相关系数corrwith]使用案例:电影推荐系统


 转为数据透视表

# 将原始数据转换为数据透视表
user_movie = df.pivot_table(index='用户编号', columns='名称', values= '评分')
user_movie.tail()

代码详解:

pivot_table()是pandas的数据透视表函数,index表示索引,colums表示列名。

tail()表示展示尾部的几行,默认是5行。

运行结果:

[皮尔逊相关系数corrwith]使用案例:电影推荐系统

 


计算皮尔逊相关系数

# 从数据透视表中提取各用户对《阿甘正传》的评分
FG = user_movie['阿甘正传(1994)']
# corrwith()函数计算《阿甘正传》与其他电影间的皮尔逊相关系数
corr_FG = user_movie.corrwith(FG)  # 计算皮尔逊相关系数
similarity = pd.DataFrame(corr_FG, columns=['相关系数'])  # 整合成二维表格
# 使用DataFrame的dropna()函数进行剔除空值
similarity.dropna(inplace=True) 
# 展示5部电影的相关系数
similarity.head()

代码详解:

user_movie是我们上一步生成的透视表,先把目标要分析的电影筛选出来,并存到FG。

用corrwith()函数计算物品A与其他物品的皮尔逊相关系数。

由于存在空值,所以用dropna()函数剔除空值;空值的出现是因为:没有一个用户同时对这两部电影进行打分,那么就无法计算皮尔逊相关系数中的协方差,导致结果中出现了NaN值。

运行结果:

[皮尔逊相关系数corrwith]使用案例:电影推荐系统


筛选结果

# 简单设置评分次数阈值为30,然后用sort_values()函数将表格按相关系数降序排列
similarity_new[similarity_new['评分次数'] > 30].sort_values(by='相关系数', ascending=False).head()

代码详解:

筛选评分次数在30以上的,是避免在样本量太少的情况下出现的偶然值。

sort_values()是排序函数,参数by是依据什么字段进行排序;ascending=False表示降序。

运行结果:

[皮尔逊相关系数corrwith]使用案例:电影推荐系统

 结果解读:《抓狂双宝》《致命吸引力》与《阿甘正传》的相似度较高,喜欢《阿甘正传》的用户可能也喜欢这两部电影,可以进行推荐。文章来源地址https://www.toymoban.com/news/detail-497321.html

到了这里,关于[皮尔逊相关系数corrwith]使用案例:电影推荐系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模.皮尔逊相关系数

    一.前言 皮尔逊相关系数说白了就是一次函数中的斜率k,反应两个变量之间的关系,与斜率不同的地方在于其数值在1和-1之间,越接近于1,则说明两个变量之间是完全正向的线性关系;越接近于-1,说明两个变量之间是完全负向的线性关系。(本文是作者在学习清风的建模网课

    2024年02月01日
    浏览(33)
  • 数学建模.皮尔逊相关系数假设检验

    一、步骤 查表找临界值 二、更好的方法 三、使用条件 作图可以使用spss 这个图对不对还不好说,因为还没进行正态分布的验证 四、正态分布验证 (1)JB检验 所以之前的数据的那个表是错的,因为不满足正态分布 (2)Shapiro-wilk检验 看最后一列,为p值,由此观之,不符合原

    2024年01月18日
    浏览(35)
  • 数学建模学习笔记-皮尔逊相关系数

    内容:皮尔逊相关系数 一.概念:是一个和线性线关的相关性系数 1.协方差概念: 协方差受到量纲的影响因此需要剔除 2.相关性的误区 根据这个结论,我们在计算该系数之前需要确定是否为线性函数 二.相关性的计算 1.Matlab:只含相关性不含假设检验:下面第三大点讲解假设

    2024年02月20日
    浏览(31)
  • 【数学建模】皮尔逊相关系数和假设检验

    为了说明两组数据之间的相关性,例如身高与50米跑步的成绩,我们引入相关系数,本文先介绍person相关系数以及在特定情况下的使用方法。 Person相关系数在 满足特定条件下 用来衡量两个变量之间的相关性。 在正式介绍person相关系数之前,我们先引入协方差的概念 协方差是

    2024年02月09日
    浏览(28)
  • 皮尔逊相关系数及代码实现(C语言+MATLAB)

    皮尔逊相关系数,常用于度量两个变量X和Y之间的相关性(线性相关)。本文通过介绍其 概念定义、数学公式 ,进而引出其 适用场合 ,并基于 MATLAB和C语言 对皮尔逊相关系数分别进行了 代码实现 。 在统计学中, 皮尔逊相关系数( Pearson correlation coefficient) ,又称皮尔逊积

    2024年02月06日
    浏览(28)
  • 概率论:方差、标准差、协方差、皮尔逊相关系数、线性相关

    一个随机变量,的值的变化程度可以用方差计算:  ;其中 是期望。 另外一种等价表达式:      其中为均值,N为总体例数 我们举个例子: 服从均一分布,取值为0.1,0.2,0.3,0.4,0.5 ,每种值的概率是20%,可算出期望是0.3,那么方差就是: 标准差是方差的平方根,随机

    2024年02月09日
    浏览(34)
  • 相关分析——皮尔逊相关系数、t显著性检验及Python实现

    (1)衡量事物之间或称变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程。 (2)比如家庭收入和支出、一个人所受教育程度与其收入、子女身高和父母身高的相关性。 (1)衡量变量之间相关程度的一个量值。 (2)相关系数r的数值范围是在-1到+1之间。 (

    2024年02月03日
    浏览(41)
  • 数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数

    目录 前言 一、基本概念及二者适用范围比较 1、什么是相关性分析 2、什么是相关系数 3、适用范围比较 二、相关系数 1.皮尔逊相关系数(Pearson correlation) 1、线性检验 2、正态检验 3、求相关系数 2、斯皮尔曼相关系数(Spearman correlation) 1、秩相关系数 2、使用条件 3、求相

    2024年01月17日
    浏览(30)
  • 【生物信息学】单细胞RNA测序数据分析:计算亲和力矩阵(基于距离、皮尔逊相关系数)及绘制热图(Heatmap)

      计算亲和力矩阵,一般按照以下步骤进行: 导入数据:加载单细胞RNA测序数据集。 数据预处理:根据需要对数据进行预处理,例如 基因过滤 、 归一化 等。 计算亲和力:使用合适的算法(例如, 欧几里德距离 、 Pearson相关系数 或其他距离/相似度度量)计算样本之间的

    2024年02月06日
    浏览(32)
  • Pearson correlation皮尔逊相关性分析

    在参数检验的相关性分析方法主要是皮尔逊相关(Pearson correlation)。既然是参数检验方法,肯定是有一些前提条件。皮尔逊相关的前提是必须满足以下几个条件: 变量是连续变量; 比较的两个变量必须来源于同一个总体; 没有异常值; 两个变量都符合正态分布。 正态分布

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包