初识推荐系统

本文摘录了大量 机器学习算法原理与编程实践_郑捷著_电子工业出版社 的原文。
源码:机器学习算法原理与编程实践

wiki

推荐系统是一种信息过滤系统,用于预测用户对物品的「评分」或「偏好」。

精彩推荐:

存在问题(背景)

  • 关键词的信息量不足,基于关键词的检索在很多情况下不能精准和深刻地反映用户的潜在需求;
  • 通用的搜索引擎只有而且必须对用户提供尽量丰富而无差别的信息,这样才能应对不同种类的需求,以及需求的变换。

因此,如何平衡搜索的广度与深度(精准程度)是推荐系统所要解决的主要问题。

推荐系统着眼于需求二字:

  • 需求的定位;
  • 需求的个性化;
  • 需求的模糊性衍生。

推荐系统的应用

  • 把包销售:经常一起购买的产品;
  • 协同过滤:购买了此产品的顾客同时也购买的产品;(除了促销之外,也可以帮助用户定位购买需求)
  • 用户的商品评论列表。

推荐系统通过研究用户的兴趣偏好,由智能算法进行个性化的计算,发现用户的潜在兴趣点,从而引导用户发现需求。

推荐系统的架构

捕获.PNG-233.8kB
捕获1.PNG-512.6kB

前两种方法较为简单,应用也不广泛。

协同过滤(Collaborative Filtering,CF)

推荐模型:

  • 基于用户的推荐技术:找到具有相似品味的人所喜欢的物品——User CF;
  • 基于物品的推荐技术:从一个人喜欢的物品中找出相似的物品——Item CF。

数据预处理

预处理策略:

  • 减噪
  • 归一化
  • 聚类(缩减计算量)

使用 Scikit-Learn 的 KMeans 聚类

KMeans 的基本原理

给定要划分的数目 \(k\)

  • 首先创建一个初始划分,随机选择 \(k\) 个对象,每个对象初始地代表了一个聚类中心。对于其他对象,根据其与各个聚类中心的距离,将它们赋给最近的簇。
  • 然后采用一种迭代的重定位技术,尝试通过对象在划分的簇之间移动来改进划分,直到聚类中心不发生变化为止。
    • 重定位技术:就是当有新的对象加入到簇中或已有对象离开簇时,重新计算聚类的平均值(作为聚类中心),然后对对象进行重新分配。

猜你喜欢

转载自www.cnblogs.com/q735613050/p/9129836.html