猜你喜欢
Python机器学习:基于PyTorch和Scikit-Learn

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

书籍作者:塞巴斯蒂安·拉施卡 ISBN:9787111726814
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6117
创建日期:2024-04-15 发布日期:2024-04-15
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书深入介绍了机器学习领域的基本概念和方法,除介绍了Python机器学习库和用机器学习库搭建神经网络模型的方法外,还介绍了机器学习算法的数学理论、工作原理、使用方法、实现细节以及如何避免机器学习算法实现过程中的常见问题。本书涵盖了多种用于文本和图像分类的机器学习与深度学习方法,以及用于生成新数据的生成对抗网络(GAN)和用于训练智能体的强化学习,还介绍了深度学习的新动态,包括图神经网络和用于自然语言处理(NLP)的大型transformer。本书讲解清晰,示例生动,理论和实践部分相对平衡,既可以作为机器学习领域初学者的入门教程,也可以作为读者开发机器学习项目时的参考书。
编辑推荐
适读人群 :机器学习入门新手,以及计划跟踪机器学习进展的研发人员

本书是一本在PyTorch环境下学习机器学习和深度学习的综合指南,可以作为初学者的入门教程,也可以作为读者开发机器学习项目时的参考书。
本书讲解清晰、示例生动,深入介绍了机器学习方法的基础知识,不仅提供了构建机器学习模型的说明,而且提供了构建机器学习模型和解决实际问题的基本准则。
本书添加了基于PyTorch的深度学习内容,介绍了新版Scikit-Learn。本书涵盖了多种用于文本和图像分类的机器学习与深度学习方法,介绍了用于生成新数据的生成对抗网络(GAN)和用于训练智能体的强化学习。后,本书还介绍了深度学习的新动态,包括图神经网络和用于自然语言处理(NLP)的大型transformer。
无论是机器学习入门新手,还是计划跟踪机器学习进展的研发人员,都可以将本书作为使用Python进行机器学习的不二之选。

前言
通过社交媒体和新闻报道我们已经了解到, 机器学习已成为这个时代非常振奋人心的技
术。 微软、 谷歌、 B / 3 1 、 苹果、 亚马逊、 H 、B 等公司都在机器学习科研与应用方面投入巨资。
机器学习已经成为我们这个时代的流行语, 这并非夸大其词。 机器学习领域为未来的无限可
能开辟了新道路, 已经成为我们日常生活中不可或缺的一部分。 机器学习应用包括手机语音
助手对话、 为顾客推荐商品、 识别信用卡盗刷、 过滤 X 领I1 4 E 垃圾邮件、 自动诊断疾病等。
本书适合有志于进入机器学习领域, 使用机器学习算法解决问题或从事机器学习研究的
人员阅读。 机器学习理论对初学者而言有一定难度, 初学者可以从阅读机器学习书籍并动手
实践机器学习算法入门。
练习实际的机器学习代码示例是一种进入机器学习领域的好方法。 通过具体的示例用所
学的知识解决实际的问题, 可以达到理解概念的目的。 本书除了介绍 或>3 8 N 5 机器学习库和用
机器学习库搭建模型外, 还介绍机器学习算法的数学理论, 这些数学理论对于深入理解机器
学习算法至关重要。 因此, 不同于只专注于实践的书籍, 本书讨论了机器学习算法的工作原
理、 使用方法、 实现细节以及如何避免机器学习算法实现过程中的常见问题。
本书涵盖了机器学习领域的基本概念和方法, 可以让读者全面地了解机器学习领域。 如
果想深入了解机器学习算法, 可以参考本书引用的资源, 这些资源都是机器学习领域最近的
重要突破。
目录

译者序

前言

作者简介

审校者简介


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

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

 1.2 三种机器学习类型2

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

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

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

 1.3 基本术语与符号6

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

1.3.2 机器学习术语8

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

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

1.4.2 训练和选择预测模型9

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

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

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

1.5.2 使用Anaconda Python

软件包管理器11

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

 1.6 本章小结13

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

 2.1 人工神经元——机器学习早期历史一瞥14

