Python机器学习:基于PyTorch和Scikit-Learn

Python机器学习:基于PyTorch和Scikit-Learn

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

从初学者角度,带你全面了解现代机器学习技术。

内容简介

本书是一本在PyTorch环境下学习机器学习和深度学习的综合指南,可以作为初学者的入门教程,也可以作为读者开发机器学习项目时的参考书。

本书讲解清晰、示例生动,深入介绍了机器学习方法的基础知识,不仅提供了构建机器学习模型的说明,而且提供了构建机器学习模型和解决实际问题的基本准则。本书添加了基于PyTorch的深度学习内容,介绍了新版Scikit-Learn。本书涵盖了多种用于文本和图像分类的机器学习与深度学习方法,介绍了用于生成新数据的生成对抗网络(GAN)和用于训练智能体的强化学习。

本书还介绍了深度学习的新动态,包括图神经网络和用于自然语言处理(NLP)的大型transformer。

作者简介

作者塞巴斯蒂安·拉施卡,威斯康星大学麦迪逊分校统计学副教授,专注于机器学习和深度学习研究。他拥有密歇根州立大学的博士学位,在计算生物学领域提出了几种新的计算方法,曾被科技博客Analytics Vidhya评为GitHub上极具影响力的数据科学家之一。他在Python编程方面拥有多年经验,同时还多次参加数据科学应用与机器学习领域的研讨会。

章节目录

版权信息

译者序

前言

作者简介

审校者简介

CHAPTER 1 第1章 赋予计算机从数据中学习的能力

1.1 将数据转化为知识的智能系统

1.2 三种机器学习类型

1.2.1 用于预测未来的监督学习

1.2.2 解决交互问题的强化学习

1.2.3 发现数据中隐藏规律的无监督学习

1.3 基本术语与符号

1.3.1 本书中使用的符号和约定

1.3.2 机器学习术语

1.4 构建机器学习系统的路线图

1.4.1 数据预处理——让数据可用

1.4.2 训练和选择预测模型

1.4.3 使用未见过的数据对模型进行评估

1.5 使用Python实现机器学习算法

1.5.1 从Python Package Index中安装Python和其他软件包

1.5.2 使用Anaconda Python软件包管理器

1.5.3 科学计算、数据科学和机器学习软件包

1.6 本章小结

CHAPTER 2 第2章 训练简单的机器学习分类算法

2.1 人工神经元

2.1.1 人工神经元的定义

2.1.2 感知机学习规则

2.2 使用Python实现感知机学习算法

2.2.1 面向对象的感知机API

2.2.2 使用鸢尾花数据集训练感知机

2.3 自适应线性神经元与算法收敛

2.3.1 使用梯度下降法最小化损失函数

2.3.2 在Python中实现Adaline

2.3.3 通过特征缩放改进梯度下降

2.3.4 大规模机器学习与随机梯度下降

2.4 本章小结

CHAPTER 3 第3章 Scikit-Learn机器学习分类算法之旅

3.1 分类算法的选择

3.2 学习Scikit-Learn的第一步

3.3 用逻辑回归算法建模分类概率

3.3.1 逻辑回归与条件概率

3.3.2 用逻辑损失函数更新模型权重

3.3.3 从Adaline的代码实现到逻辑回归的代码实现

3.3.4 用Scikit-Learn训练逻辑回归模型

3.3.5 使用正则化避免模型过拟合

3.4 基于最大分类间隔的支持向量机

3.4.1 理解最大分类间隔

3.4.2 使用松弛变量解决非线性可分问题

3.4.3 Scikit-Learn中另外一种实现

3.5 使用核支持向量机求解非线性问题

3.5.1 处理线性不可分数据的核方法

3.5.2 使用核方法在高维空间中寻找分离超平面

3.6 决策树学习

3.6.1 最大化信息增益

3.6.2 构建决策树

3.6.3 多棵决策树组成随机森林

3.7 基于惰性学习策略的k近邻算法

3.8 本章小结

CHAPTER 4 第4章 构建良好的训练数据集

4.1 处理缺失值

4.1.1 识别表格数据中的缺失值

4.1.2 删除含有缺失值的样本或特征

