机器学习是关于基于数据的学习、推理和行动。这是通过构建计算机程序来完成的,这些程序可以处理数据,提取有用的信息,对未知属性做出预测,并建议采取的行动或做出的决定。将数据分析变成机器学习的原因是,这个过程是自动化的,计算机程序是从数据中学习的。这意味着使用通用计算机程序,这些程序根据观察到的所谓训练数据自动调整程序的设置,以适应特定的应用程序环境。因此可以说,机器学习是一种通过实例编程的方式。机器学习的美妙之处在于,数据所代表的内容是非常随意的,我们可以设计出适用于不同领域的广泛实际应用的通用方法。我们通过下面的一系列例子来说明这一点。上述“通用计算机程序”是指数据的数学模型。也就是说,当我们开发和描述不同的机器学习方法时,我们使用的是数学语言。数学模型描述了与观测数据对应的相关数量或变量与感兴趣的属性(如预测、动作等)之间的关系。因此,模型是数据的紧凑表示,以精确的数学形式捕捉我们正在研究的现象的关键属性。使用哪个模型通常由机器学习工程师在查看可用数据时产生的见解和从业者对问题的总体理解来指导。在实践中实现该方法时,将该数学模型转换为可在计算机上执行的代码。然而,要理解计算机程序的实际作用,了解其基础数学也很重要。
这本书的目的是介绍监督机器学习,而不需要在该领域的任何经验。我们既关注基础的数学,也关注实践方面。本书是教科书,不是参考书,也不是编程手册。因此,它只包含一个仔细(但全面)的监督机器学习方法的选择,而没有编程代码。现在有许多精彩和证据确凿的代码包可用,我们深信,在很好地理解数学和内部运行的方法。在这本书中,我们从统计学的角度来讨论方法的统计特性。因此,它需要一些统计和概率论的知识,以及微积分和线性代数。我们希望,从头到尾阅读这本书将给读者一个良好的起点,作为一个机器学习工程师工作和/或继续在该学科的进一步研究。下图说明了章节之间的主要依赖关系。特别是在第二、三、四章中讨论了最基本的主题,我们建议读者先阅读这些章节,然后再阅读后面包含更高级的主题的章节(第5-9章)。第10章超越了机器学习的监督设置,第11章关注于设计一个成功的机器学习解决方案的一些更实际的方面,比前几章的技术性更少。最后,第十二章(由David Sumpter撰写)讨论了现代机器学习的某些伦理方面。