首页 > 编程语言 >读论文-基于Python的协同过滤算法的研究与应用实现

读论文-基于Python的协同过滤算法的研究与应用实现

时间:2024-01-28 18:12:07浏览次数:32  
标签:协同 Python 推荐 电影 用户 算法 过滤

前言

今天读的论文为一篇名为《基于Python的协同过滤算法的研究与应用实现》的论文,文章是在2019年9月发表于《电脑知识与技术》的一篇期刊论文。

摘要

随着科学技术的快速发展和知识产权的日益重要,大多数用户会选择在播放平台上看电影。例如腾讯视频、爱奇艺等,用户迫切需要一个合理的电影推荐系统。本文利用Python和协同过滤算法,将个性化推荐技术与电影系统有机结合,给用户个性化的电影推荐。

基于协同过滤的推荐算法

介绍

协调过滤算法是目前最成功有效的个性化推荐算法,广泛应用与各领域中。协同过滤算法分析用户的兴趣,然后在用户群中寻找指定的用户的相似兴趣的用户,最后综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度进行预测。

协同过滤算法一般分三步实现:第一步,收集用户偏好,也就是获得用户对某些信息项的评价;第二步,找到相似的用户或物品,即分析用户之间的相似性并预测特定用户对某一信息的喜好。第三步,进行个性化电影推荐。

实现

收集用户偏好

收集用户的偏好信息是电影个性化推荐系统的推荐效果的重要影响因素,基于用户的行为和偏好发现规律来进行推荐。

寻找相似用户

利用网络爬虫获取的电影评分数据中选择5个用户对2部电影的评分来说明如何通过用户对电影的偏好寻找相似的用户。收集到的信息如下表:

image

相似度计算

常见的计算相似度的公式有:

  1. 欧几里得距离公式

image

  1. 皮尔逊系数

image

文章使用皮尔逊系数来研究相关度。下面是5个用户对5部电影的评分表:

image

实现

首先录入用户信息,然后计算皮尔逊相关系数,找出有对某些电影兴趣相同的用户,最后通过加权平均所有人的评价值向目标用户进行电影推荐。首先导入网络爬虫爬起到的数据。

image

录入用户数据

image

插入待推荐用户的数据

image

最后,加权平均所有人的评价值向目标用户进行电影推荐:

image

结尾

今天就到这了,明天见喽。

标签:协同,Python,推荐,电影,用户,算法,过滤
From: https://www.cnblogs.com/wephiles/p/17993074

相关文章

  • 补充:基于项目的协同过滤推荐算法(Item-Based Collaborative Filtering Recommendation
    前言继续上篇博客,继续读论文。想看上篇论文的同学可以点击这里相关工作Inthissectionwebrieflypresentsomeoftheresearchliteraturerelatedtocollaborativefiltering,recommendersystems,dataminingandpersonalization.在本节中,我们简要介绍了一些与协同......
  • Python 实现 zip 分卷解压
    在上传数据备份到云端的时候,由于数据文件过大,可能会遇到各种各样的问题:比如49G的大文件gitlfspush到99%突然失败,你说心态爆炸不爆炸?再比如某些网盘会限制单个文件上传大小限制在4G以内;因此我们可能会用7z之类的压缩软件对数据文件进行分卷压缩,得到多个分卷文件,例如......
  • 数据结构与算法:递归算法
    递归算法什么是递归?函数直接或间接调用自身的过程称为递归,相应的函数称为递归函数。使用递归算法,可以很容易地解决某些问题。此类问题的示例包括汉诺塔(TOH)、中序/先序/后序树遍历、图的DFS递归函数通过调用自身的副本并解决原始问题的较小子问题来解决特定问题。需要时可以生......
  • 生成一个满二叉数算法
    1、树结构类publicclassTreeNode<T>{Tval;TreeNode<T>parent;TreeNode<T>right;TreeNode<T>left;publicTreeNode(){}publicTreeNode(Tval){this.val=val;this.parent=nul......
  • python 国内各大源列表:
    附,国内各大源列表:名称地址阿里 https://mirrors.aliyun.com/pypi/simple豆瓣 http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple华中理工大学 http://pypi.hustunique.com/simple山东......
  • 一些在刷js算法时常用的方法(1)
    Array.fromArray.from()静态方法从可迭代或类数组对象创建一个新的浅拷贝的数组实例String、Array、TypedArray、Map、Set以及Intl.Segments(en-US)都是内置的可迭代对象console.log(Array.from('foo'));//输出:Array["f","","o","o"]可以将字符串拆成数组,同时将......
  • 【学习笔记】部分树上算法(概念篇)
    本文包括:轻重链剖分(done)线段树合并(done)tobeupd:长链剖分DSUontree(树上启发式合并)点分治边分治LCT有待更新本文非例题代码大多未经过编译,谨慎使用本文本来只有重剖长剖dsu,但是发现不会写,另外几个甚至更简单就带歪了.jpgpart1轻重链剖分树剖是一类算法的总......
  • 单源最短路径算法之bellman-ford
    单源最短路径算法之\(bellman-ford\)以边为研究对象单起点多终允许有负边权\(bellman-ford\)的工作原理假设\(n\)个点\(m\)条有向边的图,求\(s\)为起点的最短路条以\(s\)出发的最短路,最多包含\(n\)个点,\(n-1\)条边对于一条边\((x,y,w)\),\(y\)可能被\(x\)......
  • python第五节:集合set(2)
    集合删除remove方法如果找不到元素则报错(KeyError)。如:setVar.remove(element)setVar:为一个set类型的变量element:集合中要查找并删除的元素函数作用:在集合setVar中查找element元素,如果存在则删除;如果没找到,则报错。例子1:set1={'a','b'}set1.remove('a')#set1.remove('c......
  • python02-变量及输出
    目标变量的作用定义变量认识数据类型一.变量的作用举例体验:我们去图书馆读书,怎么样快速找到自己想要的书籍呢?是不是管理员提前将书放到固定位置,并把这个位置进行了编号,我们只需要在图书馆中按照这个编号查找指定的位置就能找到想要的书籍。这个编号其实就是把书籍存放的......