4.1.3 填补缺失值

4.1.4 Scikit-Learn的估计器

4.2 处理类别数据

4.2.1 用pandas实现类别数据编码

4.2.2 映射有序特征

4.2.3 类别标签编码

4.2.4 标称特征的独热编码

4.3 将数据集划分为训练数据集和测试数据集

4.4 使特征具有相同的尺度

4.5 选择有意义的特征

4.5.1 用L1和L2正则化对模型复杂度进行惩罚

4.5.2 L2正则化的几何解释

4.5.3 L1正则化与稀疏解

4.5.4 序贯特征选择算法

4.6 用随机森林评估特征重要性

4.7 本章小结

CHAPTER 5 第5章 通过降维方法压缩数据

5.1 无监督降维的主成分分析方法

5.1.1 主成分分析的主要步骤

5.1.2 提取主成分的步骤

5.1.3 总方差和被解释的方差

5.1.4 特征变换

5.1.5 用Scikit-Learn实现主成分分析

5.1.6 评估特征的贡献

5.2 监督数据压缩的线性判别分析方法

5.2.1 主成分分析与线性判别分析

5.2.2 线性判别分析基本原理

5.2.3 计算散布矩阵

5.2.4 为新特征子空间选择线性判别式

5.2.5 将样本投影到新的特征空间

5.2.6 用Scikit-Learn实现线性判别分析

5.3 非线性降维和可视化

5.3.1 非线性降维的不足

5.3.2 使用t-SNE可视化数据

5.4 本章小结

CHAPTER 6 第6章 模型评估和超参数调优的最佳实践

6.1 使用pipeline方法简化工作流程

6.1.1 加载威斯康星乳腺癌数据集

6.1.2 在pipeline中集成转换器和估计器

6.2 使用k折交叉验证评估模型性能

6.2.1 holdout交叉验证

6.2.2 k折交叉验证

6.3 用学习曲线和验证曲线调试算法

6.3.1 使用学习曲线解决偏差和方差问题

6.3.2 使用验证曲线解决过拟合和欠拟合问题

6.4 通过网格搜索微调机器学习模型

6.4.1 通过网格搜索调整超参数

6.4.2 通过随机搜索更广泛地探索超参数的配置

6.4.3 连续减半超参数的搜索算法

6.4.4 嵌套交叉验证

6.5 模型性能评估指标

6.5.1 混淆矩阵

6.5.2 精确率和召回率

6.5.3 绘制ROC曲线

6.5.4 多分类器评价指标

6.5.5 处理类别不均衡问题

6.6 本章小结

CHAPTER 7 第7章 组合不同模型的集成学习

7.1 集成学习

7.2 通过绝对多数投票组合分类器

7.2.1 实现一个简单的基于绝对多数投票的集成分类器

7.2.2 使用绝对多数投票原则进行预测

7.2.3 评估和调整集成分类器

7.3 bagging

7.3.1 bagging简介

7.3.2 使用bagging对葡萄酒数据集中的样本进行分类

7.4 通过自适应boosting提高弱学习器的性能

7.4.1 boosting的工作原理

7.4.2 用Scikit-Learn实现AdaBoost

7.5 梯度boosting

7.5.1 比较AdaBoost与梯度boosting

7.5.2 通用的梯度boosting算法概述

7.5.3 解释用于分类的梯度boosting算法

7.5.4 用梯度boosting分类的例子

7.5.5 使用XGBoost

7.6 本章小结

CHAPTER 8 第8章 用机器学习进行情感分析

8.1 对IMDb影评数据进行文本处理

8.1.1 获取影评数据集

8.1.2 将影评数据集预处理成更易使用的格式

8.2 词袋模型

8.2.1 将单词转换为特征向量

8.2.2 通过词频-逆文档频率评估单词的相关性

8.2.3 文本数据清洗

8.2.4 将文档处理成token

8.3 训练用于文档分类的逻辑回归模型

8.4 处理更大的数据

8.5 用潜在狄利克雷分配实现主题建模

8.5.1 使用LDA分解文本文档

8.5.2 用Scikit-Learn实现LDA

8.6 本章小结

CHAPTER 9 第9章 预测连续目标变量的回归分析

