《集体智慧编程》读书笔记

本书源代码下载地址

第1章 集体智慧导言

  • 集体智慧(collective intelligence)是指为了创造新的想法,而将一群人的行为,偏好或思想组合在一起.最早的应用如调查问卷或普查.在互联网中的典型应用有WikipediaGoogle.

第2章 提供推荐

  • 协作型过滤(collaborative filtering):通常的做法是对一大群人进行搜索,并从中找出与我们品味相近的一小群人.算法会对这些人所偏爱的其他内容进行考查,并将它们组合起来构造出一个经过排名的推荐列表.
  • 基于用户的协作型过滤:
  1. 搜集偏好:用一种方法表达不同人及其偏好.python可以用嵌套字典,对于规模较大的数据建议使用数据库.
  2. 寻找相近用户:计算人们在品味方面的相似度评价值.常用的有欧几里得距离(以被评价的物品为坐标轴,评价分数为坐标,每个点代表一个人.计算人们的距离远近.为了使偏好越相似的情况给出越大的值,可以将距离加1后取倒数)和皮尔逊相关度(以评价人为坐标轴,评价分数为坐标,每个点代表一件物品,使用一条直线来拟合这些点,根据拟合程度判断相似度.是协方差和标准差的商.好处是修正了"夸大分值"的情况).除此之外还有Jaccard系数曼哈顿距离.
  3. 推荐物品:根据相似度评选出与自己相似度最高的n位用户,将他们的相似度作为权重,乘以他们对不同商品的评分后除以n位用户的相似度之和,就可以求得商品的加权评分.
  4. 匹配商品:我们还可以了解哪些商品是彼此相近的,只要将搜集偏好中的人与物品对换即可复用上述方法.
  • 基于物品的协作型过滤:
  1. 在拥有大量数据集的情况下效果较好,而且不用在每次推荐时都计算一遍.总体思路是为每件物品预先计算好最为相近的其他物品.
  2. 构造物品比较数据集:首先将反映评价值的数据倒置处理,得到物品及其用户评价的列表,然后用上述方法得到相似度评价值并建立一个包含物品及其相近物品的字典.
  3. 获得推荐:对于每一件我们未评分的商品,都可以用已评分的商品和它的相近程度作为权重,乘上该已评分商品的评分来得到未评分商品的加权评分.将加权评分相加后除以总相似度即可得到未评分商品的评分.
  • 对于稀疏数据集大数据集,基于物品的过滤方法要优于基于用户的过滤方法,但它有维护物品相似度表的额外开销.而基于用户的过滤方法易于实现,而且无需额外步骤,因此更适用于小的变化非常频繁的数据集.

第3章 发现群组

猜你喜欢

转载自www.cnblogs.com/limitlessun/p/9275421.html