首页>参考读物>计算机科学与技术>人工智能

机器学习Python版(英文版)
作者 : [美]马克·E. 芬纳(Mark E. Fenner) 著
丛书名 : 经典原版书库
出版日期 : 2022-07-01
ISBN : 978-7-111-70103-3
定价 : 149.00元
扩展资源下载
扩展信息
语种 : 英文
页数 : 562
开本 : 16
原书名 : Machine Learning with Python for Everyone
原出版社: Pearson Education Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书面向初学者,使用Python语言以及流行的scikit-learn机器学习库等资源,通过易于实践的项目,帮助读者掌握开发有效的机器学习系统所需的流程、模式和策略。本书首先介绍机器学习的基本概念和机器学习系统的评估技术;之后扩展工具库,引入另外几种分类和回归技术以及特征工程;最后介绍一些较为前沿的新技术,包括组合机器学习模型和自动化特征工程模型等,并将机器学习应用于图像处理和文本处理两个特定领域。本书不依赖于复杂的数学公式,仅要求读者具备一定的编程基础,适合学生、数据分析人员、科研人员等各领域的读者阅读参考。

图书特色

图书前言

1983年,电影《战争游戏》上映,那时我还是一个未成年的孩子,一些电影情节让我深深着迷:爆发一场核灾难的可能性,电影主角与计算机系统之间近乎神奇的互动方式……但是,最令我着迷的是机器居然具有自主学习的潜力。作为一个天真的少年,我花了好几年的时间研究东西方的战略核武器库。随后,大约又过了近十年的时间,我才开始认真学习计算机程序设计。指引一台计算机去执行一个设定的过程是非常神奇的,在学习复杂系统的细节的同时,又满足了我的好奇心,这真是一种非常美妙的体验。然而,路漫漫其修远兮,又过了几年,我才开始编写第一个明确设计为可以学习的程序。我为之欣喜若狂,并深深地意识到这便是我的精神家园。因此,我想和大家分享这个具有自主学习能力的计算机程序世界。
读者对象
本书的读者对象是机器学习的初学者。更重要的是,读者只需要具备少量大学水平的数学知识。虽然许多机器学习书籍都会花大量的篇幅阐述数学概念和方程,但本书将尽最大的努力减少读者在数学知识方面的负担。我希望读者基本上熟练掌握Python语言的基础知识,而如果读者能够阅读Python程序,那么一定能够从本书中获得更多的信息。虽然许多关于机器学习的书籍都依赖于数学知识,但本书却借助于故事、图片和Python代码来与读者进行交流。当然,偶尔也会涉及数学公式。如果读者对这些数学公式不感兴趣,那么可以直接跳过大部分的数学公式。然而,本书也会尽量为读者提供足够的上下文来解释这些数学公式,以帮助读者理解数学公式的含义。
为什么推荐读者阅读本书呢?因为我们已经达成了一个共识:所有选择这本书的读者都想学习有关机器学习的知识。读者可能有不同的专业背景:也许是一个专注于机器学习的计算机专业低年级学生;也许是一个处于事业中期的商业分析师,急需掌握超越电子表格分析能力的其他方法;也许是一个技术爱好者,希望扩大自己的知识面;抑或是一个科学家,需要以一种新的方式分析数据。机器学习正在渗透到社会的方方面面,根据读者的专业背景,本书会对每个人提供不同的帮助。即便对于一个精通数学的读者,如果想利用Python在机器学习方面有所突破,也能从这本书中收获良多。
因此,本书的目标是让对机器学习有兴趣或者需要实现机器学习项目的读者,通过使用Python scikit-learn以及其他相关库,以一种易于上手的学习方式理解和掌握机器学习的过程和最重要的概念。读者将会发现书中所有的模式、策略、陷阱和疑难杂症,都可能出现在自己将要学习、构建或者使用的机器学习系统中。
写作方法
许多试图解释数学主题(例如机器学习)的书,一般都假设读者可以轻易地读懂数学公式,因此毫无顾忌地大篇幅推导数学公式。但这种方法往往使得大多数人(甚至包括那些喜欢数学的人)望而却步。本书则通过可视化的方式,同时将语言描述与可运行的代码相结合,在读者的脑海中构建一幅更友好的机器学习过程图。作为一个充满热情并且经过良好训练的计算机科学家,我也热爱创造,创造行为会帮助我知晓自己是否已经达到了理解某些事物的真实水平。读者可能熟知这样一句格言:“如果真的想了解一件事,那么最好的方法是把这件事教给别人。”那么,可以由这句格言衍生出另一句格言:“如果真的想了解一件事,那么最好的方法是训练计算机完成这件事!”这正是我要教授读者机器学习的目的所在。基于最基础的数学知识,本书将为读者讲述最重要且最常用的机器学习工具和技术背后的概念。然后,向读者展示如何让计算机完成该任务。注意:本书不会从零开始编写程序以实现这些方法,我们将站在巨人的肩膀上,使用一些非常强大的、节省时间的、预先构建的软件库(稍后将对此进行详细阐述)。
本书不会详细讨论所有这些库,因为这需要海量的篇幅。相反,本书将从实际需求出发,采用最好的工具来完成任务,并提供足够的背景知识以指导读者理解本书将要使用的概念。对于偏好数学的读者,本书会提供一些更深入的参考资料以供进一步研究。这些参考资料将在各章末尾列出,以便其他无此需求的读者跳过这些内容。
如果读者正在阅读这篇前言,以决定是否需要投入时间来阅读本书,这里需要表明一些观点。本书不会深入研究数学证明,也不会依赖数学来阐述原理,市面上存在许多按照上述思路编写的教科书,本书将在每章结尾提供一些相关参考书籍的链接。本书假设目标读者具有初级或者中级水平的Python程序设计知识。然而,对于一些更高级的Python主题和内容(主要来自第三方包,例如NumPy或者Pandas),本书将解释其背后的原理,以便读者能够理解每种技术及其背景知识。
内容概述
在本书第一部分中,我们将为读者打下坚实的基础。在第1章中,将介绍有关机器学习的概念。在第2章中,将采取一种略微不同的方法,介绍一些在机器学习中反复出现的数学和计算主题。第3章和第4章将引导读者初步完成构建、训练和评估机器学习系统的基本步骤,这些机器学习系统用于对数据进行分类(称为分类器)或对数据进行量化(称为回归器)。
本书第二部分将聚焦于如何应用机器学习系统中最重要的内容:以一种现实的方式评估机器学习系统的成功率。第5章将讨论适用于所有机器学习系统的通用评估技术。第6章和第7章将应用这些通用评估技术,并为分类器和回归器增加评估功能。
本书第三部分将扩展我们的学习技术工具库,并补充说明机器学习系统的组成部分。第8章和第9章将阐述另外几种不同的分类技术和回归技术。第10章将描述特征工程:如何平滑原始数据并将其整合成可以用于机器学习的数据格式。第11章将展示如何将多个步骤串联在一起以构建一个完整的机器学习系统,以及如何调整一个机器学习系统的内部工作流程,使其获得最佳的性能表现。
本书的第四部分是进阶部分,将讨论推动机器学习向前发展的前沿技术。在第12章中,我们将讨论由多个小型机器学习系统所组成的机器学习系统。第13章将讨论结合自动化特征工程的机器学习技术。第14章将对书中提及的技术进行综合应用,处理两种特别有意义的数据类型:图像和文本。第15章将回顾前文讨论的许多技术,同时展示这些技术与更高级的机器学习体系结构(神经网络和图模型)之间的关系。
本书主要聚焦于机器学习的各种技术。在此过程中,我们将研究一些学习算法和一些其他的处理方法。然而,全面覆盖这些知识并不是本书的目标。我们将讨论最常见的技术,并简要介绍机器学习的两大子领域:图模型和神经网络(或者称为深层网络)。另外,我们还将讨论本书所关注的技术与这些高级方法之间的关系。
本书未涉及的另一个主题是如何实现特定的学习算法。我们将在scikit-learn库和相关软件库中已有算法的基础上进行机器学习系统的构建,并使用这些机器学习系统作为组件来创建更大型的解决方案。当然,总得有人去实现黑匣子里的算法,以便用户可以传递数据并调用这些算法。如果读者真的对实现这些算法有兴趣,那么我们可谓同道中人。希望读者能推荐身边的朋友也来购买和阅读本书,这样我就更有激情和动力去撰写一本关于这些低级细节的续作。
致谢
非常感谢为这本书的出版做出巨大贡献的所有人。首先感谢Pearson出版集团的Debra Williams Cauley,她在本书撰写的每一个阶段都发挥了重要的指导作用,直至本书出版。从我们最初的会面,到探索可以满足我们双方需求的话题,再到耐心地引导我修改许多早期的草稿,Debra一直在不断给我提供充足的动力,使我可以继续前行,直至爬过最陡峭的山峰,并成功登顶。在所有阶段中,Debra都表现出了最高的专业水平。为此,请接受我最衷心的感谢。
在此,我还要大力赞扬和深深感谢我的妻子—Barbara Fenner博士。她除了承担作为作家的伴侣所需要承担的压力之外,还是本书最重要的初稿读者以及勇敢的插图画家—她完成了绘制本书中所有非计算机生成的图表这一艰巨任务。虽然本书并不是我们的第一个联合学术项目,但却是耗费时间最长的一个合作项目。在我看来,她的耐心是永无止境的。Barbara,谢谢你!
本书的主要专业技术编辑是Marilyn Roth。即使我犯了严重的技术错误,Marilyn也始终如一地对我加以肯定。由于她的反馈意见,本书有了巨大的进步。非常感谢Marilyn Roth。
我还要感谢Pearson编辑部的Alina Kirsanova、Dmitry Kirsanov、Julie Nahil,以及许多无缘见面的幕后工作人员。本书的顺利出版,离不开你们的艰苦付出和专业精神。非常感谢大家。
出版说明
本书不可避免地涉及彩色图表,为了提高纸质版的阅读体验,读者可以从以下网址下载彩色图表的PDF文件:http://informit.com/title/9780134845623。
出于格式化的目的,许多表中的十进制值已经手动四舍五入为仅保留两位小数的值。在一些情况下,Python代码和注释都略有修改,所有这些修改都会产生正确有效的程序。
本书的在线资源可以从以下网址下载:https://github.com/mfenner1。
读者可以在InformIT网站上注册,以便获取本书的更新及勘误。请访问网址informit.com/register,登录或者创建自己的账号。输入ISBN(9780134845623),然后单击“Submit”按钮。单击“Registered Products”选项卡,获取“Access Bonus Content”链接,然后按照该链接的指示访问所有可用的额外材料。如果读者希望收到有关新版本以及相关更新的独家服务通知,请选中相关复选框以接收我们的电子邮件。

