实验内容
编写程序,生成数据模拟(也可以使用真实数据)多人对多个电影的打分(1-5 分), 然后根据这些数据对某用户 A 进行推荐。推荐规则为:在已有数据中选择与该用户 A 的爱 好最相似的用户 B,然后从最相似的用户 B 已看过但用户 A 还没看过的电影中选择用户 B 打 分最高的电影推荐给用户 A。相似度的计算标准为:1)两个用户共同打分过的电影越多, 越相似;2)两个用户对共同打分的电影的打分越接近,越相似。

from random import randrange
data={'user'+str(i):{'film'+str(randrange(1,15)):randrange(1,6)for j in range(randrange(3,10))}for i in range(10)}
#当前用户打分数据
user={'film'+str(randrange(1,15)):randrange(1,6) for i in range(5)}
#最相似的用户及其对电影打分情况
#两个用户共同打分的电影最多
#并且所有电影打分差值的平方和最小
f=lambda item:(-len(item[1].keys()&user),sum(((item[1].get(film)-user.get(film))**2for film in user.keys()&item[1].keys())))
similarUser,films=min(data.items(),key=f)
print('Know data'.center(50,'='))
for item in data.items():print(len(item[1].keys()&user.keys()),sum(((item[1].get(film)-user.get(film))**2for film in user.keys()&item[1].keys())),item,sep=':')
print('current user'.center(50,'='))
print(user)print('most similar user and his films'.center(50,'='))
print(similarUser,films,sep=':')
print('recommended film'.center(50,'='))
print(max(films.keys()-user.keys(),key=lambda film: films[film]))

python|电影打分与推荐相关推荐

  1. 基于用户协同过滤算法的电影打分与推荐

    编写程序,生成数据模拟(也可以使用真实数据)多人对多部电影的打分(1~5分),然后根据这些数据对某用户A进行推荐. 推荐规则为:在已有数据中选择与用户A的爱好相似的用户B,然后从最相似的用户B已看过但 ...

  2. 两行Python代码实现电影打分与推荐

    代码采用基于用户的协同过滤算法,也就是根据用户喜好来确定与当前用户最相似的用户,然后再根据最相似用户的喜好为当前用户进行推荐. 代码采用字典来存放数据,格式为{用户1:{电影名称1:打分1, 电影名称 ...

  3. python电影数据分析的代码_python-small-examples

    Kaggle电影数据分析实战 本项目基于Kaggle电影影评数据集,通过这个系列,你将学到如何进行数据探索性分析(EDA),学会使用数据分析利器pandas,会用绘图包pyecharts,以及EDA时 ...

  4. python爬虫项目-33个Python爬虫项目实战(推荐)

    今天为大家整理了32个Python爬虫项目. 整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1] ...

  5. python必备源代码-资源推荐|347个Python开发经典资源推荐(42类)

    原标题:资源推荐|347个Python开发经典资源推荐(42类) 今天的文章是Python开发资源,总计42个大类,一共347项.(Python的东西实在太多了,一个人整理简直是自寻死路,大家如果有比 ...

  6. python爬虫知网实例-33个Python爬虫项目实战(推荐)

    今天为大家整理了32个Python爬虫项目. 整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1] ...

  7. python协同过滤算法_详解python实现协同过滤推荐算法

    不同的数据.不同的程序猿写出的协同过滤推荐算法不同,但其核心是一致的,本文主要介绍了python实现协同过滤推荐算法完整代码示例,具有一定借鉴价值,需要的朋友可以参考下.希望能帮助到大家. 测试数据 ...

  8. 学python有哪些书推荐-有哪些Python学习路线值得推荐?线路及书籍推荐都在这里...

    有哪些Python学习路线值得推荐?下面就跟着千锋一起来看看吧! 人生道路上,如果你没有方向,就会不知道怎么走,可能就只能浑浑噩噩地过完了.你可能会说,这和文章有什么关系.其实,学Python又何尝不 ...

  9. python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...

    原标题:腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗? 稍微关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,于是,隔三差五就会有人问:这两 ...

最新文章

  1. hdu 2065 红色病毒问题 (母函数)
  2. 基于子类的动态代理:
  3. protected private public
  4. Git代码管理常用命令操作
  5. 0-2岁的app开发人员必读,Android开发APP前的准备事项
  6. easyui 修改单元格内容_初学Excel办公软件快速修改文字的方法
  7. raml2html 安装,Raml实践
  8. python 带随机指针的链表深度复制_链表--深度拷贝一个带有随机指针的链表
  9. java短信验证码实现_社交APP开发短信验证是通过什么技术实现
  10. 【已解决】Ubuntu 12.04 LTS Source安装nodejs时出现bash ./configure permission denied
  11. java线程期末考试_mooc课程 java 期末考试试卷
  12. git Tower 操作记录
  13. javascript实现-右下角广告框效果
  14. bin是什么文件,要如何打开?
  15. CCNP 6 ISIS
  16. wifidog源码分析 - 初始化阶段
  17. 「兔了个兔」玉兔踏青,纯CSS实现瑞兔日历(附源码)
  18. 历经四个月,谷歌联盟的PIN码问题终于解决了
  19. SQLITE3插入、查询效率的优化方法
  20. 系统调用中断(EINTR)与SIGCHLD信号的处理

热门文章

  1. Picgo + Gitee + Github 搭建免费图库, Typora 自动上传图片
  2. 【flask-sqlalchemy】SQLAlchemy+PyMysql到mysql的映射
  3. oracle应用之批量新增更新数据
  4. Python基础教程 Colorama模块
  5. 戴尔微型计算机主机怎么拆,简单拆解内部探秘_戴尔台式电脑_台式电脑评测-中关村在线...
  6. 单元测试系列[v1.0.0][Junit5]
  7. react在线文件_在线教育大前端架构演进之路
  8. skylake服务器处理器M系列,型号太多看花眼?浅谈Skylake平台,芯片组与cpu的搭配...
  9. powerpoint 2007字体间距太大的问题
  10. 推荐系统中的矩阵分解技术