9.1 线性回归简介

9.1.1 简单线性回归

9.1.2 多元线性回归

9.2 探索艾姆斯住房数据集

9.2.1 将艾姆斯住房数据集加载到DataFrame中

9.2.2 可视化数据集的重要特征

9.2.3 使用相关矩阵查看相关性

9.3 最小二乘线性回归模型的实现

9.3.1 用梯度下降法求解回归参数

9.3.2 用Scikit-Learn估计回归模型的系数

9.4 使用RANSAC拟合稳健回归模型

9.5 评估线性回归模型的性能

9.6 使用正则化方法进行回归

9.7 将线性回归模型转化为曲线

9.7.1 使用Scikit-Learn添加多项式项

9.7.2 建模艾姆斯住房数据集中的非线性关系

9.8 使用随机森林处理非线性关系

9.8.1 决策树回归

9.8.2 随机森林回归

9.9 本章小结

CHAPTER 10 第10章 处理无标签数据的聚类分析

10.1 使用k均值算法对样本分组

10.1.1 用Scikit-Learn实现k均值聚类

10.1.2 k均值++——更聪明的簇初始化方法

10.1.3 硬聚类与软聚类

10.1.4 用肘方法求解最优簇的数量

10.1.5 通过轮廓图量化聚类质量

10.2 把簇组织成层次树

10.2.1 自底向上的聚类

10.2.2 在距离矩阵上进行分层聚类

10.2.3 热度图与树状图结合

10.2.4 通过Scikit-Learn进行凝聚聚类

10.3 通过DBSCAN定位高密度区域

10.4 本章小结

CHAPTER 11 第11章 从零开始实现多层人工神经网络

11.1 用人工神经网络建立复杂函数模型

11.1.1 单层神经网络

11.1.2 多层神经网络结构

11.1.3 利用前向传播激活神经网络

11.2 识别手写数字

11.2.1 获取并准备MNIST数据集

11.2.2 实现多层感知机

11.2.3 神经网络训练代码

11.2.4 评估神经网络的性能

11.3 训练人工神经网络

11.3.1 损失函数的计算

11.3.2 理解反向传播

11.3.3 通过反向传播训练神经网络

11.4 关于神经网络的收敛性

11.5 关于神经网络实现的最后几句话

11.6 本章小结

CHAPTER 12 第12章 用PyTorch并行训练神经网络

12.1 PyTorch和模型的训练性能

12.1.1 性能挑战

12.1.2 什么是PyTorch

12.1.3 如何学习PyTorch

12.2 学习PyTorch的第一步

12.2.1 安装PyTorch

12.2.2 在PyTorch中创建张量

12.2.3 对张量形状和数据类型进行操作

12.2.4 张量数学运算

12.2.5 拆分、堆叠和连接张量

12.3 在PyTorch中构建输入pipeline

12.3.1 使用已有张量创建PyTorch DataLoader

12.3.2 将两个张量组合成一个联合数据集

12.3.3 乱序、批处理和重复

12.3.4 用存储在本地硬盘的文件创建数据集

12.3.5 从torchvision.datasets库中获取数据集

12.4 在PyTorch中构建神经网络模型

12.4.1 PyTorch神经网络模块

12.4.2 构建线性回归模型

12.4.3 使用torch.nn和torch.optim模块训练模型

12.4.4 构建多层感知机对鸢尾花数据集分类

12.4.5 在测试数据集上评估训练好的模型

12.4.6 保存和重新加载训练好的模型

12.5 为多层神经网络选择激活函数

12.5.1 回顾逻辑函数

12.5.2 使用softmax函数估计多分类中的类别概率

12.5.3 使用双曲正切函数拓宽输出范围

12.5.4 整流线性单元

12.6 本章小结

CHAPTER 13 第13章 深入探讨PyTorch的工作原理

13.1 PyTorch的主要功能

13.2 PyTorch的计算图

13.2.1 理解计算图

13.2.2 在PyTorch中创建计算图

13.3 用于存储和更新模型参数的PyTorch张量

13.4 通过自动微分计算梯度

13.4.1 计算损失函数关于可微变量的梯度

13.4.2 自动微分