上架指导

计算机\人工智能

封底文字

本书面向初学者,使用Python语言以及流行的scikit-learn机器学习库等资源,通过易于实践的项目,帮助读者掌握开发有效的机器学习系统所需的流程、模式和策略。

与包含大量数学公式的书籍不同,本书主要通过故事、图片和代码示例来讲解机器学习的概念和技术,尽量减轻读者在数学方面的负担,但要求读者具备一定的编程基础。书中逐步引导读者完成构建、训练和评估学习系统的每一步,在此过程中,根据需要不断填充机器学习系统的各个组成部分,拓展机器学习工具箱,并尝试探索复杂的新技术。

本书主要内容
理解机器学习的算法、模型和核心概念。
构建分类器和回归器。
评估机器学习系统的性能。
利用特征工程将原始的粗糙数据平滑成有用的格式。
将多个组件连接到一个系统中,并调整其性能。
将机器学习技术应用于图像处理和文本处理任务。
将核心概念与神经网络和图模型联系起来。 


作者简介
马克·E. 芬纳(Mark E. Fenner)  Fenner Training and Consulting公司的创始人,自1999年起一直从事计算机和数学领域的教学工作,曾为众多知名公司和国家级实验室开发课程并提供培训。此外,他还从事机器学习、生物信息学和计算机安全方面的研究工作,所参与的项目涉及机器学习和数值算法的设计和实现、软件仓库的安全性分析、蛋白质功能的概率建模以及显微镜数据的分析和可视化等。他拥有计算机科学博士学位。