2.1.1 人工神经元的定义15

2.1.2 感知机学习规则16

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

2.2.1 面向对象的感知机API19


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

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

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

2.3.2 在Python中实现Adaline30

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

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

 2.4 本章小结41


XIV

第3章 ScikitLearn机器学习分类算法之旅42

 3.1 分类算法的选择42

 3.2 学习ScikitLearn的第一步——训练感知机43

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

3.3.1 逻辑回归与条件概率48

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

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

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

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

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

3.4.1 理解最大分类间隔62

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

3.4.3 ScikitLearn中另外一种实现64

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

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

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

 3.6 决策树学习69

3.6.1 最大化信息增益70

3.6.2 构建决策树73

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

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

 3.8 本章小结81

第4章 构建良好的训练数据集——数据预处理83

 4.1 处理缺失值83

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

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

4.1.3 填补缺失值85

4.1.4 ScikitLearn的估计器86

 4.2 处理类别数据87

4.2.1 用pandas实现类别数据编码88

4.2.2 映射有序特征88

4.2.3 类别标签编码89

4.2.4 标称特征的独热编码90

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

 4.4 使特征具有相同的尺度95

 4.5 选择有意义的特征97

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

4.5.2 L2正则化的几何解释98

4.5.3 L1正则化与稀疏解99

4.5.4 序贯特征选择算法102

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

 4.7 本章小结109

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

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

5.1.1 主成分分析的主要步骤110

5.1.2 提取主成分的步骤112

5.1.3 总方差和被解释的方差114

5.1.4 特征变换115

5.1.5 用ScikitLearn实现主成分分析118

5.1.6 评估特征的贡献120

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

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

5.2.2 线性判别分析基本原理123

5.2.3 计算散布矩阵124

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

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

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

 5.3 非线性降维和可视化130

5.3.1 非线性降维的不足130

5.3.2 使用tSNE可视化数据131

 5.4 本章小结135

XV

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

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

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

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

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

6.2.1 holdout交叉验证140

6.2.2 k折交叉验证140

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

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

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

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

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

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

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

6.4.4 嵌套交叉验证153

 6.5 模型性能评估指标154

6.5.1 混淆矩阵155

6.5.2 精确率和召回率156

6.5.3 绘制ROC曲线158

6.5.4 多分类器评价指标160

6.5.5 处理类别不均衡问题161

 6.6 本章小结163

XVI

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

 7.1 集成学习164

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

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

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

7.2.3 评估和调整集成分类器173

 7.3 bagging——基于bootstrap样本构建集成分类器179

7.3.1 bagging简介179

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

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

7.4.1 boosting的工作原理184

7.4.2 用ScikitLearn实现AdaBoost188

 7.5 梯度boosting——基于损失梯度训练集成分类器191

7.5.1 比较AdaBoost与梯度boosting191

7.5.2 通用的梯度boosting算法概述191

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

7.5.4 用梯度boosting分类的例子194

7.5.5 使用XGBoost196

 7.6 本章小结197

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

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

8.1.1 获取影评数据集199

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

 8.2 词袋模型201

8.2.1 将单词转换为特征向量201

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

8.2.3 文本数据清洗204

8.2.4 将文档处理成token206

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

 8.4 处理更大的数据——在线算法和核外学习方法210

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

8.5.1 使用LDA分解文本

文档214

8.5.2 用ScikitLearn实现LDA214

 8.6 本章小结217

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

 9.1 线性回归简介218

9.1.1 简单线性回归218

9.1.2 多元线性回归219

 9.2 探索艾姆斯住房数据集220

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

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

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

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

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

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

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

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

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

 9.7 将线性回归模型转化为曲线——多项式回归238

9.7.1 使用ScikitLearn添加多项式项239

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

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

9.8.1 决策树回归243

9.8.2 随机森林回归245

 9.9 本章小结247

XVII

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

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

10.1.1 用ScikitLearn实现k均值聚类248

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

10.1.3 硬聚类与软聚类253

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

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

 10.2 把簇组织成层次树260

10.2.1 自底向上的聚类260

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

10.2.3 热度图与树状图结合265

