此为 Master Machine Learning Algorithms 一书的译文记录。
欢迎阅读Master Machine Learning Algorithms。本书将从头开始教你10个强大的机器学习算法。
开发人员可通过阅读算法理论描述和应用实际案例来达到学习的最佳效果(理论+应用)。本书主要用来指导开发人员学习机器学习算法。本书结构包含有机器学习算法的程序性描述以及展示如何将数值运用到各个等式中和等式另一边输出怎样数值的按步教程。阅读完本书的算法描述和教程后,你将能够:
- 理解并解释先进机器学习算法的工作原理
- 用编程语言或工具实现算法原型
本书是对机器学习算法内部的一个导览。
读者
本书是为开发人员所编写的。它并不承担统计学、概率论或线性代数的背景知识介绍。如果你了解一些概率统计的知识,那将会有所帮助,因为我们将会讨论诸如平均值、标准差和高斯分布等概念。如果你已对这方面内容感到生疏或者不确定,不要担心,你会看到对应的公式和应用示例以便能够将它们结合在一起。
本书也不承担机器学习的背景知识介绍。如果你了解其中的相关信息,会有所帮助,但是本书的目标是从头开始学习机器学习算法。具体而言,我们关注的是,当我们构建模型以对新数据做出预测(称为预测建模)时所选用的机器学习类型。如果这对于你来说是新的内容,不要担心,我们很快就会介绍机器学习算法的详细内容。
最后,本书假定你并不知道如何编码或编码能力较弱。你可以按照表格中的示例进行操作。事实上,我们强烈建议你能按照表格中内容去学习。如果你是程序员,可以将示例用你最喜欢的编程语言进行编写,这可作为你学习过程的一部分。
算法描述
本书中对算法的描述和展示是经过精心编排的。每种算法将会根据这三种关键属性进行描述:
- 算法根据可存储在文件中的实际数字和结构而展示的表现形式
- 算法从训练数据中学习的过程
- 算法根据给定学习模型做出预测的过程
本书中会涉及到较少的数学。包含这些公式的原因是它们是获取目标想法的最佳方式。每个公式也会尽可能地用文字进行描述,并将提供一个应用示例来向你展示该如何运用它。
最后,也是最重要的,本书中介绍的每个算法都将包含一个按步教程。这样你就可以看出学习和预测过程是如何与真实数值一起运行的。每个教程都提供了充足的细节,能让你可根据表格或选择的编程语言进行操作。其中包括原始输入数据和包含精度值的每个公式的输出。
全书结构
本书分为四个部分:
- 机器学习算法的背景
- 线性机器学习算法
- 非线性机器学习算法
- 集成机器学习算法
算法背景
本部分将会展示机器学习算法的基础。它会教你所有的机器学习算法是如何连接的,并试图解决相同的底层问题。这部分会给你上下文,以便能理解任何机器学习算法。你会学习到:
- 机器学习应用中描述数据的术语
- 理解由所有机器学习算法解决的问题的框架
- 参数和非参数算法之间的重要区别
- 监督、无监督和半监督机器学习问题之间的对比
- 由偏差和方差引入的误差是这些关注点的权衡
- 应用机器学习方法解决过拟合数据问题
线性算法
这部分将会从简单线性算法开始,带你融入进机器学习算法。这些可能是简单的算法,但它们也是理解更强大技术的重要基础。你将会看到如下所示的线性算法:
- 梯度下降优化程序,可用作许多机器学习算法的核心
- 线性回归,书中使用两个教程来预测真实值,确保你能沉浸其中
- 逻辑回归,对两类问题进行分类
- 线性判别分析,用于两类以上问题的分类
非线性算法
这部分将介绍基于线性算法的更强大的非线性机器学习算法。这些技术可以减少对你问题的假设,能够学习各种各样的问题类型。但是,这种能力需谨慎使用,因为它们可以学习得太好,以致于过拟合你的训练数据。你将会学习到以下非线性算法:
- 分类和回归树是主要决策树算法
- 朴素贝叶斯使用概率来进行分类,我们通过两个教程向你展示该方法的有效使用方式
- K近邻,除了数据集以外不需要任何模型
- 矢量化,通过学习在尺寸size上压缩你的训练数据集来扩展K近邻
- 支持向量机,可能是最流行和最强大的现成算法之一
集成学习
集成学习是一种功能强大且更先进的机器学习算法类型。这种技术结合了多个模型的预测,以提供更为准确的预测。在本部分中,你将会看到两个最常用的集成学习方法:
- Bagging和Random Forests是最强大的算法之一
- Boosting集成和AdaBoost算法依次修正了较弱模型的预测
本书不是什么
本书不是机器学习的教科书。我们不会深入探讨事物为什么起作用的原理或公式的推导。本书旨在教学机器学习算法如何工作,而不是它们为什么工作。
本书不是机器学习编程书。我们不会为生产或操作使用而设计机器学习算法。本书中所有的样例仅用于演示目的。
如何使用本书
本书旨在从一端到另一端线性阅读。当然仅阅读本书是不够的。为了深入理解概念和学习机器学习算法,你需要完成书中的教程。如果你在本书的旁边再打开表格查看教程,你将会获得最大的收益。
通过对教程的学习,你将会了解到对每个算法描述的表示、学习和预测过程的背景信息。在那里,你可以将你的想法转化为自己的程序,以及在实践中应用这些算法。
建议每天完成一章节,建议晚上坐在电脑前学习,这样就能立即尝试所学到的东西。我有意重复了关键的公式和描述,这样你能够快速回忆起之前学的内容。
总结
本书是机器学习算法的入场券。接下来,你将构建一个基础来了解所有机器学习算法试图解决的基本问题。