前言 以云计算、大数据、人工智能为引领的新一轮技术进步正在融入各行各业,在这样一个转型阶段,人工智能备受关注。人工智能取得革命性进步背后的推手,其实是机器学习(Machine Learning)。由机器学习驱动的人工智能领域在过去十多年中经历了一些惊人的变化,它从一个纯粹的学术研究领域开始,到现在已经看到广泛的行业正在采用机器学习技术。跨越多个领域的应用正在蓬勃发展,包括推荐系统、自动驾驶技术、图像、语音、文本处理等技术正在多个领域广泛应用,并取得了巨大的商业价值。机器学习是人工智能的组成部分,是人工智能的核心。 由于多个领域的广泛应用,催生了巨大的人才需求,为此,近年来,各高校纷纷开设智能科学与技术专业、人工智能专业、数据科学与大数据专业。传统的计算机科学与技术专业、软件工程专业也开设了人工智能方向,而机器学习是其中重要的核心课程,学习和掌握机器学习技术具有巨大的社会需求。在此背景下,希望这本以面向应用为主的机器学习教材可以帮助读者更好、更快地进入机器学习领域。 机器学习其实是一门多领域交叉学科,它涉及计算机科学、概率统计、函数逼近论、最优化理论、控制论、决策论、算法复杂度理论、实验科学等多个学科。机器学习也因此有许多不同的具体定义,分别因学科视角不同而有差异。但总体上讲,其关注的核心问题是如何用计算的方法模拟人类的学习行为,从历史经验中获取规律(或模型),并将其应用到新的类似场景中。 机器学习是用算法指导计算机利用已知数据自主构建合理的模型,并利用此模型对新的情境给出判断的过程。它不同于传统软件程序,因为传统软件由人编写指令,软件按照这些预先编写的逻辑规则运行,输出结果。机器学习则是通过大量数据的输入,机器学习算法从中主动寻求规律(模型),评估模型的性能,然后用学习到的模型在新的数据上得出结论,自主解决问题。 机器学习之所以重要,是因为它可以为复杂问题提供解决方案。相对于传统程序设计,这些解决方案具有更高的鲁棒性和更多的策略动态。因为计算机程序使数据处理过程得以自动化,它通常是线性的、基于过程和规则逻辑的。而有些复杂问题,想通过传统程序设计方法来解决通常不可行。如下面这些问题,可以描述,却不能通过传统程序解决。这类问题具有如下特点: (1) 无法界定输入数据的属性范围。 (2) 数据属性太多,无法设计出逻辑去实现程序的目标。 (3) 规则太复杂,无法设计出实现目标的所有逻辑。 (4) 可以收集输入数据的样例,需要将样例中的规律推广到更广泛的数据上。 这类问题对基于过程和因果逻辑的传统程序解决方案来说很难实现,或者即使实现了,但其性能也很差。总体上来说,传统程序设计基于因果逻辑,而机器学习采用的算法基于概率统计和经验反馈。 由此可以看出,机器学习概念广泛,算法过程复杂,以不同的定位和视角学习的内容会有非常大的区别。本书立足于应用,以算法思想替代了机器学习算法的复杂数学公式推导,降低了读者的数学门槛,以大量的案例和具体的项目为线索来学习机器学习的各种算法和应用,让读者学以致用,快速进入机器学习领域。全书共有45个程序,分别实现了各种算法和机器学习技术。4个完整的机器学习项目分别是推荐系统、情感分析系统、预测和人脸识别,每个案例都详细地介绍了采用机器学习技术实现这些应用的步骤和流程,读者掌握这些方法后,就可以用来解决自己面对的各种机器学习问题。 全书以Python为开发语言实现机器学习的各种算法和应用,采用理论与实践相结合的形式,系统全面地介绍机器学习算法与应用。本书共6章,第1章介绍机器学习的基础知识,包括机器学习的基本概念,机器学习的分类和范围。第2章介绍机器学习的监督学习算法,涵盖了机器学习常用的经典算法和模型,包括: K近邻、朴素贝叶斯、决策树、线性回归、逻辑回归、SVM、神经网络等,这些算法和模型采用原理与代码相结合的方式进行讲解。第3章介绍无监督学习与数据预处理,包括数据变换、可视化、降维、聚类等无监督学习常用算法。第4章介绍特征工程,良好的特征工程通常可以提高模型的性能。第5章介绍模型的评估与优化,机器学习模型的多种评价指标以及搜索最有价值模型参数的技术和方法。第6章介绍机器学习在推荐系统、情感分析系统、预测与人脸识别问题上的应用案例。 本书由刘华春老师编写第1章和第2章,姚捃老师编写第3章和第4章,侯向宁老师编写第5章和第6章。本书配套有全部的电子课件和软件程序,可以在清华大学出版社官方网站下载。 在编写过程中,每位作者均付出了很多努力,力求算法描述可理解、案例生动、语言表述简洁。机器学习是一个范围广泛、博大精深的领域,由于编写时间有限,错误和不足在所难免,希望广大读者提出宝贵的意见,以便我们不断完善本书,在此表示感谢! 编者 2022年6月