三、IMDb评分

IMDb简介

互联网电影数据库(英语:Internet Movie Database,简称IMDb)是一个关于电影演员、电影、电视节目、电视艺人、电子游戏和电影制作小组的在线数据库。

IMDb开办于1990年10月17日,从1998年开始成为亚马逊公司旗下的网站,在2020年是IMDb成立30周年。

IMDb的资料中包含了影片的众多信息、演员、片长、内容介绍、分级、评论等。对于电影的评分目前使用最多的就是IMDb评分

截止2018年6月21日,IMDb共收录了4734693部作品资料以及8702001名人物资料

1.评价定位:大众评价
2.评分逻辑:
(1)打分机制:十分制
(2)门槛:仅计算IMDb用户投票;5票一下,不计算评分
IMDb TOP250,算法逻辑:按照加权得分排序
(3)公式(贝叶斯算法)
加 权 分 W R = v v + m ∗ R + m v + m ∗ C 加权分 WR = \frac {v}{v+m} * R + \frac {m}{v+m} *C 加权分WR=v+mv​∗R+v+mm​∗C
说明:
R:电影的算法平均分
v:该电影投票数
m:进入IMDb top250 需要的最小投票数
C:目前所有电影的平均票数

import pandas as pd
import numpy as npmd = pd.read_csv('data/movies_metadata.csv')
print(md.head())vote_counts = md[md['vote_count'].notnull()]['vote_count'].astype('int')
vote_averages = md[md['vote_average'].notnull()]['vote_average'].astype('int')
C = vote_averages.mean()#平均票数m = vote_counts.quantile(0.95)#进入IMDb top250 需要的最小投票数md['year'] = pd.to_datetime(md['release_date'], errors='coerce').apply(lambda x: str(x).split('-')[0] if x != np.nan else np.nan)md['year'].head()qualified = md[(md['vote_count'] >= m) & (md['vote_count'].notnull()) & (md['vote_average'].notnull())][['title', 'year', 'vote_count', 'vote_average', 'popularity', 'genres']]
qualified['vote_count'] = qualified['vote_count'].astype('int')
qualified['vote_average'] = qualified['vote_average'].astype('int')
qualified.shapequalified.head()# 求IMDb得分
def weighted_rating(x):v = x['vote_count']R = x['vote_average']return (v/(v+m) * R) + (m/(m+v) * C)qualified['wr'] = qualified.apply(weighted_rating, axis=1)qualified.head()qualified = qualified.sort_values('wr', ascending=False).head(250)qualified.head(15)s = md.apply(lambda x: pd.Series(x['genres']),axis=1).stack().reset_index(level=1, drop=True)
s.name = 'genre'
gen_md = md.drop('genres', axis=1).join(s)md.head()# 根据类型 给用户推荐电影
def build_chart(genre, percentile=0.85):df = gen_md[gen_md['genre'] == genre]# 定义为整数型 方便计算  或者是float 不能是objectvote_counts = df[df['vote_count'].notnull()]['vote_count'].astype('int')vote_averages = df[df['vote_average'].notnull()]['vote_average'].astype('int')C = vote_averages.mean()m = vote_counts.quantile(percentile)# 选出top250 将没有值的数据删除  获取平均分 将没有值的数据删除qualified = df[(df['vote_count'] >= m) & (df['vote_count'].notnull()) & (df['vote_average'].notnull())][['title', 'year', 'vote_count', 'vote_average', 'popularity']]qualified['vote_count'] = qualified['vote_count'].astype('int')qualified['vote_average'] = qualified['vote_average'].astype('int')qualified['wr'] = qualified.apply(lambda x: (x['vote_count'] / (x['vote_count'] + m) * x['vote_average']) + (m / (m + x['vote_count']) * C),axis=1)# 排序 降序排列qualified = qualified.sort_values('wr', ascending=False).head(250)return qualifiedbuild_chart('Romance').head(15)

