iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >推荐系统MostPopular算法的Python怎么实现
  • 666
分享到

推荐系统MostPopular算法的Python怎么实现

2023-07-02 17:07:16 666人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下推荐系统MostPopular算法的python怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

今天小编给大家分享一下推荐系统MostPopular算法python怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

推荐系统MostPopular算法的Python实现

MostPopular 算法的 是指对每个用户都选择出当前流行度最高的Top-K个物品进行推荐,在推荐的时候,需要去除用户原先就浏览过的项目

算法代码如下

# Most Popdef MostPopular(pop_dict, I, K):    '''        pop_dic:流行度字典,存储了每个item:pop_value的键值对。        I:用户可以选择的Item空间(需去除已经看过的item)        K:Top-K 值,推荐出K个item给用户    '''    pop_dict_sort = sorted(pop_dict.items(), key=lambda kv: (kv[1], kv[0]), reverse=True)    for each_item in pop_dict_sort:        if each_item[0] not in I:            pop_dict_sort.remove(each_item)    return [i[0] for i in pop_dict_sort[:K]]

在ML-1M数据集上的测试结果(100个用户)

Precision: 0.05399999999999998
Recall: 0.0659683173313864
HR: 0.08
NDCG: 0.2668352016595219
ARP: 25.750500000000002

推荐系统的几种常用算法总结

之前也做过一些关于推荐系统的项目,下面就来系统的总结一下。

一、什么是推荐系统?

引用百度百科的一段解释就是:“利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。”

在这个数据过载的时代,信息的消费者需要从海量的信息中找到自己所需要的信息,信息的生产者要让自己生产的信息在海量的信息中脱颖而出,这时推荐系统就应运而生了。对用户而言,推荐系统不需要用户提供明确的目标;对物品而言,推荐系统解决了2/8现象的问题(也叫长尾效应),让小众的物品可以展示到需要它们的用户面前。

二、推荐系统要解决的问题?

帮助用户找到想要的物品 如:书籍、电影等

可以降低信息过载

有利于提高站点的点击率/转化率

有利于对用户进行深入了解,为用户提供个性化服务

三、推荐系统的发展趋势?

推荐系统的研究大致可以分为三个阶段,第一阶段是基于传统的服务,第二阶段是基于目前的社交网络的服务,第三阶段是即将到来的物联网

这其中产生了很多基础和重要的算法,例如协同过滤(包括基于用户的和基于物品的)、基于内容的推荐算法、混合式的推荐算法、基于统计理论的推荐算法、基于社交网络信息(关注、被关注、信任、知名度、信誉度等)的过滤推荐算法、群体推荐算法、基于位置的推荐算法。

其中基于邻域的协同过滤推荐算法是推荐系统中最基础、最核心、最重要的算法,该算法不仅在学术界得到较为深入的研究,而且在业界也得到非常广泛的应用,基于邻域的算法主要分为两大类,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法,除此之外,基于内容的推荐算法应用也非常广泛等等,因此下文将对涉及推荐系统的常用算法进行详细介绍。

基于流行度的推荐算法

基于协同过滤的推荐算法(UserCF与ItemCF)

基于内容的推荐算法

基于模型的推荐算法

基于混合式的推荐算法

四、基于流行度的推荐算法

基于流行度的算法非常简单粗暴,类似于各大新闻、微博热榜等,根据PV、UV、日均PV或分享率等数据来按某种热度排序来推荐给用户。

注:独立访客(UV)、访问次数(VV)两个指标有什么区别?

① 访问次数(VV):记录1天内所有访客访问了该网站多少次,相同的访客有可能多次访问该网站,且访问的次数累加。

② 独立访客(UV):记录1天内所有访客访问了该网站多少次,虽然相同访客能多次访问网站,但只计算为1个独立访客。

③ PV访问量(Page View):即页面访问量,每打开一次页面或者刷新一次页面,PV值+1。

优点:该算法简单,适用于刚注册的新用户

缺点:无法针对用户提供个性化的推荐

改进:基于该算法可做一些优化,例如加入用户分群的流行度进行排序,通过把热榜上的体育内容优先推荐给体育迷,把政要热文推给热爱谈论政治的用户。

五、基于用户的协同过滤推荐算法

当目标用户需要推荐时,可以先通过兴趣、爱好或行为习惯找到与他相似的其他用户,然后把那些与目标用户相似的用户喜欢的并且目标用户没有浏览过的物品推荐给目标用户。

1、基于用户的CF原理如下:

① 分析各个用户对物品的评价,通过浏览记录、购买记录等得到用户的隐性评分;

② 根据用户对物品的隐性评分计算得到所有用户之间的相似度;

③ 选出与目标用户最相似的K个用户;

④ 将这K个用户隐性评分最高并且目标用户又没有浏览过的物品推荐给目标用户。

2、优点:

① 基于用户的协同过滤推荐算法是给目标用户推荐那些和他有共同兴趣的用户喜欢的物品,所以该算法推荐较为社会化,即推荐的物品是与用户兴趣一致的那个群体中的热门物品;

② 适于物品比用户多、物品时效性较强的情形,否则计算慢;

③ 能实现跨领域、惊喜度高的结果。

3、缺点:

① 在很多时候,很多用户两两之间的共同评分仅有几个,也即用户之间的重合度并不高,同时仅有的共同打了分的物品,往往是一些很常见的物品,如票房大片、生活必需品;

② 用户之间的距离可能变得很快,这种离线算法难以瞬间更新推荐结果;    

③ 推荐结果的个性化较弱、较宽泛。

4、改进:

① 两个用户对流行物品的有相似兴趣,丝毫不能说明他们有相似的兴趣,此时要增加惩罚力度;

② 如果两个用户同时喜欢了相同的物品,那么可以给这两个用户更高的相似度;

③ 在描述邻居用户的偏好时,给其最近喜欢的物品较高权重;

④ 把类似地域用户的行为作为推荐的主要依据。

六、基于物品的协同过滤推荐算法

当一个用户需要个性化推荐时,举个例子由于我之前购买过许嵩的《梦游计》这张专辑,所以会给我推荐《青年晚报》,因为很多其他用户都同时购买了许嵩的这两张专辑。

1、基于物品的CF原理如下:

① 分析各个用户对物品的浏览记录;

② 依据浏览记录分析得出所有物品之间的相似度;

③ 对于目标用户评价高的物品,找出与之相似度最高的K个物品;

④ 将这K个物品中目标用户没有浏览过的物品推荐给目标用户

2、优点:

① 基于物品的协同过滤推荐算法则是为目标用户推荐那些和他之前喜欢的物品类似的物品,所以基于物品的协同过滤推荐算法的推荐较为个性,因为推荐的物品一般都满足目标用户的独特兴趣。

② 物品之间的距离可能是根据成百上千万的用户的隐性评分计算得出,往往能在一段时间内保持稳定。因此,这种算法可以预先计算距离,其在线部分能更快地生产推荐列表。

③ 应用最广泛,尤其以电商行业为典型。

④ 适于用户多、物品少的情形,否则计算慢

⑤ 推荐精度高,更具个性化

⑥ 倾向于推荐同类商品

3、缺点:

① 不同领域的最热门物品之间经常具有较高的相似度。比如,基于本算法,我们可能会给喜欢听许嵩歌曲的同学推荐汪峰的歌曲,也就是推荐不同领域的畅销作品,这样的推荐结果可能并不是我们想要的。

② 在物品冷启动、数据稀疏时效果不佳

③ 推荐的多样性不足,形成信息闭环

4、改进:

① 如果是热门物品,很多人都喜欢,就会接近1,就会造成很多物品都和热门物品相似,此时要增加惩罚力度;

② 活跃用户对物品相似度的贡献小于不活跃的用户;

③ 同一个用户在间隔很短的时间内喜欢的两件商品之间,可以给予更高的相似度;

④ 在描述目标用户偏好时,给其最近喜欢的商品较高权重;

⑤ 同一个用户在同一个地域内喜欢的两件商品之间,可以给予更高的相似度。

七、基于内容的推荐算法

协同过滤算法仅仅通过了解用户与物品之间的关系进行推荐,而根本不会考虑到物品本身的属性,而基于内容的算法会考虑到物品本身的属性。

根据用户之前对物品的历史行为,如用户购买过什么物品、对什么物品收藏过、评分过等等,然后再根据计算与这些物品相似的物品,并把它们推荐给用户。例如某用户之前购买过许嵩的《寻宝游戏》,这可以说明该用户可能是一个嵩鼠,这时就可以给该用户推荐一些许嵩的其他专辑或著作。

1、基于内容的推荐算法的原理如下:

① 选取一些具有代表性的特征来表示每个物品

② 使用用户的历史行为数据分析物品的这些特征,从而学习出用户的喜好特征或兴趣,也即构建用户画像

③ 通过比较上一步得到的用户画像和待推荐物品的画像(由待推荐物品的特征构成),将具有相关性最大的前K个物品中目标用户没有浏览过的物品推荐给目标用户

