如果你手里(或者你的电子阅读器里)有这本书,可以说,这是一个幸运的巧合。毕竟,每年有几百万册图书印刷出来,供数百万读者阅读,而你恰好选择了这一本。可以说,正是机器学习算法引领你来阅读这本书(或者说是把这本书引领到你面前)。而我们作为本书的作者,很高兴看到你愿意了解更多的“怎么做”和“为什么”。
本书大部分内容都将涉及“怎么做”。例如,怎么处理数据才能让机器学习算法最大限度地利用它们?怎么选择正确的算法来解决手头的问题?
我们偶尔也会涉及“为什么”。例如,为什么正确评估很重要?为什么在特定情形下一个算法比另一个算法的效果更好?
我们知道,要成为该领域的专家还有很多知识要学。毕竟,本书只介绍了一些“怎么做”和极小一部分“为什么”。但在最后,我们希望这些内容可以帮你“启航”,然后快速前行。
本书内容
第1章通过一个非常简单的例子介绍机器学习的基本概念。尽管很简单,但也可能会有过拟合的风险,这对我们提出了挑战。
第2章讲解了使用真实数据解决分类问题的方法,在这里我们对计算机进行训练,使它能够区分不同类型的花朵。
第3章讲解了词袋方法的威力,我们可以在没有真正理解帖子内容的情况下,用它来寻找相似的帖子。
第4章让我们超越将每个帖子分配给单个簇的方式。由于真实的文本可以处理多个主题,我们可以看到如何把帖子分配到几个主题上。
第5章讲解了如何用逻辑回归判定用户的答案是好还是坏。在这个情景的背后,我们将学会用偏差-方差的折中调试机器学习模型。
第6章介绍了朴素贝叶斯的工作原理,以及如何用它对推文进行分类,来判断推文中的情感是正面的还是负面的。
第7章讨论了一个处理数据的经典课题,但它在今天仍然有意义。我们用它构建了一个推荐系统,这个系统根据用户所输入的喜欢和不喜欢的信息,为用户推荐新的商品。
第8章同时使用多种方法改进推荐效果。我们还可以看到如何只根据购物信息构建推荐系统,而不需要用户的评分数据(用户并不总会提供这一信息)。
第9章举例说明,如果有人把我们收集而成的庞大音乐库弄乱了,那么为歌曲建立次序的唯一希望就是让机器来对歌曲分类。你会发现,有时信任别人的专长比我们自己构建特征更好。
第10章讲解了如何在处理图像这个特定情景下应用分类方法。这个领域又叫做模式识别。
第11章告诉我们还有其他什么方法可以帮我们精简数据,使机器学习算法能够处理它们。
第12章讲解了不断膨胀的数据规模,以及这为何会为数据分析造成难题。在本章中,我们利用多核或计算集群,探索了一些更大规模数据的处理方法。另外,我们还介绍了云计算(将亚马逊的Web服务当做云计算提供商)。
附录A罗列了一系列机器学习的优质资源。
阅读需知
本书假定读者了解Python,并且知道如何利用easy_install
或pip
安装库文件。我们并不依赖于任何高等数学知识,如微积分或矩阵代数。
总体而言,本书将使用以下版本的软件,不过如果你使用任何新近版本,也没有问题。
。 Python 2.7
。NumPy 1.6.2
。SciPy 0.11
。Scikit-learn 0.13
读者对象
本书适合想通过开源库来学习机器学习的Python程序员阅读参考。我们会通过示例概述机器学习的基本模式。
本书也适用于想用Python构建机器学习系统的初学者。Python是一个能够快速构建原型系统的灵活语言,它背后的算法都是由优化过的C或C++编写而成。因此,它的代码运行快捷,并且十分稳健,完全可以用在实际产品中。