机器学习项目(五) 电影推荐系统(二)相关推荐

  1. 基于Python机器学习算法的电影推荐系统以及票房预测系统

    电影数据分析 目录 电影数据分析 1 一..实验概述 1 1.1 实验标 1 1.2 .实验完成情况 1 二..电影特征的可视化分析 2 电影票房预测 9 2.1 Data Augmentation ...

  2. 机器学习项目-音乐系统推荐系统-音乐分类-Pydub-python_speech_featrures MFCC-SVM

    文章目录 1.项目说明 2.代码 2.1 代码结构 2.2 feature 2.3 svm 2.4 acc 2.5 class_demo 2.6 features_main 2.7 svm_main ...

  3. java项目-第96期基于ssm+hadoop+spark的电影推荐系统-大数据毕业设计

    java项目-第96期基于ssm+hadoop+spark的电影推荐系统 [源码请到资源专栏下载] 1.项目简述 电影推荐系统,基于大数据分析的推荐系统,适合学习和企业应用. 首先电影推荐相对于其它推 ...

  4. 利用用户行为数据——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  5. 基础环境搭建——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(五)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  6. Python机器学习实战教学——基于协同过滤的电影推荐系统(超详细教学,算法分析)

    注重版权,转载请注明原作者和原文链接 作者:Yuan-Programmer 结尾处有效果展示 文章目录 引言 一.技术原理 (一)推荐算法介绍 (二)主流距离计算法 (三)余弦距离计算法 二.数据介绍 ...

  7. 使用Java语言开发在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis)开发框架 机器学习、人工智能、大数据开发

    使用Java语言开发在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户.物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis)开发框架 机器学习.人工智能.大数据开发 ...

  8. 使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline

    使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户.物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline 一.项目简 ...

  9. 在线电影推荐网 Python+Django+Mysql 协同过滤推荐算法在电影网站中的运用 基于用户、物品的协同过滤推荐算法 开发在线电影推荐系统 电影网站推荐系统 人工智能、大数据、机器学习开发

    在线电影推荐网 Python+Django+Mysql 协同过滤推荐算法在电影网站中的运用 基于用户.物品的协同过滤推荐算法 开发在线电影推荐系统 电影网站推荐系统 人工智能.大数据.机器学习开发 M ...

  10. 在线电影推荐网 使用Python+Django+Mysql开发技术 在线电影推荐系统 电影网站推荐系统 基于用户、物品的协同过滤推荐算法 个性化推荐算法开发 机器学习、人工智能、大数据分布式开发

    在线电影推荐网 使用Python+Django+Mysql开发技术 在线电影推荐系统 电影网站推荐系统 基于用户.物品的协同过滤推荐算法 个性化推荐算法开发 机器学习.人工智能.大数据分布式开发 Mo ...

最新文章

  1. SpringCloud微服务注册中心如何承载大型系统的千万级访问?源码及原理分析
  2. nagios和cacti的整合
  3. python做电脑软件-程序员带你十天快速入门Python,玩转电脑软件开发(二)
  4. Redis进阶-无所不知的info命令诊断redis
  5. C++:08---成员变量初始化方式
  6. 人生苦短,我用Python(Python快速教程 - 基础篇)
  7. 从使用 KVO 监听 readonly 属性说起
  8. 解决Source Not Found问题
  9. 百度推广怎么调整计算机优先,百度竞价优化关于帐户层级的一些设置方法与技巧...
  10. python中的ln函数_python3中涉及数字的各种函数
  11. 如何将手机的网络代理给电脑 win10
  12. 留下你认为程序猿最经典的感悟和搞笑事件
  13. 华为eNSP模拟器中两个路由器IP互联
  14. QQ安装包内置UE4是什么意义呢?会不会是奔着元宇宙,搭载了虚幻引擎的QQ在渲染数字孪生上表现更强劲?
  15. 等保2.0测评综合得分计算
  16. 80句经典英文电影台词,英语作文最佳素材
  17. canvas像素操作、save与restore、合成与变形
  18. matlab 不允许函数定义,MATLAB中此上下文中不允许出现函数定义,急求~
  19. android中键盘锁的问题
  20. [UE4] 常用控制台命令

热门文章

  1. 微信小程序用户隐私保护指引设置怎么填?
  2. win10共享打印机搜索不到计算机,Win10专业版在局域网中搜索不到打印机
  3. 刷cadn浏览量阅读量第二中方法
  4. 连接GitHub提示远程主机关闭连接
  5. 事关微信支付,别成为背锅侠!
  6. 微软反linux广告图片,一张地铁站“前程无忧广告”的图片引发网友热议 官方:虚假图片...
  7. swagger(三):统一返回结果不显示字段说明
  8. 解决win10下PPT打不开,显示内容有问题,提示修复但修复不成功问题
  9. 微信服务器与客户端消息通讯机制,微信在部分地区发生连接故障,你遇到了么?...
  10. 看懂英文数据手册、搭建电路