利用Python构建一个简单的推荐系统

本文介绍了如何利用Python构建一个简单的推荐系统,重点讲解了基于项目的协同过滤方法。通过分析MovieLens数据集,计算电影之间的相关性,为用户推荐相似的电影。推荐系统主要分为基于内容和协同过滤两类,文中以项目相似度为例,展示了从数据预处理到计算电影相关性的完整过程。
摘要由CSDN通过智能技术生成

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


什么是推荐系统?


推荐系统的目的是通过发现数据集中的模式,为用户提供与之最为相关的信息。当你访问Netflix的时候,它也会为你推荐电影。音乐软件如Spotify及Deezer也使用推荐系统进行音乐推荐。


下图说明了推荐系统是如何在电子商务网站的上下文中工作的。


640?wx_fmt=png


两名用户都在某电商网站购买了A、B两种产品。当他们产生购买这个动作的时候,两名用户之间的相似度便被计算了出来。其中一名用户除了购买了产品A和B,还购买了C产品,此时推荐系统会根据两名用户之间的相似度会为另一名用户推荐项目C。


推荐系统的主要分类


目前,主流的推荐系统包括基于内容的推荐以及协同过滤推荐。协同过滤简单来说就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。


举个简单的例子,如果要向个用户推荐一部电影,那么一定是基于他/她的朋友对这部电影的喜爱。基于协同过滤的推荐又可以分为两类:启发式推荐算法(Memory-based algorithms)及基于模型的推荐算法(Model-based algorithms)。启发式推荐算法易于实现,并且推荐结果的可解释性强。启发式推荐算法又可以分为两类:


  • 基于用户的协同过滤(User-based collaborative filtering):主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分,就可以找到评分最高的若干个物品推荐给用户。举个例子,Derrick和Dennis拥有相似的电影喜好,当新电影上映后,Derick对其表示喜欢,那么就能将这部电影推荐给Dennis。


  • 基于项目的协同过滤(Item-based collaborative filtering):主要考虑的是物品和物品之间的相似度,只有找到了目标用户对某些物品的评分,那么就可以对相似度高的类似物品进行预测,将评分最高的若干个相似物品推荐给用户。举个例子,如果用户A、B、C给书籍X,Y的评分都是5分,当用户D想要买Y书籍的时候,系统会为他推荐X书籍,因为基于用户A、B、C的评分,系统会认为喜欢Y书籍的人在很大程度上会喜欢X书籍。


基于模型的推荐算法利用矩阵分解,有效的缓解了数据稀疏性的问题。矩阵分解是一种降低维度的方法,对特征进行提取,提高推荐准确度。基于模型的方法包括[决策树]()、基于规则的模型、贝叶斯方法和潜在因素模型。


基于内容的推荐系统会使用到元数据,例如流派、制作人、演员、音乐家等来推荐电影或音乐。如果有人看过并喜欢范·迪塞尔主演的《速度与激情》,那么系统很有可能将他主演的另一部电影《无限战争》推荐给这些用户。同样,你也可以从某些艺术家那里得到音乐推荐。基于内容的推荐的思想是:如果你喜欢某样东西,你很可能会喜欢与之相似的东西。


  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值