python协同过滤_协同过滤的python简易实现

article/2025/10/30 9:29:38

原标题:协同过滤的python简易实现

了解推荐算法的人对协同过滤都不陌生,协同过滤就寻找和被推荐客户品味相似的客户,找出利用这些相似客户的偏好特征为用户推荐产品。下面就通过一个简单的示例将协同过滤加以实现。

关注我们公众号的粉丝都知道,在前几期的文章里,我们给大家介绍过推荐算法中的关联规则算法在实际项目中应用和实现,本期我们打算给大家介绍推荐算法中的协同过滤算法。协同过滤算法,在我们进行网购的时候比较常见。比如,最近想买一本书,比如是机器学习类,在亚马逊网络书店上搜索“机器学习”,会出现很多机器学习相关的书目,我们在进行筛选喜欢的图书的时候,往往通过网页左下角的“CustomerWho Bought This Item Also Bought”指引我找到了我的潜在需求,这个功能就是协同过滤算法的一个应用场景。

相信大家在网上购物、阅读、浏览视频时都会有类似的体验,这即是协同过滤推荐算法在起作用。该算法的好处是能起到意想不到的推荐效果, 经常能推荐出来一些惊喜结果。

协同过滤算法简单的说先寻找和被推荐客户品味相似的客户,找出利用这些相似客户的偏好特征为用户推荐产品。协同过滤的基本流程如下图所示:

3c558a269575241c813da83fa78e1bdb.png

下面就通过一个简单的示例将协同过滤加以实现。这个例子是通过生成10个用户的喜欢的电影名称的清单,然后在这10个用户中,找出和被推荐客户相似的客群,计算该相似客群的电影偏好,进而为被推荐用户推荐电影。

STEP 1产生建模数据

首先,随机产生了10个用户喜欢的每个用户喜欢的电影名称的集合。比如customer0 喜欢film9等。将字典打印出的结果如下:

b83c8709936c89bf3e011772326bb848.png

然后,将上面随机生成的用户的喜爱电影列表通过图表的形式进行展现,第一列为用户名称,第二列为每个客户喜欢电影的列表:

75d937f54078392ec87cad4f895817ad.png

STEP 2设定被推荐用户以及喜欢的电影

接着,设定被推荐用户以及喜欢的电影,这里假设customer喜欢film1、film2、film3 。

STEP 3找出和被推荐用户的相似的用户

通过集合交集的方式寻找10个用户中和被推荐客户最相似的用户,也就是和customer一样同样喜欢film1、film2、film3的用户,然后存放在similar_user_list用户的列表中。结果如下,找出了customer1、customer2、 customer3、customer5这4个用户和customer最为相似。

321d372d15e1a6ecebfe4b0eb3b94d41.png

STEP 4

按照这些相似用户喜好的电影清单为被推荐用户推荐电影,通过Counter统计推荐电影的频数,最后将推荐的电影存放在recommend列表中,并按照喜好电影出现的频次进行降序排列推荐。因此推荐的电影依次为film4、film6、film5、film8、film7、film9。

8ec3a5ba0306e96a29e3d46739322f3e.png

将上面的电影推荐结果通过数据表表格的形式进行展现,为customer推荐的film4的权重为4、film6的权重为4、film5的权重为3、film8的权重为3、film7的权重为1、film9的权重为1 。

0aebfca9bde721b9ad58260f988026ed.png

以上几个步骤,实现了协同过滤的基本算法,但是还有一些可以进行改进的空间,比如增加用户对喜好电影的打分,这样可以更加准确的寻找相似用户以及给相似用户推荐电影,所以有兴趣的小伙伴可以继续改进和探索。

团队介绍:我们是毕马威旗下的专业数据挖掘团队,微信公众号(kpmgbigdata)每周末晚上推送一篇原创数据科学文章。我们的作品都由项目经验丰富的博士或资深顾问精心准备,分享结合实际业务的理论应用和心得体会。欢迎大家关注我们的微信公众号,关注原创数据挖掘精品文章;您也可以在公众号中直接发送想说的话,与我们联系交流。返回搜狐,查看更多

责任编辑:


http://chatgpt.dhexx.cn/article/8iMhmeoT.shtml

相关文章

python实现 基于邻域的算法之协同过滤(电影推荐实战)

1 介绍 1.1 用户行为数据 用户行为数据通常把包括:网页浏览、购买点击、评分和评论等。 用户行为在个性化推荐系统中一般分为两种: 显性反馈行为(explicit feedback) 包括:用户明确表示明确对物品喜好的行为&#…

协同过滤1

协同过滤 协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似&a…

推荐算法之协同过滤

一、协同过滤算法简介 所谓协同过滤算法,其基本思想就是根据用户之前的喜好及其他兴趣相近的用户的选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向, 并预测用户可能喜好的产品进行推荐)。 目前应用广泛的…

