阅读本书,即使读者仅掌握高中数学知识,也能理解和应用强大的机器学习技术!简单来讲,机器学习是一套以算法为基础的数据分析技术,当你提供更多数据时,算法可反馈更好的结果。ML支持许多尖端技术,如推荐系统、面部识别软件、智能扬声器,甚至包括自动驾驶汽车。本书不落窠臼,示例丰富,精选的练习十分有趣,插图清晰,讲解机器学习的核心概念。
《机器学习图解》以简明易懂的方式介绍机器学习的算法和技术。本书不谈深奥的术语,只通过基本代数知识提供清晰的解释。你将使用Python构建有趣的项目,包括垃圾邮件检测和图像识别模型;还将学习一些实用技能,以清理和准备数据。例如:
分类和划分数据的监督算法
清理和简化数据的方法
机器学习包和工具
复杂数据集的神经网络和集成方法
小Tips:读者阅读本书前,**了解Python基础知识,不必了解机器学习知识。
Luis G. Serrano是量子人工智能领域的研究科学家。此前,他曾担任Google机器学习工程师和Apple公司首席人工智能教师。
本书教你两件事:机器学习模型及其使用方法。机器学习模型有不同的类型。有些返回确定性的答案,例如是或否,而另一些返回概率性的答案。有些以问题的形式呈现;其他则使用假设性表达。这些类型的一个共同点是它们都返回一个答案或一个预测。比如,返回预测的模型的机器学习分支被命名为预测机器学习(predictivemachine learning)。这就是我们在本书中关注的机器学习类型。
本书的组织方式为路线图章节类型。本书的章节分为两种类型。大多数章节(第3、5、6、8、9、10、11 和12 章)都包含某一类型的机器学习模型。每章的模型都有相应的例子、公式、代码和习题供你进行仔细学习。其他章节(第4、7 和13 章)包含用于训练、评估和改进机器学习模型的实用技术。值得注意的是,第13 章包含一个真实数据集的端到端示例,你将能够在第13 章中应用前几章中学到的知识。
推荐的学习路径可以通过两种方式使用本书。我推荐逐章线性浏览,这样你会发现,交替进行模型学习和训练模型技术学习是有益的。但是,还有另一种学习路径,即先学习所有模型(第3、5、6、8、9、10、11 和12 章),然后学习训练模型的技术(第4、7 和13 章)。当然,每个人的学习方式有所不同,也可以创建自己的学习路径!
本书共有3 个附录,读者可扫封底二维码下载。附录A 包含每章练习的解答。附录 B 包含一些正式的数学推导,这些数学推导非常有用,但比本书的其余部分更具技术性。如果你想进一步深化理解,附录C 包含我推荐的参考资料和资源列表。
学习要求和学习目标本书提供了一个可靠的预测性机器学习框架。为从本书中获得最大收益,你应该具有视觉思维,还应该掌握基础数学知识,如直线、公式和基本概率图。如果你知道如何编程,尤其是Python 编程,将会很有帮助(尽管不是硬性要求),因为你有机会在整本书的真实数据集中实现和应用多个模型。
掌握描述预测性机器学习中最重要的模型及其工作原理,包括线性回归、逻辑回归、朴素贝叶斯、决策树、神经网络、支持向量机和集成方法。
确定这些模型的优缺点以及使用的参数。
确定这些模型在现实世界中的使用方式,并发现潜在方法,将机器学习应用于你想要解决的任何特定问题上。
了解如何优化、比较并改进这些模型,以构建最佳机器学习模型。
手动编程或使用现有安装包进行编程,并用它们对真实数据集进行预测。
如果你有一个特定的数据集或想要解决某一特定问题,我建议你思考如何将你在本书中学到的知识应用到这一数据集上,或用所学的知识解决问题,并以此为起点实现和实验自己的模型。
本书内容完整,足以自给自足。这意味着除了前面描述的要求之外,本书还介绍了我们需要的每个概念。本书提供了许多参考资料,如果你想更深入地了解这些概念,或者探索更多主题,建议你查看这些参考资料。参考资料都在附录 C 中。可扫封底二维码,下载其中的Resource 文件;该文件中列出了作者提供的一些资源的链接以及YouTube 频道。还可下载第9 章的几幅彩图。
本书使用Python 编写代码,但是,如果你的计划是在没有代码的情况下学习概念,也仍然可以忽略代码而继续学习本书。尽管如此,还是建议你至少看一下代码,以便熟悉本书。
本书附带了一个代码库,大多数章节都会让你有机会从头开始编写算法代码,或者使用一些非常流行的Python 包构建适合给定数据集的模型。请参见可下载的Resource 文件中的说明。本书主要使用的Python 包如下。
NumPy:用于存储数组和执行复杂的数学计算
Pandas:用于存储、操作和分析大型数据集
Matplotlib:用于绘制数据
Turi Create:用于存储和操作数据以及训练机器学习模型
Scikit-Learn:用于训练机器学习模型
Keras (TensorFlow):用于训练神经网络
代码清单中的代码都被格式化为固定宽度的字体,以将其与普通文本分开。有时,代码也会以粗体显示,以突出显示与本章先前步骤不同的代码,例如将新功能添加到现有代码行时。许多情况下,初始源代码已被重新格式化;我们添加了换行符,并重新进行缩进,以适应书中可用的页面空间。可扫封底二维码下载本书的示例代码。
1.1:我是否需要掌握大量的数学和编程背景知识才能理解机器学习
1.2:机器学习究竟是什么
1.3:如何让机器根据数据做出决策?记忆-制定-预测框架
1.4:本章小结
2.1:标签数据和无标签数据的区别
2.2:监督学习:处理标签数据的机器学习分支
2.3:无监督学习:处理无标签数据的机器学习分支
2.4:什么是强化学习
2.5:本章小结
2.6:练习
3.1:问题:预测房屋的价格
3.2:解决方案:建立房价回归模型
3.3:如何让计算机绘制出这条线:线性回归算法
3.4:如何衡量结果?误差函数
3.5:实际应用:使用Turi Create预测房价
3.6:如果数据不在一行怎么办?多项式回归
3.7:参数和超参数
3.8:回归应用
3.9:本章小结
3.10:练习
4.1:使用多项式回归的欠拟合和过拟合示例
4.2:如何让计算机选择正确的模型?测试
4.3:我们在哪里打破了黄金法则,如何解决呢?验证集
4.4:种决定模型复杂度的数值方法:模型复杂度图
4.5:避免过拟合的另一种选择:正则化
4.6:使用Turi Create 进行多项式回归、测试和正则化
4.7:本章小结
4.8:练习
5.1:问题:我们在一个外星球上,听不懂外星人的语言
5.2:如何确定分类器的好坏?误差函数
5.3:如何找到一个好的分类器?感知器算法
5.4:感知器算法编程实现
5.5:感知器算法的应用
5.6:本章小结
5.7:练习
6.1:逻辑分类器:连续版感知器分类器
6.2:如何找到一个好的逻辑分类器?逻辑回归算法
6.3:对逻辑回归算法进行编程
6.4:实际应用:使用Turi Create对IMDB 评论进行分类
6.5:多分类:softmax 函数
6.6:本章小结
6.7:练习
7.1:准确率:模型的正确频率是多少
7.2:如何解决准确率问题?定义不同类型的误差以及如何进行衡量
7.3:一个有用的模型评价工具 ROC 曲线
7.4:本章小结
7.5:练习
8.1:生病还是健康?以贝叶斯定理为主角的故事
8.2:用例:垃圾邮件检测模型
8.3:使用真实数据构建垃圾邮件检测模型
8.4:本章小结
8.5:练习
9.1:问题:需要根据用户可能下载的内容向用户推荐应用
9.2:解决方案:构建应用推荐系统
9.3:超出“是”或“否”之类的问题
9.4:决策树的图形边界
9.5:实际应用:使用Scikit-Learn 构建招生模型
9.6:用于回归的决策树
9.7:应用
9.8:本章小结
9.9:练习
10.1:以更复杂的外星球为例,开启神经网络学习
10.2:训练神经网络
10.3:Keras 中的神经网络编程
10.4:用于回归的神经网络
10.5:用于更复杂数据集的其他架构
10.6:本章小结
10.7:练习
11.1:使用新的误差函数构建更好的分类器
11.2:Scikit-Learn 中的SVM编程
11.3:训练非线性边界的SVM:内核方法
11.4:本章小结
11.5:练习
12.1:获取朋友的帮助
12.2:bagging:随机组合弱学习器以构建强学习器
12.3:AdaBoost:以智能方式组合弱学习器以构建强学习器
12.4:梯度提升:使用决策树构建强学习器
12.5:XGBoost:一种梯度提升的极端方法
12.6:集成方法的应用
12.7:本章小结
12.8:练习
13.1:泰坦尼克号数据集
13.2:清洗数据集:缺失值及其处理方法
13.3:特征工程:在训练模型之前转换数据集中的特征
13.4:训练模型
13.5:调整超参数以找到最佳模型:网格搜索
13.6:使用k 折交叉验证来重用训练和验证数据
13.7:本章小结
13.8:练习
没中奖的小伙伴,如果对此书感兴趣可以点击下方的链接自行购买!机器学习图解(传送门)。
今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,春人的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是春人前进的动力!