2、优点:

① 是最直观的算法

② 常借助文本相似度计算

③ 很好地解决冷启动问题,并且也不会囿于热度的限制

3、缺点:

① 容易受限于对文本、图像、音视频的内容进行描述的详细程度

② 过度专业化(over-specialisation),导致一直推荐给用户内容密切关联的item,而失去了推荐内容的多样性。

③ 主题过于集中,惊喜度不足

八、基于模型的推荐算法

基于模型的推荐算法会涉及到一些机器学习的方法,如逻辑回归、朴素贝叶斯分类器等。基于模型的算法由于快速、准确,适用于实时性比较高的业务如新闻、广告等,而若是需要这种算法达到更好的效果,则需要人工干预反复的进行属性的组合和筛选,也就是常说的Feature Engineering。而由于新闻的时效性,系统也需要反复更新线上的数学模型,以适应变化。

九、基于混合式的推荐算法

现实应用中,其实很少有直接用某种算法来做推荐的系统。在一些大的网站如Netflix,就是融合了数十种算法的推荐系统。我们可以通过给不同算法的结果加权重来综合结果,或者是在不同的计算环节中运用不同的算法来混合,达到更贴合自己业务的目的。

十、推荐结果列表处理

当推荐算法计算得出推荐结果列表之后,我们往往还需要对结果进行处理。比如当推荐的内容里包含敏感词汇、涉及用户隐私的内容等等,就需要系统将其筛除;

若多次推荐后用户依然对某个物品毫无兴趣,就需要将这个物品降低权重,调整排序;

有时系统还要考虑话题多样性的问题,同样要在不同话题中筛选内容。

十一、推荐结果评估

当一个推荐算法设计完成后,一般需要用查准率(precision),查全率(recall),点击率(CTR)、转化率(CVR)、停留时间等指标进行评价。

  • 查准率(precision):推荐给用户且用户喜欢的物品在推荐列表中的比重

  • 查全率(recall):推荐给用户且用户喜欢的物品在用户列表中的比重

  • 点击率(CTR):实际点击了的物品/推荐列表中所有的物品

  • 转化率(CVR):购买了的物品/实际点击了的物品

以上就是“推荐系统MostPopular算法的Python怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: 推荐系统MostPopular算法的Python怎么实现

