本文代码及数据集来自《Python大数据分析与机器学习商业案例实战》

# 1.读取数据
import pandas as pd
movies = pd.read_excel('电影.xlsx')
movies.head()score = pd.read_excel('评分.xlsx')
score.head()df = pd.merge(movies, score, on='电影编号') # 通过“电影编号”列关联起来
df.head()df.to_excel('电影推荐系统.xlsx') # 将该汇总表导出为excelprint(df['评分'].value_counts()) # 查看各个评分的出现的次数import matplotlib.pyplot as plt
df['评分'].hist(bins=20)  # hist()函数绘制直方图,竖轴为各评分出现的次数
plt.show()

可以看到,评分大多在3~4分之间。运行结果:

# 2.数据分析
ratings = pd.DataFrame(df.groupby('名称')['评分'].mean()) # 计算每部电影的评分均值
print(ratings.sort_values('评分', ascending=False).head()) # 从高到低排序
ratings['评分次数'] = df.groupby('名称')['评分'].count()
print(ratings.sort_values('评分次数', ascending=False).head())

运行结果:

可以看到,这5部电影的评分均值为5分,这可能是因为评分次数较少且普遍评分较高的缘故。

# 3.数据处理
user_movie = df.pivot_table(index='用户编号', columns='名称', values='评分') # 转换为数据透视表
print(user_movie.tail())
print(user_movie.describe())  # 因为数据量较大,这个耗时可能会有1分钟左右

运行结果:

# 4.智能推荐
FG = user_movie['阿甘正传(1994)']  # FG是Forrest Gump(),阿甘英文名称的缩写
pd.DataFrame(FG).head()
corr_FG = user_movie.corrwith(FG)
similarity = pd.DataFrame(corr_FG, columns=['相关系数'])
similarity.head()# 剔除NaN值
similarity.dropna(inplace=True)  # 或写成similarity=similarity.dropna()
similarity.head()# 表格合并方法一
similarity_new = pd.merge(similarity, ratings['评分次数'], left_index=True, right_index=True)
similarity_new.head()# 表格合并方法二
similarity_new = similarity.join(ratings['评分次数'])
similarity_new.head()similarity_new[similarity_new['评分次数'] > 20].sort_values(by='相关系数', ascending=False).head()  # 选取阈值

运行结果:

基于皮尔逊相关系数的电影智能推荐系统相关推荐

  1. java智能推荐系统技术_GitHub - newfishwang/mirs: 电影智能推荐系统JAVA实现

    项目说明 电影智能推荐系统采用典型的MVC架构.项目使用Java 语言作为后端编程语言,使用MYSQL作为数据库:智能推荐算法采用协同过滤算法,提供的推荐功能包括:视频推荐.好友推荐.圈子推荐等.此项 ...

  2. java电影推荐系统_GitHub - Lee0509/mirs: 电影智能推荐系统JAVA实现

    项目说明 电影智能推荐系统采用典型的MVC架构.项目使用Java 语言作为后端编程语言,使用MYSQL作为数据库:智能推荐算法采用协同过滤算法,提供的推荐功能包括:视频推荐.好友推荐.圈子推荐等.此项 ...

  3. 推荐系统入门学习(二)【余弦相似度|皮尔逊相关系数】

    搭建你的第一个推荐系统 初识推荐系统 最初的推荐系统,作用是过滤垃圾邮件.今日机器学习算法的发展,朴素贝叶斯.神经网络已然成为了过滤垃圾邮件的好手.但是在30年前,算法还没有如今使用得广泛的时候,&q ...

  4. 【推荐系统案例】基于协同过滤的电影推荐

    案例--基于协同过滤的电影推荐 1. 数据集下载 2. 数据集加载 3. 相似度计算 4. User-Based CF 预测评分算法实现 5. Item-Based CF 预测评分算法实现 前面我们已 ...

  5. 推荐算法-皮尔逊相关系数的相似度

    探索相似性度量 基于用的推荐程序的一个重要的部分是用户相似度(UserSimilarity)实现.基于用户的推荐非常依赖这个组件.如果对用户的相似性缺乏可靠有效的定义,这类推荐方法是没有意义的.这也适 ...

  6. 基于协同过滤的电影评分推荐案例及相关代码

    文章目录 案例介绍 数据集加载 相似度计算 备注 User-Based CF 预测评分 评分预测公式 实现评分预测predict 实现预测全部评分predict_all 添加过滤规则预测 根据预测评分 ...

  7. [附源码]java毕业设计高考志愿智能推荐系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. 基于用户的协同过滤和皮尔逊相关系数

    基于用户的协同过滤和皮尔逊相关系数 2012 年 11 月 05 日 isnowfy algorithm, web frameborder="0" hspace="0&q ...

  9. 基于Java毕业设计幼儿影视节目智能推荐系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计幼儿影视节目智能推荐系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计幼儿影视节目智能推荐系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...

最新文章

  1. java基础知识总结1
  2. 开源作品ThinkJDBC—一行代码搞定数据库操作
  3. SpringBoot内置Tomcat支持多大并发量和连接数
  4. 天池 在线编程 回文子串(区间动态规划)
  5. OCP China Day“登陆”,最新技术、方案吸睛!
  6. python爬虫实现方式_python爬虫的实现方法
  7. 快速了解layui中layer的使用
  8. Ubuntu20.04更新源步骤
  9. 易学性vs易用性,产品应该选哪边?
  10. leetcode------Binary Tree Level Order Traversal II
  11. C#开发微信门户及应用(13)-使用地理位置扩展相关应用
  12. 将oracle端口1521共享_[转]利用oracle1521端口抓鸡
  13. 微信整人假红包图片_微信整人假红包 仿真整人红包图片
  14. Spring Boot入门教程(三十九):微信支付集成-申请服务号和微信支付
  15. 《西窗法雨》一天读完,怕不怕
  16. 腹有诗书气自华,新华三交换机大有不同
  17. XDOS DAS Call WIS NET F6 (HELP)- WIS Is Not Available Solution
  18. 西安交通大学大学计算机考试题,西安交通大学17年3月课程考试《计算机应用基础》作业考核试题...
  19. MySQL高级2-优化分析
  20. c语言赋值运算与除法运算顺序,C语言运算符的优先级和结合律

热门文章

  1. 计算并输出0-1000含有7或者是7的倍数的整数之和及其个数
  2. 社交之战,结局:被封?,这只是一个开始
  3. macbook air 卸载java,macbook air如何卸载软件 macbook air卸载软件的方法
  4. macbook 如何卸载 homebrew
  5. 论学校农业EI会议论文工程建设的使命与视野
  6. Win7安装VS2008 Error1935
  7. keil5安装包下载
  8. 制作Android系统App
  9. 一支雪糕卖66?钟薛高,你就偷着乐吧
  10. 学会python,妈妈再也不用担心我乱花钱了!