前 言
P r e f a c e
“机器学习”这一概念是由美国人工智能领域的先驱阿瑟·塞缪尔(Arthur
Samuel)在1959 年正式提出的,他说“机器学习赋予计算机学习的能力,而无须明
确编程”。
机器学习是人工智能领域中的一个子集,与以往计算机程序不同,机器学习强调
的是“学习”,而不是按部就班地执行命令。机器学习是计算机科学有趣的子领域之
一,但对它的定义目前还没有达到普遍共识。1997 年,汤姆·米切尔(Tom Mitchell)
给出了一个定义,即“对于某类任务T 和性能度量P,如果一个计算机程序在T 上以
P 衡量的性能随着经验E 而不断完善自身,那么称这个计算机程序在从经验E 中学习”。
机器学习是一门多领域交叉学科,涉及概率论、凸优化、统计学等学科,已经广
泛应用到制造、驾驶、农业、医学等领域。
本书介绍了当前主流的机器学习算法并把它们应用于实践,通俗易懂,通过算法
原理简介、多个实际案例讲解提高读者的兴趣,将带读者走入机器学习应用的大门。
Python 语言由于其易读性和大量库的支持,成为学习机器学习的首选语言。其中,
Sklearn 库包含了大量的数据集和机器学习算法,为机器学习的入门提供了基础。本
书将使用Python 语言实现部分机器学习算法。
本书分为10 个项目,每个项目都包含多个子任务,通过任务驱动的方式讲解了
各种机器学习算法,具体如下。
(1)项目1 走进机器学习的世界。此项目主要是为后续项目内容做铺垫,介绍
了机器学习算法的种类、应用场景、常用的开发框架和软件库,以及如何配置机器学
习开发环境。
(2)项目2 数据预处理。在进行机器学习算法模型训练之前,总是需要将输入
数据进行预处理,保留有意义的数据,进而在此基础上进行下一步的模型训练操作。
项目2 主要讲解了数据预处理的操作手段。
II
机器学习算法与应用(Python 版)
(3)项目3 基于K-Means 算法的应用实践。此项目主要介绍了K-Means 算法的基
本原理,并通过具体的案例对原理知识展开深入的讲解。
(4)项目4 基于KNN 算法的应用实践。此项目首先针对KNN 算法原理部分进行
了深入的探讨,然后介绍KNN 算法在分类中的基本使用流程,最后采用KNN 算法实现
各种具体的案例。
(5)项目5 基于线性回归算法的应用实践。此项目主要围绕多种线性回归方式
来实现具体的案例,从而进一步加深读者对线性回归原理知识的理解。
(6)项目6 基于逻辑回归算法的应用实践。此项目介绍了逻辑回归算法的基本
原理,并且给出了处理样本数据不平衡问题的多种方法,同时使用逻辑回归算法处理
了多种实际问题。
(7)项目7 基于决策树算法的应用实践。此项目介绍了决策树的基本原理,并
详细描述了实现决策树的基本步骤。
(8)项目8 基于支持向量机算法的应用实践。此项目介绍了支持向量机的基本
原理,并详细介绍了如何使用支持向量机进行高维数据分类。
(9)项目9 基于神经网络算法实现曲线拟合。此项目介绍了人工神经网络的基
本原理,并介绍了实现人工神经网络的基本步骤,最后采用人工神经网络实现各种分
类问题。
(10)项目10 基于AdaBoost 算法的应用实践。此项目介绍了AdaBoost 算法的
基本原理,并根据其基本原理实现具体算法,采用AdaBoost 算法实现了多种实际的
应用。
以上10 个项目内容的基本框架大致分为项目导读、学习目标、知识导图、具体
任务、项目小结以及练习题。其中,具体任务的实施步骤都是循序渐进、环环相扣
的,并提供任务中涉及的源代码,以帮助读者牢固掌握机器学习的相关知识。
本书在编写过程中参考了有关资料和著作,在此向相关作者表示感谢。由于编者
水平有限,书中难免有错误,恳请广大读者提出宝贵意见。
编 者
2022 年2月
源代码