这是上午上课时即兴发挥并现场编写的一段小代码,稍微美化一下分享。

思路:假设已有若干用户名字及其喜欢的电影清单,现有某用户,已看过并喜欢一些电影,现在想找个新电影看看,又不知道看什么好。根据已有数据,查找与该用户爱好最相似的用户,也就是看过并喜欢的电影与该用户最接近,然后从那个用户喜欢的电影中选取一个当前用户还没看过的电影,进行推荐。

本文主要演示Python内置函数以及内置字典与集合的用法。

from random import randrange

# 其他用户喜欢看的电影清单
data = {'user'+str(i):\
        {'film'+str(randrange(1, 10))\
         for j in range(randrange(15))}\
        for i in range(10)}

# 待测用户曾经看过并感觉不错的电影
user = {'film1', 'film2', 'film3'}

# 查找与待测用户最相似的用户和Ta喜欢看的电影
similarUser, films = max(data.items(),\
                         key=lambda item:\
                         len(item[1]&user))

print('历史数据:')
for u, f in data.items():
    print(u, f, sep=':')
print('和您最相似的用户是:', similarUser)
print('Ta最喜欢看的电影是:', films)
print('Ta看过的电影中您还没看过的有:', films-user)

某次运行结果:

历史数据:
user0:{'film9', 'film1'}
user1:{'film4', 'film2', 'film5', 'film9', 'film8', 'film1', 'film6'}
user2:{'film2', 'film5', 'film3', 'film7', 'film8', 'film1', 'film6'}
user3:{'film1', 'film3', 'film6', 'film2'}
user4:{'film4', 'film9', 'film3', 'film8', 'film1', 'film6'}
user5:{'film1', 'film7'}
user6:{'film4', 'film2', 'film5', 'film3', 'film7', 'film8', 'film1', 'film6'}
user7:{'film4', 'film2', 'film5', 'film9', 'film8', 'film1', 'film6'}
user8:{'film5', 'film9', 'film8'}
user9:{'film4', 'film5', 'film3', 'film7', 'film8', 'film1', 'film6'}
和您最相似的用户是: user2
Ta最喜欢看的电影是: {'film2', 'film5', 'film3', 'film7', 'film8', 'film1', 'film6'}
Ta看过的电影中您还没看过的有: {'film5', 'film6', 'film7', 'film8'}

Python基于用户协同过滤算法的电影推荐代码demo相关推荐

  1. Python基于用户协同过滤算法电影推荐的一个小改进

    之前曾经推送过这个问题的一个实现,详见:Python基于用户协同过滤算法的电影推荐代码demo 在当时的代码中没有考虑一种情况,如果选出来的最相似用户和待测用户完全一样,就没法推荐电影了.所以,在实际 ...

  2. “泰迪杯”挑战赛 - 基于用户协同过滤算法的电影推荐系统(附算法代码)

    目录 第 1 章 绪论 1.1.研究背景 1.2.国际发展形势第 2 章 基于用户协同过滤推荐技术 第 2 章 基于用户协同过滤推荐技术 2.1 电子商务推荐系统概述 2.2 协同过滤推荐技术 第 3 ...

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

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

  4. 基于协同过滤算法的电影推荐系统设计(二) - ALS算法详解

    0 系列文章目录 0.1 基于协同过滤算法的电影推荐系统设计(一) - 项目简介 0.2 基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍 ALS是alternating least squ ...

  5. 毕业设计之基于协同过滤算法的电影推荐系统设计(一) - 项目简介

    由于本人今年毕业,为完成毕设特地想着实现一个简单的推荐系统设计,思来想去,小电影不就是很好的切入点嘛! 于是诞生该项目,将会一步步带着大家实现一个自己的电影推荐系统. 1 研究目标 从应用场景来看,基 ...

  6. 基于python协同过滤算法的电影推荐

    简介 协同过滤算法包括基于用户和基于物品的协同过滤算法. 基于用户协同过滤: "喜欢这个东西的人也喜欢--" 基于产品协同过滤: "像你一样的人也喜欢--" 设 ...

  7. python基于vue协同过滤算法的图书推荐系统

    可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发目录 开发语言:Python python框架:django/flask 软件版本:python 数据库:m ...

  8. 基于协同过滤算法的电影推荐系统

    目录 前言 R语言 电影推荐系统 案例及代码 数据准备 数据预处理 建立模型 前言 电影推荐系统是数学建模培训中一次例题,网上对相同类型的模型已有答案,但相关代码跑起来仍然存在些许bug,本文基于同类 ...

  9. 推荐系统(一)基于协同过滤算法开发离线推荐

    什么是离线推荐 所谓的离线推荐其实就是根据用户产生的行为日志,后台设定一个离线统计算法和离线推荐算法的任务来对这些行为日志进行周期性的统计,统计过后的结果数据为前台或者实时分析提供数据的支撑.离线推荐 ...

最新文章

  1. python三层装饰器-python中自带的三个装饰器的实现
  2. 行业研究报告基本分析思路updated with 5c model
  3. android 启动器开发,Android启动器(Launcher)开发详解
  4. Flutter视频播放、Flutter VideoPlayer 视频播放组件精要
  5. Python 数据科学入门教程:机器学习:回归
  6. centos如何编译安装mysql_CentOS中如何编译安装MySQL数据库教程
  7. 干货!一文讲清楚电商商品生产和库存的数据分析
  8. qml demo分析(maskedmousearea-异形窗口)
  9. 高级软件工程2017第2次作业
  10. Kubernetes 中pod绑定node节点:固定节点nodeName和nodeSelector调度详解
  11. 在vue项目中使用 JSON 编辑器: vue-json-editor
  12. H3C交换机配置的备份与恢复[3CDaemon]
  13. 总结揭露黑客入侵网站的手法
  14. 京东程序员压力太大在网页植入骂人代码?网友:。。。
  15. 51单片机:数码管显示
  16. 6月30日 区块链新闻
  17. BAT解密:互联网技术发展之路(1) - 技术发展的驱动力
  18. Ubuntu16.04安装后要做的一些事情
  19. 一对同居男女同一天的日记对比
  20. 利用python脚本批量自动下载Sentinel-1(哨兵1号)数据

热门文章

  1. 主板有几种尺寸_工控机主板哪个牌子好?2019工控主板十大品牌排行榜
  2. 中考计算机考试试题山西注意事项,2021年山西省中考考试注意事项(3)
  3. python image模块需要安装吗_python Image模块安装
  4. 3 矩阵运算_小白学PyTorch——pytorch常见运算详解
  5. win10家庭版远程桌面_win10 家庭版使用RDPWrap开通远程桌面服务
  6. do sb suggest to_suggest sb to do还是doing
  7. java客户端服务器聊天程序流程图_基于java的socket简单聊天编程
  8. IBM小型机没有显卡,用串口登录需要修改tty,加clocal参数
  9. Android 手机app缓存清理实现
  10. python怎么播放mp3_python 下如何播放mp3