10.2.4 通过ScikitLearn进行凝聚聚类266

 10.3 通过DBSCAN定位高密度区域267

 10.4 本章小结272


XVIII

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

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

11.1.1 单层神经网络274

11.1.2 多层神经网络结构275

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

 11.2 识别手写数字279

11.2.1 获取并准备MNIST数据集279

11.2.2 实现多层感知机282

11.2.3 神经网络训练代码287

11.2.4 评估神经网络的性能291

 11.3 训练人工神经网络295

11.3.1 损失函数的计算295

11.3.2 理解反向传播296

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

 11.4 关于神经网络的收敛性300

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

 11.6 本章小结301

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

 12.1 PyTorch和模型的训练性能302

12.1.1 性能挑战302

12.1.2 什么是PyTorch303

12.1.3 如何学习PyTorch304

 12.2 学习PyTorch的第一步304

12.2.1 安装PyTorch305

12.2.2 在PyTorch中创建张量306

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

12.2.4 张量数学运算307

12.2.5 拆分、堆叠和连接张量309

 12.3 在PyTorch中构建输入pipeline310

12.3.1 使用已有张量创建PyTorch DataLoader311

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

12.3.3 乱序、批处理和重复313

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

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

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

12.4.1 PyTorch神经网络模块322

12.4.2 构建线性回归模型322

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

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

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

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

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

12.5.1 回顾逻辑函数331

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

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

12.5.4 整流线性单元335

 12.6 本章小结337

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

 13.1 PyTorch的主要功能338

 13.2 PyTorch的计算图339

13.2.1 理解计算图339

13.2.2 在PyTorch中创建计算图339

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

 13.4 通过自动微分计算梯度342

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

13.4.2 自动微分343

13.4.3 对抗样本344

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

13.5.1 使用nn.Sequential实现模型344

13.5.2 选择损失函数345

13.5.3 解决XOR分类问题346

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

13.5.5 使用PyTorch编写自定义层352

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

13.6.1 使用特征列357

13.6.2 训练DNN回归模型360

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


XIX

 13.8 高级PyTorch API:PyTorch Lightning简介364

13.8.1 构建PyTorch Lightning模型365

13.8.2 为Lightning 设置数据加载器367

13.8.3 使用PyTorch Lightning Trainer类训练模型369

13.8.4 使用TensorBoard评估模型370

 13.9 本章小结373

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

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

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

14.1.2 离散卷积376

14.1.3 下采样层383

XX

 14.2 构建卷积神经网络385

14.2.1 处理多个输入通道385

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

14.2.3 分类任务的损失函数390

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

14.3.1 多层卷积神经网络结构392

14.3.2 数据加载和预处理393

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

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

14.4.1 加载CelebA数据集400

14.4.2 图像转换和数据增广401

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

 14.5 本章小结413

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

 15.1 序列数据415

15.1.1 序列数据建模415

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

15.1.3 序列数据的表示416

15.1.4 序列建模方法417

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

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

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

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

15.2.4 远距离学习面临的问题424

15.2.5 长短期记忆网络425

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

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

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

 15.4 本章小结448

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

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

 16.2 自注意力机制453

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

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

 16.5 用PyTorch微调BERT模型478

 16.6 本章小结489

XXI

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

 17.1 生成对抗网络491

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

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

 17.4 其他生成对抗网络应用529

 17.5 本章小结530

XXII

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

 18.1 图数据简介531

 18.2 理解图卷积534

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

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

 18.5 本章小结559

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

 19.1 从经验中学习概述560

 19.2 强化学习的理论基础563

 19.3 强化学习算法569

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

 19.5 深度Q学习概览588

 19.6 本章小结及本书总结595


短评

好好好好好好好好好好好

2023-08-22 22:48:58

内容丰富详实,值得拥有。

2023-08-10 06:55:52

很棒的购物体验,非常棒的产品。

2023-08-09 00:19:33

很开心的一次购物,又快又放心。

2023-07-14 16:45:51

非常不错,送货及时,都是正品,服务到位。

2023-06-25 16:45:18

产品特色