本文链接: https://www.lsjlt.com/news/343532.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 推荐系统MostPopular算法的Python怎么实现
    今天小编给大家分享一下推荐系统MostPopular算法的Python怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-07-02
  • 推荐系统MostPopular算法的Python实现方式
    目录推荐系统MostPopular算法的Python实现算法代码如下在ML-1M数据集上的测试结果(100个用户)推荐系统的几种常用算法总结一、什么是推荐系统?二、推荐系统要解决的问...
    99+
    2024-04-02
  • 如何实现推荐系统的python 库 Python-recsys
    这篇文章给大家介绍如何实现推荐系统的python 库 Python-recsys,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python-recsys是一个用来实现推荐系统的python库。安装依赖项python-r...
    99+
    2023-06-02
  • 基于Python+协同过滤算法的小说推荐系统设计与实现
    博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联...
    99+
    2023-10-23
    python 开发语言 协同过滤算法 小说推荐系统 django 原力计划
  • PHP中的推荐算法实现指南
    随着计算机技术的不断发展和数据量的快速增长,推荐系统在互联网应用中的作用日益重要。作为一种基于用户历史行为和兴趣的算法组合,推荐系统已经成为了电商、社交媒体等许多领域的关键技术之一。在推荐系统的实现中,算法选择是至关重要的。作为一种常见的服...
    99+
    2023-05-23
    PHP 推荐算法 实现指南
  • 如何在PHP中实现推荐算法
    推荐算法是一种基于用户偏好和历史行为的智能化算法,经常被用于电子商务、社交网络和其他基于用户个性化需求的团队应用中。在繁荣的网络应用中,推荐算法成为用户与内容和产品接触的主要方式。本文基于PHP编程语言介绍如何实现推荐算法。一、数据收集与处...
    99+
    2023-05-20
    PHP编程 实现 推荐算法
  • 如何在PHP中实现推荐系统
    随着互联网的发展,推荐系统在电商、社交媒体等领域大放异彩。推荐系统是一种自动化技术,能够根据用户的行为和偏好,对他们进行商品、服务或内容的推荐。PHP作为一种流行的Web编程语言,如何在PHP中实现推荐系统是一个值得关注的话题。本文将介绍如...
    99+
    2023-05-21
    推荐系统 PHP编程 实现技巧
  • 怎么使用Python构建电影推荐系统
    这篇文章主要讲解了“怎么使用Python构建电影推荐系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python构建电影推荐系统”吧!导入数据导入和合并数据集并创建 Pandas ...
    99+
    2023-07-06
  • Keras中如何实现推荐系统任务
    在Keras中实现推荐系统任务通常需要使用神经网络模型。常用的推荐系统模型包括基于用户-物品矩阵的矩阵分解模型(如MF、FM等)、基...
    99+
    2024-03-08
    Keras
  • python协同过滤算法实现电影推荐(附源码)
    数据集请点赞收藏关注后评论区留言并且私信博主要  本例中使用得是著名得电影数据集MovieLens-100数据集 MoviesLens数据集是实现和测试电影推荐最常用得数据集之一,包含943个用户为精选得1682部电影给出得100000个电...
    99+
    2023-09-06
    pandas 算法 python
  • JavaScript实现的七种排序算法总结(推荐!)
    目录前言冒泡排序 基础算法 第二种写法是在基础算法的基础上改良而来的:选择排序 基础算法二元选择排序-优化插入排序 交换法插入排序移动法希尔排序 堆排序 快速排序 归并排序 总结前言...
    99+
    2024-04-02
  • MySQL 实现点餐系统的菜品推荐功能
    MySQL 实现点餐系统的菜品推荐功能在餐饮行业中,为了提供更好的用户体验和增加销售额,很多餐厅都会在点餐系统中加入菜品推荐功能。本文将介绍如何使用MySQL实现点餐系统的菜品推荐功能,并提供具体的代码示例。一、数据库设计在MySQL中,我...
    99+
    2023-11-01
    MySQL 点餐系统 菜品推荐
  • 如何利用ChatGPT和Python实现智能推荐系统的构建
    如何利用ChatGPT和Python实现智能推荐系统的构建推荐系统是目前互联网应用中广泛使用的一种技术,它能根据用户的兴趣和行为数据,为用户推荐个性化的内容和产品。ChatGPT是一种基于人工智能的机器学习模型,专注于对话生成。结合Chat...
    99+
    2023-10-27
    ChatGPT Python 智能推荐系统
  • 如何在PaddlePaddle框架中实现推荐系统
    在PaddlePaddle框架中实现推荐系统可以通过以下步骤进行: 准备数据集:首先需要准备好推荐系统所需的数据集,包括用户行为...
    99+
    2024-03-08
    PaddlePaddle
  • 【推荐系统入门到项目实战】:关联规则之Apriori算法(含代码实现)
    【推荐系统】:关联规则 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍...
    99+
    2023-09-12
    1024程序员节 推荐算法 关联规则
  • 利用MongoDB实现实时推荐系统的经验分享
    随着互联网的发展,人们的生活越来越数字化,个性化需求也越来越强烈。在这个信息爆炸的时代,用户往往面对海量的信息无从选择,所以实时推荐系统的重要性愈发凸显出来。本文将分享利用MongoDB实现实时推荐系统的经验,希望能为开发者们提供一些启发和...
    99+
    2023-11-03
    MongoDB 经验分享 实时推荐系统
  • PHP 中基于 Elasticsearch 的推荐系统设计与实现
    随着互联网的发展,推荐系统成为了各个电子商务平台、新闻媒体以及社交网络的必备功能。推荐系统的目标是根据用户的个性化偏好,为其提供有针对性的推荐内容,以提升用户体验和平台的盈利能力。在本文中,我将介绍如何基于 Elasticsearch 构建...
    99+
    2023-10-21
    能够快速地存储
  • 如何用MySQL快速实现一个推荐算法
    本文小编为大家详细介绍“如何用MySQL快速实现一个推荐算法”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何用MySQL快速实现一个推荐算法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2023-01-31
    mysql
  • Redis在实时推荐系统中的应用
    Redis在实时推荐系统中的应用随着互联网的迅猛发展和用户需求的多元化,实时推荐系统在电商、社交媒体、新闻等领域中变得越来越重要。实时推荐系统不仅能提供个性化的推荐服务,还能实时地根据用户行为和兴趣变化进行推荐调整。为了实现这些功能,需求一...
    99+
    2023-11-07
    应用 redis 实时推荐
  • Tags实现内容推荐的方法
    小编给大家分享一下Tags实现内容推荐的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!原来为了简单方便,自己小网站上的文章页...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作