《Programming Collective Intelligence》读书笔记 (1)-- 梗概
《Programming Collective Intelligence》(中文名为《集体智慧编程》),是一本关于数据挖掘的书籍,每一章都会通过一个实际的例子来讲述某个机器学习算法,同时会涉及到数据的采集和处理等,是一本实践性很强的书籍。
本文是关于本书的第一章 Introduction to Collective Intelligence , 主要介绍了 collective intelligence 以及 machine learning 的一些概念。
什么是 collective intelligence ?
根据单词直译过来就是 “集体智慧”, 引用原文的解释如下
Collecting answers from a large group of people lets you draw statistical conclusions about the group that no individual member would have known by themselves. Building new conclusions from independent contributors is really what collective intelligence is all about.
可以简单认为就是从一个群体中获取每个个体的信息,经过算法处理后得出能够描述这个群体的一些结论。常见的比如说问卷调查可以认为是一种集体智慧,超市从顾客的购物清单得出顾客的喜好进而调整货物的摆放也可以认为是一种集体智慧。
什么是 machine learning?
机器学习,顾名思义,就是让机器具有学习的能力。具体的做法就是先用一些历史数据来训练一个模型,再利用模型去预测新的数据或趋势。训练模型的方法就是机器学习算法,根据实际的应用场景也可以分为多种,如直观的决策树算法、较为抽象的神经网络等。
机器学习也有其的局限性,主要体现在两个方面:
第一个方面是机器学习只能凭借其 “见过的数据”(也就是用来训练这个模型的数据)来进行预测归纳,这导致了遇到了新的情况可能出现误判的情况。因此在机器学习中用来训练模型的数据集对模型的效果有很大影响。
第二个方面是大部分机器学习存在笼统归纳(overgeneralize)的问题,例如你收到朋友的一份邮件,里面很可能出现 “购买” 的字眼,而如果垃圾邮件过滤算法认为出现这个字眼即为垃圾邮件,那么便会把这封邮件归为垃圾邮件过滤掉。但是这种情况也存在解决方法,就是在拉结邮件过滤系统中将这位朋友的邮件均标记为合法邮件。这也说明了只要给机器学习算法更详细的信息进行学习,机器学习算法便能够变得更加精准。