Programming Collective Intelligence

Table of Contents

1 Introduction to Collection Intelligence

1.1 What Is Collective Intelligence?

通常是指:为了创造新的想法,而将一群人的行为、偏好或思想结合在一起。

1.2 What Is Machine Learning?

机器学习是人工智能(AI,Artificial Intelligence)领域中与算法相关的一个子域,它允许计算机不断地进行学习。在大多数情况下,这相当于将一组数据传递给算法,并由算法推断出与这些数据的属性相关的信息。 借助这些信息,算法就能预测出未来有可能会出现的其他数据。

1.3 Limits of Machine Learning

1.4 Real-Life Examples

1.5 Other Uses for Learning Algorithms

1.5.1 生物工艺学

1.5.2 金融欺诈侦测

1.5.3 机器视觉

1.5.4 产品市场化

1.5.5 供应链优化

1.5.6 股票市场分析

1.5.7 国家安全

2 Making Recommendations

2.1 Collaborative Filtering (协作型过滤)

2.2 Collecting Preferences (搜集偏好)

2.3 Finding Similar Users (寻找相近的用户)

2.4 Euclidean Distance Score (欧几里德距离评价)

计算每一轴向上的差值,求平方后再相加,最后对总和求平方根。

from math import sqrt

# Returns a distance-based similarity score for person1 and person2
def sim_distance(prefs,person1,person2):
    # Get the list of shared_items
    si={}
    for item in prefs[person1]:
	if item in prefs[person2]: si[item]=1

    # if they have no ratings in common, return 0
    if len(si)==0: return 0

    # Add up the squares of all the differences
    sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)
			for item in prefs[person1] if item in prefs[person2]])

    return 1/(1+sqrt(sum_of_squares))

2.5 Pearson Correlation Score (皮尔逊相关度评价)

2.6 Which Similarity Metric Should You Use? (应该选用哪一种相似性度量方法)

2.7 Ranking the Critics (为评论者打分)

2.8 Recommending Items (推荐物品)

2.9 Matching Products (匹配商品)

2.10 Building a del.icio.us Link Recommender (构建一个基于 del.icio.us 的链接推荐系统)

2.10.1 Building the Dataset (构造数据集)

2.10.2 Recommending Neighbors and Links (推荐近邻与链接)

2.10.3 Item-Based Filtering (基于物品的过滤)

2.10.4 Building the Comparison Dataset (构造物品比较数据集)

2.10.5 Getting Recommendations (获得推荐)

2.11 Using the MovieLens Dataset (使用 MovieLens 数据集)

2.12 User-Based or Item-Based Filtering?(基于用户进行过滤还是基于物品进行过滤)