传统推荐模型——协同过滤

文章目录 UserCF:基于用户的协同过滤什么是CF用户相似度计算最终结果的排序 ItemCF:基于物品的协同过滤UserCF和ItemCF的适用场景CF存在的几个缺点代码实践数据集Python代码 协同过滤,Collaborative Filtering,CF,可以…

协同过滤

协同过滤 什么是协同过滤 协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系 统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行 推荐不同,协同过滤分析用户兴趣,在用户群中找…

协同过滤(Collaborative Filtering)

协同过滤,顾名思义就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。 协同过滤是推荐系统的重要模型之一,推荐系统是用来向用户推荐物品的。协同过滤分为两种: 1.基于用…

数字签名的简单理解

数字签名的简单化理解TOC 数字签名的简单化理解! 对于数字签名,网上有很多大神解释的很详细了,我在这里解释的方法更加通俗易懂,更适用于入门级理解,已经尽可能的浅显,希望可以对大家有用! 评…

浅谈程序的数字签名

理论基础 数字签名它是基于非对称密钥加密技术与数字摘要算法技术的应用,它是一个包含电子文件信息以及发送者身份,并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。 一段数字签名数字串,它包含电子文件经过Hash编码后产生的数字…

数字签名及应用

内容介绍 常用加密方式数字签名颁发数字证书机构CA 常用加密方式 对称加密 对称加密也称为密钥加密或单向加密,就是使用同一套密钥来进行加密和解密。 常用算法:DES、3DES、AES 优点:算法公开、简单,加密解密容易,加密…

数字签名的过程详解

数字签名的过程详解 1. 数字证书的概念2. 数字签名的过程3. 加密的过程4. 数字签名两大特性5. 用到的部分名词解释 1. 数字证书的概念 数字证书又叫“数字身份证”、“网络身份证”,是由证书认证中心CA发放并经认证中心数字签名,包含公开密钥拥有者以及…

数字签名是什么?

今天,我读到一篇好文章。 它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。 我对这些问题的理解,一直是模模糊糊…

数字签名技术及加密算法

最近由于需要使用数字签名,于是了解一下各种算法的利弊及实现 数字签名流程图: ---------BASE64----------- 常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。 BASE加密后产生的字节…

数字签名系列一:签名简介与RSA签名算法

数字签名系列一 写在前面数字签名作用数字签名发展史带属性的数字签名RSA数字签名方案 写在前面 学了一年的数字签名方案,一直都在一个点进行专研,虽然还是有所收获,总感觉还差点感觉,上了一年研究生,还没有对数字签名…

密码学---数字签名和认证协议---数字签名标准

数字签名标准 DSS的基本方式RSA签名过程DSS签名过程 数字签名算法DSA全局公钥用户私钥x用户公钥y用户为待签消息选取的秘密数k签名过程验证过程 数字签名标准(Digital Signature Standard,DSS)是美国公布的联邦信息处理标准,采用SHA和一种新的签名技术的…

数字签名与签名验证过程

1.1 生成数字签名 1 利用RSA算法生成公钥、私钥。私钥由密钥持有者自主保存,公钥可对外发布。 2 准备好待签名的文档。 3 利用哈希算法(HASH),生成待签名文档的摘要。(文档摘要) 4 利用签名者的私钥&am…

什么是数字签名?其安全性从何而来?

一、数字签名简介 数字签名是基于公钥密码体制(非对称密钥密码体制)的。 1.1.基本特征 数字签名必须保证以下三点: 报文鉴别——接收者能够核实发送者对报文的签名;报文的完整性——接收者不能伪造对报文的签名或更改报文内容。…

数字签名的工作原理

数字签名是公钥基础结构的基础部分。当我们说PKI时,一般想到的是数字证书,证书颁发机构(CA),银行使用的Key,以及SSL通信等等。 数字证书,一般都是成对存在的,包含证书的公钥,和证书…

网络安全之数据加密和数字签名技术

一、计算机网络面临的安全性威胁和解决办法 1、计算机网络上的通信面临以下两大类威胁:被动攻击和主动攻击,如下图所示: 2、解决办法,由上图可知: 对于主动攻击,可以采取适当措施加以检测。 对于被动攻击…

一文了解数字签名、数字证书、自签证书

参考 关于自签SSL证书的一些小知识汇总 对于ssl中的pem文件和key 文件的理解 openssl 生成证书 ca.pem client.pem server.pem SSL:证书文件 数字证书原理 数字签名是什么? 数字签名和数字证书的原理解读(图文) 数字签名和数字证书有哪些区别与联…

数字签名算法实现

一、实验目的   掌握利用Hash算法对要传送信息提取消息摘要的方法,理解数字签名的作用及数字签名算法的工作原理,了解多种非对称加密算法都可以用来设计数字签名算法。综合运用前面实验掌握的知识和技术,利用C语言或Java语言设计并实现数字…