13.4.3 对抗样本

13.5 使用torch.nn模块简化常见结构

13.5.1 使用nn.Sequential实现模型

13.5.2 选择损失函数

13.5.3 解决XOR分类问题

13.5.4 使用nn.Module灵活构建模型

13.5.5 使用PyTorch编写自定义层

13.6 项目1:预测汽车的燃油效率

13.6.1 使用特征列

13.6.2 训练DNN回归模型

13.7 项目2:分类MNIST手写数字

13.8 高级PyTorch API:PyTorch Lightning简介

13.8.1 构建PyTorch Lightning模型

13.8.2 为Lightning设置数据加载器

13.8.3 使用PyTorch Lightning Trainer类训练模型

13.8.4 使用TensorBoard评估模型

13.9 本章小结

CHAPTER 14 第14章 使用深度卷积神经网络对图像进行分类

14.1 卷积神经网络的组成模块

14.1.1 了解卷积神经网络和层次特征

14.1.2 离散卷积

14.1.3 下采样层

14.2 构建卷积神经网络

14.2.1 处理多个输入通道

14.2.2 使用L2范数和dropout对神经网络正则化

14.2.3 分类任务的损失函数

14.3 使用PyTorch实现深度卷积神经网络

14.3.1 多层卷积神经网络结构

14.3.2 数据加载和预处理

14.3.3 使用torch.nn模块实现卷积神经网络

14.4 使用卷积神经网络对人脸图像进行微笑分类

14.4.1 加载CelebA数据集

14.4.2 图像转换和数据增广

14.4.3 训练卷积神经网络微笑分类器

14.5 本章小结

CHAPTER 15 第15章 用循环神经网络对序列数据建模

15.1 序列数据

15.1.1 序列数据建模

15.1.2 序列数据与时间序列数据

15.1.3 序列数据的表示

15.1.4 序列建模方法

15.2 用于序列数据建模的循环神经网络

15.2.1 循环神经网络的循环机制

15.2.2 循环神经网络激活值计算

15.2.3 隐藏层循环与输出层循环

15.2.4 远距离学习面临的问题

15.2.5 长短期记忆网络

15.3 在PyTorch中实现循环神经网络

15.3.1 项目1:基于IMDb影评进行情感分析

15.3.2 项目2:在PyTorch中实现字符级语言建模

15.4 本章小结

CHAPTER 16 第16章 transformer:利用注意力机制改善自然语言处理效果

16.1 带有注意力机制的循环神经网络

16.1.1 帮助循环神经网络获取信息的注意力机制

16.1.2 循环神经网络中最初的注意力机制

16.1.3 用双向循环神经网络模型处理输入数据

16.1.4 根据上下文向量得到输出

16.1.5 计算注意力权重

16.2 自注意力机制

16.2.1 自注意力机制的基本形式

16.2.2 自注意力机制的参数化:缩放点积注意力

16.3 注意力是唯一需要的:最初的transformer

16.3.1 通过多头注意力编码上下文嵌入向量

16.3.2 学习语言模型:解码器和掩码多头注意力

16.3.3 实现细节:位置编码和层归一化

16.4 利用未标注的数据构建大型语言模型

16.4.1 预训练和微调transformer模型

16.4.2 使用未标注数据的GPT模型

16.4.3 使用GPT-2生成新文本

16.4.4 双向预训练的BERT模型

16.4.5 两全其美的模型:BART

16.5 用PyTorch微调BERT模型

16.5.1 加载IMDb影评数据集

16.5.2 数据集分词

16.5.3 加载和微调预训练BERT模型

16.5.4 使用Trainer API微调transformer

16.6 本章小结

CHAPTER 17 第17章 用于合成新数据的生成对抗网络

17.1 生成对抗网络

17.1.1 自编码器

17.1.2 用于合成新数据的生成模型

17.1.3 用生成对抗网络生成新样本

17.1.4 理解生成对抗网络模型中生成器和判别器网络的损失函数

17.2 从零开始实现生成对抗网络

17.2.1 用谷歌Colab训练生成对抗网络模型

17.2.2 实现生成器和判别器网络

17.2.3 定义训练数据集