作者简介

[美]马克·E. 芬纳(Mark E. Fenner) 著:马克·E. 芬纳(Mark E. Fenner) Fenner Training and Consulting公司的创始人,自1999年起一直从事计算机和数学领域的教学工作,曾为众多知名公司和国家级实验室开发课程并提供培训。此外,他还从事机器学习、生物信息学和计算机安全方面的研究工作,所参与的项目涉及机器学习和数值算法的设计和实现、软件仓库的安全性分析、蛋白质功能的概率建模以及显微镜数据的分析和可视化等。他拥有计算机科学博士学位。

推荐序

从数据中学习和获取模式的方法正在改变世界,而无论这种研究方法是被称为统计学、数据科学、机器学习还是人工智能。几乎所有行业都已经(或者说很快就会)被机器学习覆盖。尽管大多数人的注意力都聚焦在软件方面,但硬件与软件的共同发展和进步正在推动这一领域的快速发展。
虽然R、C/C++、Fortran和Go等许多程序设计语言都可以用于机器学习,但事实证明Python是最流行的机器学习语言。这在很大程度上得益于scikit-learn机器学习库。该机器学习库不但可以轻松地训练大量不同的模型,还可以用于特征工程、模型质量评估以及对新的数据进行评分等。scikit-learn项目已经迅速成为Python非常重要和非常强大的软件库之一。
虽然具备高等数学知识是学习机器学习的基础,但即使在缺少系统的微积分和矩阵代数等背景知识的前提下,也完全可以训练复杂的模型。对于许多人而言,通过程序设计而不是学习数学知识的方式,更容易实现掌握机器学习这一目标。而这也正是本书的目标:将Python作为机器学习的工具,然后根据需要补充一些数学知识。对于迫切想要学习机器学习的读者而言,本书为他们敞开了一扇大门。
本书作者多年来一直致力于与不同背景的人交流有关科学和机器学习的概念,从而练就了将复杂思想分解成简单问题的能力。这些经历使得作者能够以一种讲故事的形式解释概念,同时尽量减少使用枯燥的术语,并提供具体的实例。本书的特点是非常易于阅读,并且提供大量的程序代码,以便读者在自己的计算机上进行编程练习。
由于越来越多的人渴望了解和实现机器学习,因此有必要提供全面的实践资源来指导读者的学习,以帮助读者快速入门。本书见解深刻,内容引人入胜,正好满足了这一学习需求。相信本书一定能够帮助具备不同知识背景的读者快速增长知识和技能,从而大大增加他们踏足机器学习这一重要领域的机会。

Jared Lander
丛书编辑

图书目录

