Programming Collective Intelligence Notes-Ch.2 Making Recommendations

许多购物网站都有相关商品推荐的功能,本章讲述的主要就是如何根据群体的偏好,商品的相似来为人们提供推荐。

1.Collecting Preferences as a dic

我们创建一个嵌套的字典来表达人们的偏好。字典在Python中是一种由名值对构成的无序的集合。

每个人对几部不全相同的电影评分

2.Finding Similar Users by Euclidean Distance Score and Pearson Correlation Score

要怎么度量两人品味上的相似程度呢?书中给了两种评价体系:欧几里德距离与皮尔逊相关度。

欧几里德距离:对两人共有评价对象的评分,求评分之差的平方和开根号+1再求倒数。


&Ranking the Critics


3.Recommending Items(totals/simSums)


4.Matching and Recommending Products

但通常来说,我们更希望在用户浏览一个商品时推荐相近的商品。在这里我们将字典中的人与电影对调。即可把人的相关度转为电影的相关度,根据人推荐电影转为根据电影推荐人,使商家找到一些潜在的客户。

5.Building athe Dataset & Ranking

这是一个基于http://del.icio.us/的链接推荐系统,可以针对一个tag给出相关的内容。

网页似乎过期了,API读不到数据

6.Item-Based Filtering-Building the Item Comparison Dataset

之前的技术被称为“基于用户的协作型过滤”,而在用户数量极为庞大时,这种需要将一位用户与其余所有用户比对的方法就显得有些不切实际。这时另一个可供选择的方法是“基于物品的协作型过滤”。物品间的比较不会像用户间的比较那么频繁变化,因此这种计算可以预先执行,并在载荷不大时再进行更新。这种方法的总体思路与之前接近:先计算物品间的相似程度,再构造一个针对物品推荐的加权列表(小标题7.)。

7.Getting Recommendations based Item Comparison


8.Using the MovieLens Dataset

MovieLens是明尼苏达州立大学开发的一个真实电影评价数据集,据此数据集练习基于用户与物品的推荐。可以感到基于用户推荐所花费的时间较长,而在构造物品相似度字典完成后,基于物品的推荐相应非常迅速。

#有错误,ValueError: need more than 1 value to unpack

百度一下找到了http://blog.csdn.net/yanhuabian/article/details/52734027

修改为:

输出正常!!

改了两个地方,但第一处没有明白:

第二处错误那里,由于读到的文件第一行为英文的title,无法转为float,故使用了itertools的islice函数跳过了第一行。

你可能感兴趣的:(Programming Collective Intelligence Notes-Ch.2 Making Recommendations)