假设已有大量用户对若干电影的评分数据,现有某用户,也看过一些电影并进行过评分,要求根据已有打分数据为该用户进行精准推荐。要求尽量推荐与该用户喜欢的电影类型相同的电影(或者说,根据与该用户爱好最相似的用户打分数据进行推荐),如果有多个可能的电影,则推荐打分最高的电影。

from random import randrange#历史电影打分数据,一个10个用户,每个用户对3到9个电影进行评分
#每个电影的评分最低1分,最高5分,这里是字典推导式和集合推导式的用法
data= {'user'+str(i):{'film'+str(randrange(1,15)):randrange(1,6) for j in range(randrange(3,10))} for i in range(10)}    #模拟当前用户打分数据,为5部随机电影打分
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('known 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('curren 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. 推荐算法--利用用户标签数据(04)

    文章目录 流行的推荐系统通过3种方式联系用户兴趣和物品 (1):利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品,这是基于物品的算法. (2):利用和用户兴趣相似的其他用户,给用户推荐那些和 ...

  2. 观影指南(使用java语言模拟实现观影指南. 实现添加电影,查看电影列表,分类查看电影列表,显示人气最高的电影)

    实现思路 添加实体类 MMovie(电影) 属性:Name(电影名称) Type(类型) Donny(人气) 创建观影指南类 MMovieManager(观影指南管理类) 方法:初始化电影数据.添加 ...

  3. python协同过滤电影推荐_python实现基于用户的协同过滤算法(CF)——以电影评价数据(ml-100k)为例...

    程序简介 项目以ml-100k电影评分数据集为输入,实现了基于用户的协同过滤算法,最后预测的MAE为0.84,因为经过优化,10万条评分数据运行时间不超过2分钟 协同过滤算法(CF)基于对用户历史行为 ...

  4. 协同过滤推荐算法-基于用户的协同过滤UserCF及python实现

    协同过滤推荐算法 基本思想: 根据用户的历史行为数据的挖掘发现用户的兴趣爱好,基于不同的兴趣爱好对用户进行划分并推荐兴趣相似的物品给用户. 协同过滤推荐算法包含: 1.1基于记忆的推荐算法(基于领域的 ...

  5. Python推荐算法案例(2)——基于内容的电影推荐

    在上一节中讲述了如何利用评分对电影进行简单的排序推荐.Python推荐算法案例(1)--根据评分进行排序的电影推荐 本节中,将根据某电影的内容属性(例如电影类别)来推荐相似的电影. 数据来源IMDB电 ...

  6. 调查:周末iPhone用户喜欢出去玩 Android喜欢宅家看电影/看书

    近期SlickDeals委托OnePoll围绕着手机这个话题开展了问卷调查.本次调查用户数量接近2000名美国移动用户,其中一半为Android用户,另一半为iPhone用户.调查主题包括在科技产品上 ...

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

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

  8. 推荐算法--利用用户行为数据(02)

    文章目录 目录 1.什么是用户行为数据? 1.1用户行为分类 2.用户行为数据如何使用? 2.1 用户活跃度和物品流行度的分布 2.2 用户活跃度和物品流行度的关系 2.3 协同过滤算法 3.实验设计 ...

  9. python推荐_利用Python构建一个简单的推荐系统

    原标题:利用Python构建一个简单的推荐系统 摘要:快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫.在此之前读者需要对pandas和numpy等数据分析包有所了解. 什么 ...

最新文章

  1. Educational Codeforces Round 4 C. Replace To Make Regular Bracket Sequence 栈
  2. ubuntu 安装nginx,php,mysql。常见错误解决
  3. JAVA SE学习day_13 :Map 查找表
  4. mysql Tablespace exists解决
  5. 推荐系统-07-lambda架构
  6. Java JUC工具类--Future
  7. Exchange2007创建管理收件人
  8. JPA零碎要点---JTA全局事物理解
  9. C++和Java函数传递数组参数比较
  10. 首部高中AI基础教材出版发布:汤晓鸥主编,40所重点中学引入
  11. 安装更新Lenovo Solution Center更新失败!具体问题看内容!要是等官方技术人员解决,估计要等上好一段时间!...
  12. UML类图关系全面剖析
  13. 开源网管工具 汇总比较
  14. 基于Linux系统的网络聊天室实现
  15. RiceQuant和 JoinQuant合成月k线、周k线的极简公式
  16. 数据降维(PCA、因子分析法)
  17. V for vendetta
  18. leetcode 三数之和
  19. #1_《经典控制理论复习》摘录
  20. Python 中的 any(Python/any)

热门文章

  1. 根据身份证号中的日期判断某人是否已满18岁及是否已满60岁
  2. c语言表达式的运算顺序
  3. 自称我国首款石墨烯基锂电池研制成功
  4. 用Java实现求自然对数e的值
  5. IAR建立STM32F103ZET6工程
  6. 股票振幅榜 API数据接口
  7. 影音转霸2012 注册破解方法纪要
  8. 追忆计算机之父艾伦图灵:在一个时刻两次改变历史的人
  9. 小学生手写Python程序解魔方 这绝对是高手
  10. Android列表滑动定位,滚动到Android Leanback ListRow中的给定位置