集体智慧编程读书笔记——第二章 提供推荐

1. 概念:

协作性过滤算法是对一大群人进行搜索,并从中找出与我们品味相近的一小群人。算反对这些人所偏爱的其他内容进行考察,并将它们组合起来构造出一个经过排名的推荐列表。

2. 表示方法:

书中的例子用嵌套字典表示用户的喜好数据。{"person":{"item1":score, "item2":score}}。PS:形式化是很重的步骤,机器学习最难的步骤之一。

3. 用户相识度计算

欧几里得距离和皮尔逊相关度。

欧几里得距离:被评价的物体为坐标轴,将用户绘制到坐标轴上,用欧几里得公式计算用户的距离。

皮尔逊相关度:适用于数据不是很规范的时候,PS:实际应用中不都是数据不规范吗,所以更实用。将被比较的用户作为坐标轴,将被评价的物体根据用户评分绘制在坐标轴上,找一条离所有物体所在点最近的直线,称为最佳拟合线。如果用户对物体评价都相同,那这条直线将是对角线,并与所有点相交。

4. 计算步骤

a. 收集用户偏好,将用户偏好用一种数据结构存储,如果是大规模数据最好存入数据库中;

b. 用相关算法寻找相近用户;

c. 通过相近用户的喜好情况预测被推荐用户的喜好。

待续。。。。。。

你可能感兴趣的:(算法)