第一部分 机器学习入门
第1章 机器学习概论 3
1.1 欢迎来到机器学习的世界 3
1.2 范围、术语、预测和数据 4
1.2.1 特征 5
1.2.2 目标值和预测值 6
1.3 让机器开始机器学习 7
1.4 学习系统举例 9
1.4.1 预测类别:分类器举例 9
1.4.2 预测值:回归器举例 10
1.5 评估机器学习系统 11
1.5.1 准确率 11
1.5.2 资源消耗 12
1.6 创建机器学习系统的过程 13
1.7 机器学习的假设和现实 15
1.8 参考阅读资料 17
1.8.1 进一步研究方向 17
1.8.2 注释 17
第2章 相关技术背景 19
2.1 编程环境配置 19
2.2 数学语言的必要性 19
2.3 用于解决机器学习问题的软件 20
2.4 概率 21
2.4.1 基本事件 22
2.4.2 独立性 23
2.4.3 条件概率 24
2.4.4 概率分布 25
2.5 线性组合、加权和以及点积 28
2.5.1 加权平均 30
2.5.2 平方和 32
2.5.3 误差平方和 33
2.6 几何视图:空间中的点 34
2.6.1 直线 34
2.6.2 直线拓展 39
2.7 表示法和加1技巧 43
2.8 渐入佳境:突破线性和非线性 45
2.9 NumPy与“数学无所不在” 47
2.9.1 一维数组与二维数组 49
2.10 浮点数问题 52
2.11 参考阅读资料 53
2.11.1 小结 53
2.11.2 注释 54
第3章 预测类别:分类入门 55
3.1 分类任务 55
3.2 一个简单的分类数据集 56
3.3 训练和测试:请勿“应试教育” 59
3.4 评估:考试评分 62
3.5 简单分类器1:最近邻分类器、远距离关系和假设 63
3.5.1 定义相似性 63
3.5.2 k-最近邻中的k 64
3.5.3 答案组合 64
3.5.4 k-最近邻、参数和非参数方法 65
3.5.5 建立一个k-最近邻分类模型 66
3.6 简单分类器2:朴素贝叶斯分类器、概率和违背承诺 68
3.7 分类器的简单评估 70
3.7.1 机器学习的性能 70
3.7.2 分类器的资源消耗 71
3.7.3 独立资源评估 77
3.8 参考阅读资料 81
3.8.1 再次警告:局限性和尚未解决的问题 81
3.8.2 小结 82
3.8.3 注释 82
3.8.4 练习题 83
第4章 预测数值:回归入门 85
4.1 一个简单的回归数据集 85
4.2 最近邻回归和汇总统计 87
4.2.1 中心测量:中位数和均值 88
4.2.2 构建一个k-最近邻回归模型 90
4.3 线性回归和误差 91
4.3.1 地面总是不平坦的:为什么需要斜坡 92
4.3.2 倾斜直线 94
4.3.3 执行线性回归 97
4.4 优化:选择最佳答案 98
4.4.1 随机猜测 98
4.4.2 随机步进 99
4.4.3 智能步进 99
4.4.4 计算的捷径 100
4.4.5 线性回归的应用 101
4.5 回归器的简单评估和比较 101
4.5.1 均方根误差 101
4.5.2 机器学习的性能 102
4.5.3 回归过程中的资源消耗 102
4.6 参考阅读资料 104
4.6.1 局限性和尚未解决的问题 104
4.6.2 小结 105
4.6.3 注释 105
4.6.4 练习题 105
第二部分 通用评估技术
第5章 机器学习算法的评估和比较分析 109
5.1 评估和大道至简的原则 109
5.2 机器学习阶段的术语 110
5.2.1 有关机器的重新讨论 110
5.2.2 更规范的阐述 113
5.3 过拟合和欠拟合 116
5.3.1 合成数据和线性回归 117
5.3.2 手动操控模型的复杂度 118
5.3.3 “恰到好处”原则:可视化过拟合、欠拟合和最佳拟合 120
5.3.4 简单性 124
5.3.5 关于过拟合必须牢记的注意事项 124
5.4 从误差到成本 125
5.4.1 损失 125
5.4.2 成本 126
5.4.3 评分 127
5.5 (重新)抽样:以少胜多 128
5.5.1 交叉验证 128
5.5.2 分层抽样 132
5.5.3 重复的训练–测试数据集拆分 133
5.5.4 一种更好的方法和混排 137
5.5.5 留一交叉验证 140
5.6 分解:将误差分解为偏差和方差 142
5.6.1 数据的方差 143
5.6.2 模型的方差 144
5.6.3 模型的偏差 144
5.6.4 结合所有的因素 145
5.6.5 偏差–方差权衡示例 145
5.7 图形可视化评估和比较 149
5.7.1 学习曲线:到底需要多少数据 150
5.7.2 复杂度曲线 152
5.8 使用交叉验证比较机器学习模型 154
5.9 参考阅读资料 155
5.9.1 小结 155
5.9.2 注释 155
5.9.3 练习题 157
第6章 评估分类器 159
6.1 基线分类器 159
6.2 准确度以外:分类器的其他度量指标 161
6.2.1 从混淆矩阵中消除混淆 163
6.2.2 错误的方式 164
6.2.3 基于混淆矩阵的度量指标 165
6.2.4 混淆矩阵编码 166
6.2.5 处理多元类别:多元类别平均 168
6.2.6 F1分数 170
6.3 ROC曲线 170
6.3.1 ROC模式 173
6.3.2 二元分类ROC 174
6.3.3 AUC:(ROC)曲线下的面积 177
6.3.4 多元分类机器学习模型、一对其他和ROC 179
6.4 多元分类的另一种方法:一对一 181
6.4.1 多元分类AUC第二部分:寻找单一值 182
6.5 精确率–召回率曲线 185
6.5.1 关于精确率–召回率权衡的说明 185
6.5.2 构建精确率–召回率曲线 186
6.6 累积响应和提升曲线 187
6.7 更复杂的分类器评估:第二阶段 190
6.7.1 二元分类 190
6.7.2 一个新颖的多元分类问题 195
6.8 参考阅读资料 201
6.8.1 小结 201
6.8.2 注释 202
6.8.3 练习题 203
第7章 评估回归器 205
7.1 基线回归器 205
7.2 回归器的其他度量指标 207
7.2.1 创建自定义的评估指标 207
7.2.2 其他内置的回归度量指标 208
7.2.3 R2 209
7.3 残差图 214
7.3.1 误差图 215
7.3.2 残差图 217
7.4 标准化初探 221
7.5 使用更复杂的方法评估回归系数:第二阶段 225
7.5.1 多个度量指标的交叉验证结果 226
7.5.2 交叉验证结果汇总 230
7.5.3 残差 230
7.6 参考阅读资料 232
7.6.1 小结 232
7.6.2 注释 232
7.6.3 练习题 234
第三部分 更多方法和其他技术
第8章 更多分类方法 237
8.1 重温分类知识 237
8.2 决策树 239
8.2.1 树构建算法 242
8.2.2 让我们开始:决策树时间 245
8.2.3 决策树中的偏差和方差 249
8.3 支持向量分类器 249
8.3.1 执行支持向量分类器 253
8.3.2 SVC中的偏差和方差 256
8.4 逻辑回归 259
8.4.1 投注几率 259
8.4.2 概率、几率和对数几率 262
8.4.3 实现操作:逻辑回归版本 267
8.4.4 逻辑回归:空间奇异性 268
8.5 判别分析 269
8.5.1 协方差 270
8.5.2 方法 282
8.5.3 执行判别分析 283
8.6 假设、偏差和分类器 285
8.7 分类器的比较:第三阶段 287
8.7.1 数字 287
8.8 参考阅读资料 290
8.8.1 小结 290
8.8.2 注释 290
8.8.3 练习题 293
第9章 更多回归方法 295
9.1 惩罚框中的线性回归:正则化 295
9.1.1 执行正则化回归 300
9.2 支持向量回归 301
9.2.1 铰链损失 301
9.2.2 从线性回归到正则化回归,再到支持向量回归 305
9.2.3 实践应用:支持向量回归风格 307
9.3 分段常数回归 308
9.3.1 实现分段常数回归器 310
9.3.2 模型实现的一般说明 311
9.4 回归树 313
9.4.1 用决策树实现回归 313
9.5 回归器比较:第三阶段 314
9.6 参考阅读资料 318
9.6.1 小结 318
9.6.2 注释 318
9.6.3 练习题 319
第10章 手动特征工程:操作数据的乐趣和意义 321
10.1 特征工程的术语和动机 321
10.1.1 为什么选择特征工程 322
10.1.2 何时开始特征工程 323
10.1.3 特征工程是如何发生的 324
10.2 特征选择和数据简化:清除垃圾 324
10.3 特征缩放 325
10.4 离散化 329
10.5 分类编码 332
10.5.1 编码的另一种方式以及无截距的奇怪情况 334
10.6 关系和相互作用 341
10.6.1 手动特征构造 341
10.6.2 相互作用 343
10.6.3 使用转换器添加特征 348
10.7 对输入空间和目标的相关操作 350
10.7.1 对输入空间的相关操作 351
10.7.2 对目标的相关操作 353
10.8 参考阅读资料 356
10.8.1 小结 356
10.8.2 注释 356
10.8.3 练习题 357
第11章 调整超参数和管道技术 359
11.1 模型、参数、超参数 360
11.2 调整超参数 362
11.2.1 关于计算机科学和机器学习术语的说明 362
11.2.2 关于完整搜索的示例 362
11.2.3 使用随机性在大海中捞针 368
11.3 递归的神奇世界:嵌套交叉验证 370
11.3.1 重温交叉验证 370
11.3.2 作为模型的网格搜索 371
11.3.3 交叉验证中嵌套的交叉验证 372
11.3.4 关于嵌套交叉验证的注释 375
11.4 管道技术 377
11.4.1 简单的管道 378
11.4.2 复杂的管道 379
11.5 管道和调参相结合 380
11.6 参考阅读资料 382
11.6.1 小结 382
11.6.2 注释 382
11.6.3 练习题 383
第四部分 高级主题
第12章 组合机器学习模型 387
12.1 集成 387
12.2 投票集成 389
12.3 装袋法和随机森林 390
12.3.1 自举 390
12.3.2 从自举到装袋法 394
12.3.3 随机森林 396
12.4 提升方法 398
12.4.1 提升方法的核心理念 399
12.5 各种树集成方法的比较 401
12.6 参考阅读资料 405
12.6.1 小结 405
12.6.2 注释 405
12.6.3 练习题 406
第13章 提供特征工程的模型 409
13.1 特征选择 411
13.1.1 基于度量特征的“单步筛选”方法 412
13.1.2 基于模型的特征选择 423
13.1.3 将特征选择与机器学习管道相集成 426
13.2 基于核的特征构造 428
13.2.1 核激励因子 428
13.2.2 手动核方法 433
13.2.3 核方法和核选项 438
13.2.4 核化支持向量分类器:支持向量机 442
13.2.5 关于SVM的建议和示例 443
13.3 主成分分析:一种无监督技术 445
13.3.1 预热:中心化数据 445
13.3.2 寻找不同的最佳线路 448
13.3.3 第一次执行PCA 449
13.3.4 PCA的内部原理 452
13.3.5 对一般PCA的评论 457
13.3.6 核心PCA和流形方法 458
13.4 参考阅读资料 462
13.4.1 小结 462
13.4.2 注释 462
13.4.3 练习题 467
第14章 领域特征工程:领域特定的机器学习 469
14.1 处理文本 470
14.1.1 对文本进行编码 471
14.1.2 文本学习的示例 476
14.2 聚类 479
14.2.1 k-均值聚类 479
14.3 处理图像 481
14.3.1 视觉词袋 481
14.3.2 图像数据 482
14.3.3 端到端系统 483
14.3.4 全局视觉词袋转换器的完整代码 491
14.4 参考阅读资料 493
14.4.1 小结 493
14.4.2 注释 494
14.4.3 练习题 495
第15章 连接、扩展和进一步研究方向 497
15.1 优化 497
15.2 基于原始数据的线性回归 500
15.2.1 线性回归的可视化视图 504
15.3 基于原始数据构建逻辑回归 504
15.3.1 采用0-1编码的逻辑回归 506
15.3.2 采用加1减1编码的逻辑回归 508
15.3.3 逻辑回归的可视化视图 509
15.4 基于原始数据的SVM 510
15.5 神经网络 512
15.5.1 线性回归的神经网络视图 512
15.5.2 逻辑回归的神经网络视图 515
15.5.3 超越基本神经网络 516
15.6 概率图模型 516
15.6.1 抽样 518
15.6.2 线性回归的概率图模型视图 519
15.6.3 逻辑回归的概率图模型视图 523
15.7 参考阅读资料 525
15.7.1 小结 525
15.7.2 注释 526
15.7.3 练习题 527
附录A  mlwpy.py程序清单 529