17.2.4 训练生成对抗网络模型

17.3 用卷积GAN和Wasserstein GAN提高生成图像的质量

17.3.1 转置卷积

17.3.2 批归一化

17.3.3 实现生成器和判别器

17.3.4 两个分布之间的差异度度量

17.3.5 在生成对抗网络实践中使用EM距离

17.3.6 梯度惩罚

17.3.7 使用WGAN-GP实现深度卷积生成对抗网络

17.3.8 模式坍塌

17.4 其他生成对抗网络应用

17.5 本章小结

CHAPTER 18 第18章 用于捕获图数据关系的图神经网络

18.1 图数据简介

18.1.1 无向图

18.1.2 有向图

18.1.3 标签图

18.1.4 将分子结构表示为图

18.2 理解图卷积

18.2.1 图卷积的基本原理

18.2.2 实现一个基本的图卷积函数

18.3 用PyTorch从零开始实现图神经网络

18.3.1 定义NodeNetwork模型

18.3.2 NodeNetwork图卷积层编码

18.3.3 添加一个全局池化层处理大小不同的图

18.3.4 准备数据加载工具

18.3.5 使用NodeNetwork进行预测

18.3.6 使用PyTorch Geometric库实现图神经网络

18.4 其他图神经网络层和最新的进展

18.4.1 谱图卷积

18.4.2 池化

18.4.3 数据归一化

18.4.4 图神经网络文献

18.5 本章小结

CHAPTER 19 第19章 在复杂环境中做决策的强化学习

19.1 从经验中学习概述

19.1.1 了解强化学习

19.1.2 智能体与环境

19.2 强化学习的理论基础

19.2.1 马尔可夫决策过程

19.2.2 阶段性任务与持续性任务

19.2.3 强化学习术语

19.2.4 使用贝尔曼方程的动态规划

19.3 强化学习算法

19.3.1 动态规划

19.3.2 蒙特卡罗强化学习

19.3.3 时序差分学习

19.4 实现第一个强化学习算法

19.4.1 OpenAI Gym工具包介绍

19.4.2 用Q学习解决网格世界问题

19.5 深度Q学习概览

19.5.1 训练深度Q学习网络模型

19.5.2 实现深度Q学习算法

19.6 本章小结及本书总结

Python机器学习:基于PyTorch和Scikit-Learn是2023年由机械工业出版社出版,作者[美] 塞巴斯蒂安·拉施卡。

得书感谢您对《Python机器学习:基于PyTorch和Scikit-Learn》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python机器学习开发实战 电子书
Python机器学习入门,以实战为重点,配有大量代码和案例,简单、快速、易学。
机器学习与Python实践 电子书
机器学习理论实践全书,12章内容丰富,适合各层次读者。
Python机器学习入门与实战 电子书
本书以零基础讲解为特色,用实例引导读者学习,深入浅出地介绍Python机器学习的相关知识和实战技能。
Python机器学习编程与实战 电子书
本书共8章,内容包括Python概述、NumPy数值计算、pandas基础、pandas进阶、Matplotlib绘图、scikit-learn、餐饮企业综合分析与预测、通信运营商客户流失分析与预测。前6章设置了选择题、填空题和操作题,后两章设置了操作题,希望通过练习和操作实践,读者可以巩固所学的内容。
PyTorch深度学习实战 电子书
1.PyTorch核心开发者教你使用PyTorch创建神经网络和深度学习系统的实用指南。2.详细讲解整个深度学习管道的关键实践,包括PyTorch张量API、用Python加载数据、监控训练以及对结果进行可视化。3.PyTorch核心知识+真实、完整的案例项目,快速提升读者动手能力:a.全面掌握PyTorch相关的API的使用方法以及系统掌握深度学习的理论和方法;b.快速从零开始构建一个真实示例:肿瘤图像分类器;c.轻松学会使用PyTorch实现各种神经网络模型来解决具体的深度学习问题;d.章尾附有“练习题”,巩固提升所学知识;更有配套的代码文件可下载并动手实现。4.PyTorch联合创作者SoumithChintala作序推荐!5.书中所有代码都是基于Python3.6及以上的版本编写的,提供源代码下载。