Contents
I First Steps 1
1 Let’s Discuss Learning 3
1.1 Welcome 3
1.2 Scope, Terminology, Prediction, and Data 4
1.2.1 Features 5
1.2.2 Target Values and Predictions 6
1.3 Putting the Machine in Machine Learning 7
1.4 Examples of Learning Systems 9
1.4.1 Predicting Categories: Examples of Classifiers 9
1.4.2 Predicting Values: Examples of Regressors 10
1.5 Evaluating Learning Systems 11
1.5.1 Correctness 11
1.5.2 Resource Consumption 12
1.6 A Process for Building Learning Systems 13
1.7 Assumptions and Reality of Learning 15
1.8 End-of-Chapter Material 17
1.8.1 The Road Ahead 17
1.8.2 Notes 17
2 Some Technical Background 19
2.1 About Our Setup 19
2.2 The Need for Mathematical Language 19
2.3 Our Software for Tackling Machine Learning 20
2.4 Probability 21
2.4.1 Primitive Events 22
2.4.2 Independence 23
2.4.3 Conditional Probability 24
2.4.4 Distributions 25
2.5 Linear Combinations, Weighted Sums, and Dot Products 28
2.5.1 Weighted Average 30
2.5.2 Sums of Squares 32
2.5.3 Sum of Squared Errors 33
2.6 A Geometric View: Points in Space 34
2.6.1 Lines 34
2.6.2 Beyond Lines 39
2.7 Notation and the Plus-One Trick 43
2.8 Getting Groovy, Breaking the Straight-Jacket, and Nonlinearity 45
2.9 NumPy versus “All the Maths” 47
2.9.1 Back to 1D versus 2D 49
2.10 Floating-Point Issues 52
2.11 EOC 53
2.11.1 Summary 53
2.11.2 Notes 54
3 Predicting Categories: Getting Started with Classification 55
3.1 Classification Tasks 55
3.2 A Simple Classification Dataset 56
3.3 Training and Testing: Don’t Teach to the Test 59
3.4 Evaluation: Grading the Exam 62
3.5 Simple Classifier #1: Nearest Neighbors, Long Distance Relationships, and Assumptions 63
3.5.1 Defining Similarity 63
3.5.2 The k in k-NN 64
3.5.3 Answer Combination 64
3.5.4 k-NN, Parameters, and Nonparametric Methods 65
3.5.5 Building a k-NN Classification Model 66
3.6 Simple Classifier #2: Naive Bayes, Probability, and Broken Promises 68
3.7 Simplistic Evaluation of Classifiers 70
3.7.1 Learning Performance 70
3.7.2 Resource Utilization in Classification 71
3.7.3 Stand-Alone Resource Evaluation 77
3.8 EOC 81
3.8.1 Sophomore Warning: Limitations and Open Issues 81
3.8.2 Summary 82
3.8.3 Notes 82
3.8.4 Exercises 83
4 Predicting Numerical Values: Getting Started with Regression 85
4.1 A Simple Regression Dataset 85
4.2 Nearest-Neighbors Regression and Summary Statistics 87
4.2.1 Measures of Center: Median and Mean 88
4.2.2 Building a k-NN Regression Model 90
4.3 Linear Regression and Errors 91
4.3.1 No Flat Earth: Why We Need Slope 92
4.3.2 Tilting the Field 94
4.3.3 Performing Linear Regression 97
4.4 Optimization: Picking the Best Answer 98
4.4.1 Random Guess 98
4.4.2 Random Step 99
4.4.3 Smart Step 99
4.4.4 Calculated Shortcuts 100
4.4.5 Application to Linear Regression 101
4.5 Simple Evaluation and Comparison of Regressors 101
4.5.1 Root Mean Squared Error 101
4.5.2 Learning Performance 102
4.5.3 Resource Utilization in Regression 102
4.6 EOC 104
4.6.1 Limitations and Open Issues 104
4.6.2 Summary 105
4.6.3 Notes 105
4.6.4 Exercises 105
II Evaluation 107
5 Evaluating and Comparing Learners 109
5.1 Evaluation and Why Less Is More 109
5.2 Terminology for Learning Phases 110
5.2.1 Back to the Machines 110
5.2.2 More Technically 113
5.3 Major Tom, There’s Something Wrong: Overfitting and Underfitting 116
5.3.1 Synthetic Data and Linear Regression 117
5.3.2 Manually Manipulating Model Complexity 118
5.3.3 Goldilocks: Visualizing Overfitting, Underfitting, and “Just Right” 120
5.3.4 Simplicity 124
5.3.5 Take-Home Notes on Overfitting 124
5.4 From Errors to Costs 125
5.4.1 Loss 125
5.4.2 Cost 126
Speaking
5.4.3 Score 127
5.5 (Re)Sampling: Making More from Less 128
5.5.1 Cross-Validation 128
5.5.2 Stratification 132
5.5.3 Repeated Train-Test Splits 133
5.5.4 A Better Way and Shuffling 137
5.5.5 Leave-One-Out Cross-Validation 140
5.6 Break-It-Down: Deconstructing Error into Bias and Variance 142
5.6.1 Variance of the Data 143
5.6.2 Variance of the Model 144
5.6.3 Bias of the Model 144
5.6.4 All Together Now 145
5.6.5 Examples of Bias-Variance Tradeoffs 145
5.7 Graphical Evaluation and Comparison 149
5.7.1 Learning Curves: How Much Data Do We Need? 150
5.7.2 Complexity Curves 152
5.8 Comparing Learners with Cross-Validation 154
5.9 EOC 155
5.9.1 Summary 155
5.9.2 Notes 155
5.9.3 Exercises 157
6 Evaluating Classifiers 159
6.1 Baseline Classifiers 159
6.2 Beyond Accuracy: Metrics
for Classification 161
6.2.1 Eliminating Confusion from the Confusion Matrix 163
6.2.2 Ways of Being Wrong 164
6.2.3 Metrics from the Confusion Matrix 165
6.2.4 Coding the Confusion Matrix 166
6.2.5 Dealing with Multiple Classes: Multiclass Averaging 168
6.2.6 F1 170
6.3 ROC Curves 170
6.3.1 Patterns in the ROC 173
6.3.2 Binary ROC 174
6.3.3 AUC: Area-Under-the-(ROC)- Curve 177
6.3.4 Multiclass Learners, One-versus-Rest, and ROC 179
6.4 Another Take on Multiclass: One-versus-One 181
6.4.1 Multiclass AUC Part Two: The Quest for a Single Value 182
6.5 Precision-Recall Curves 185
6.5.1 A Note on Precision-Recall Tradeoff 185
6.5.2 Constructing a Precision-Recall Curve 186
6.6 Cumulative Response and Lift Curves 187
6.7 More Sophisticated Evaluation of Classifiers: Take Two 190
6.7.1 Binary 190
6.7.2 A Novel Multiclass Problem 195
6.8 EOC 201
6.8.1 Summary 201
6.8.2 Notes 202
6.8.3 Exercises 203
7 Evaluating Regressors 205
7.1 Baseline Regressors 205
7.2 Additional Measures for Regression 207
7.2.1 Creating Our Own Evaluation Metric 207
7.2.2 Other Built-in Regression Metrics 208
7.2.3 R2 209
7.3 Residual Plots 214
7.3.1 Error Plots 215
7.3.2 Residual Plots 217
7.4 A First Look at Standardization 221
7.5 Evaluating Regressors in a More Sophisticated Way: Take Two 225
7.5.1 Cross-Validated Results on Multiple Metrics 226
7.5.2 Summarizing Cross-Validated Results 230
7.5.3 Residuals 230
7.6 EOC 232
7.6.1 Summary 232
7.6.2 Notes 232
7.6.3 Exercises 234
III More Methods and Fundamentals 235
8 More Classification Methods 237
8.1 Revisiting Classification 237
8.2 Decision Trees 239
8.2.1 Tree-Building Algorithms 242
8.2.2 Let’s Go: Decision Tree Time 245
8.2.3 Bias and Variance in Decision Trees 249
8.3 Support Vector Classifiers 249
8.3.1 Performing SVC 253
8.3.2 Bias and Variance in SVCs 256
8.4 Logistic Regression 259
8.4.1 Betting Odds 259
8.4.2 Probabilities, Odds, and Log-Odds 262
8.4.3 Just Do It: Logistic Regression Edition 267
8.4.4 A Logistic Regression: A Space Oddity 268
8.5 Discriminant Analysis 269
8.5.1 Covariance 270
8.5.2 The Methods 282
8.5.3 Performing DA 283
8.6 Assumptions, Biases, and Classifiers 285
8.7 Comparison of Classifiers: Take Three 287
8.7.1 Digits 287
8.8 EOC 290
8.8.1 Summary 290
8.8.2 Notes 290
8.8.3 Exercises 293
9 More Regression Methods 295
9.1 Linear Regression in the Penalty Box: Regularization 295
9.1.1 Performing Regularized Regression 300
9.2 Support Vector Regression 301
9.2.1 Hinge Loss 301
9.2.2 From Linear Regression to Regularized Regression to
Support Vector Regression 305
9.2.3 Just Do It — SVR Style 307
9.3 Piecewise Constant Regression 308
9.3.1 Implementing a Piecewise
Constant Regressor 310
9.3.2 General Notes on Implementing Models 311
9.4 Regression Trees 313
9.4.1 Performing Regression with Trees 313
9.5 Comparison of Regressors: Take Three 314
9.6 EOC 318
9.6.1 Summary 318
9.6.2 Notes 318
9.6.3 Exercises 319
Data for Fun and Profit 321
10.1 Feature Engineering Terminology and Motivation 321
10.1.1 Why Engineer Features? 322
10.1.2 When Does Engineering Happen? 323
10.1.3 How Does Feature Engineering Occur? 324
10.2 Feature Selection and Data Reduction: Taking out the Trash 324
10.3 Feature Scaling 325
10.4 Discretization 329
10.5 Categorical Coding 332
10.5.1 Another Way to Code and the Curious Case of the Missing
Intercept 334
10.6 Relationships and Interactions 341
10.6.1 Manual Feature Construction 341
10.6.2 Interactions 343
10.6.3 Adding Features with Transformers 348
10.7 Target Manipulations 350
10.7.1 Manipulating the Input Space 351
10.7.2 Manipulating the Target 353
10.8 EOC 356
10.8.1 Summary 356
10.8.2 Notes 356
10.8.3 Exercises 357
359
11.1 Models, Parameters, Hyperparameters 360
11.2 Tuning Hyperparameters 362
11.2.1 A Note on Computer Science and Learning Terminology 362
11.2.2 An Example of Complete Search 362
11.2.3 Using Randomness to Search for a Needle in a Haystack 368
11 Tuning Hyperparameters and Pipelines
10 Manual Feature Engineering: Manipulating
11.3 Down the Recursive Rabbit Hole: Nested Cross-Validation 370
11.3.1 Cross-Validation, Redux 370
11.3.2 GridSearch as a Model 371
11.3.3 Cross-Validation Nested within Cross-Validation 372
11.3.4 Comments on Nested CV 375
11.4 Pipelines 377
11.4.1 A Simple Pipeline 378
11.4.2 A More Complex Pipeline 379
11.5 Pipelines and Tuning Together 380
11.6 EOC 382
11.6.1 Summary 382
11.6.2 Notes 382
11.6.3 Exercises 383
IV Adding Complexity 385
387
12.1 Ensembles 387
12.2 Voting Ensembles 389
12.3 Bagging and Random Forests 390
12.3.1 Bootstrapping 390
12.3.2 From Bootstrapping to Bagging 394
12.3.3 Through the Random Forest 396
12.4 Boosting 398
12.4.1 Boosting Details 399
12.5 Comparing the Tree-Ensemble Methods 401
12.6 EOC 405
12.6.1 Summary 405
12.6.2 Notes 405
12.6.3 Exercises 406
12 Combining Learners409
13.1 Feature Selection 411
13.1.1 Single-Step Filtering with
Metric-Based Feature Selection 412
13.1.2 Model-Based Feature Selection 423
13.1.3 Integrating Feature Selection with
a Learning Pipeline 426
13.2 Feature Construction with Kernels 428
13.2.1 A Kernel Motivator 428
13.2.2 Manual Kernel Methods 433
13.2.3 Kernel Methods and Kernel Options 438
13.2.4 Kernelized SVCs: SVMs 442
13.2.5 Take-Home Notes on SVM and an Example 443
13.3 Principal Components Analysis: An Unsupervised Technique 445
13.3.1 A Warm Up: Centering 445
13.3.2 Finding a Different Best Line 448
13.3.3 A First PCA 449
13.3.4 Under the Hood of PCA 452
13.3.5 A Finale: Comments on General PCA 457
13.3.6 Kernel PCA and Manifold
Methods 458
13.4 EOC 462
13.4.1 Summary 462
13.4.2 Notes 462
13.4.3 Exercises 467
Domain-Specific Learning 469
14.1 Working with Text 470
14.1.1 Encoding Text 471
14.1.2 Example of Text Learning 476
14.2 Clustering 479
14.2.1 k-Means Clustering 479
13 Models That Engineer Features for Us
14 Feature Engineering for Domains:
14.3 Working with Images 481
14.3.1 Bag of Visual Words 481
14.3.2 Our Image Data 482
14.3.3 An End-to-End System 483
14.3.4 Complete Code of BoVW Transformer 491
14.4 EOC 493
14.4.1 Summary 493
14.4.2 Notes 494
14.4.3 Exercises 495
Directions 497
15.1 Optimization 497
15.2 Linear Regression from Raw Materials 500
15.2.1 A Graphical View of Linear Regression 504
15.3 Building Logistic Regression from Raw Materials 504
15.3.1 Logistic Regression with Zero-One Coding 506
15.3.2 Logistic Regression with Plus-One Minus-One Coding 508
15.3.3 A Graphical View of Logistic Regression 509
15.4 SVM from Raw Materials 510
15.5 Neural Networks 512
15.5.1 A NN View of Linear Regression 512
15.5.2 A NN View of Logistic Regression 515
15.5.3 Beyond Basic Neural Networks 516
15.6 Probabilistic Graphical Models 516
15.6.1 Sampling 518
15.6.2 A PGM View of Linear Regression 519
15 Connections, Extensions, and Further
15.6.3 A PGM View of Logistic Regression 523
15.7 EOC 525
15.7.1 Summary 525
15.7.2 Notes 526
15.7.3 Exercises 527
A mlwpy.py Listing 529
Index 537

教学资源推荐
作者: (美)Ramesh Jain,Rangachar Kasturi,Brian G.Schunck
作者: 王章阳(Zhangyang Wang) [美]傅云(Yun Fu) [美]黄煦涛(Thomas S. Huang) 编著
作者: [英]伯纳黛特·夏普(Bernadette Sharp) [法]弗洛伦斯·赛德斯(Florence Sèdes)[波兰]维斯拉夫·卢巴泽斯基(Wiesław Lubaszewski) 编著
作者: [美] 查鲁·C. 阿加沃尔(Charu C. Aggarwal)著
参考读物推荐
作者: 计湘婷 文新 刘倩 李轩涯 编著
作者: [美] 挪亚·吉夫特(Noah Gift) 著