- 商品参数
-
- 作者:
塞巴斯蒂安·拉施卡(Sebastian著
- 出版社:机械工业出版社
- 出版时间:2021-06
- 开本:16开
- ISBN:9780437322110
- 版权提供:机械工业出版社
深度学习“四大名著”之一、美亚畅销书全新升级,《ACM计算评论》年度最佳奖图书,Python机器学习入门教程
商品基本信息 |
|
商品名称: | Python机器学习(原书第3版) |
作 者: | 塞巴斯蒂安·拉施卡(Sebastian Raschka),瓦希德·米尔贾利利(Vahid Mirjalili) |
市 场 价: | 149.00元 |
ISBN 号: | 9787111681373 |
出版日期: | 2021-06 |
页 数: | 480 |
字 数: | 500千字 |
出 版 社: | 机械工业出版社 |
目录 |
译者序 前言 作者简介 审校者简介 第1章 赋予计算机从数据中学习的能力1 1.1 构建能把数据转换为知识的智能机器1 1.2 三种不同类型的机器学习1 1.2.1 用监督学习预测未来2 1.2.2 用强化学习解决交互问题3 1.2.3 用无监督学习发现隐藏的结构4 1.3 基本术语与符号4 1.3.1 本书中使用的符号和约定5 1.3.2 机器学习的术语6 1.4 构建机器学习系统的路线图6 1.4.1 预处理——整理数据6 1.4.2 训练和选择预测模型7 1.4.3 评估模型并对未曾谋面的数据进行预测8 1.5 将Python用于机器学习8 1.5.1 利用Python Package Index安装Python及其他软件包8 1.5.2 采用Anaconda Python发行版和软件包管理器8 1.5.3 用于科学计算、数据科学和机器学习的软件包9 1.6 本章小结9 第2章 训练简单的机器学习分类算法10 2.1 人工神经元——机器学习的早期历史10 2.1.1 人工神经元的正式定义11 2.1.2 感知器学习规则12 2.2 用Python实现感知器学习算法14 2.2.1 面向对象的感知器API14 2.2.2 在鸢尾花数据集上训练感知器模型16 2.3 自适应线性神经元和学习收敛20 2.3.1 通过梯度下降最小化代价函数21 2.3.2 用Python实现Adaline22 2.3.3 通过特征缩放改善梯度下降26 2.3.4 大规模机器学习与随机梯度下降27 2.4 本章小结31 第3章 scikit-learn机器学习分类器32 3.1 选择分类算法32 3.2 了解scikit-learn的第一步——训练感知器32 3.3 基于逻辑回归的分类概率建模37 3.3.1 逻辑回归与条件概率37 3.3.2 学习逻辑代价函数的权重39 3.3.3 将Adaline实现转换为一个逻辑回归算法41 3.3.4 用scikit-learn训练逻辑回归模型44 3.3.5 通过正则化解决过拟合问题46 3.4 使用支持向量机最大化分类间隔48 3.4.1 对分类间隔最大化的直观认识48 3.4.2 用松弛变量解决非线性可分问题50 3.4.3 其他的scikit-learn实现51 3.5 用核支持向量机求解非线性问题51 3.5.1 处理线性不可分数据的核方法52 3.5.2 利用核技巧发现高维空间的分离超平面53 3.6 决策树学习56 3.6.1 最大化信息增益——获得最大收益56 3.6.2 构建决策树59 3.6.3 多个决策树的随机森林组合62 3.7 k-近邻——一种惰性学习算法64 3.8 本章小结66 第4章 构建良好的训练数据集——数据预处理67 4.1 处理缺失数据67 4.1.1 识别数据中的缺失值67 4.1.2 删除有缺失值的训练样本或特征68 4.1.3 填补缺失值69 4.1.4 了解scikit-learn估计器API69 4.2 处理类别数据70 4.2.1 用pandas实现类别数据的编码70 4.2.2 映射序数特征71 4.2.3 为分类标签编码71 4.2.4 为名义特征做独热编码72 4.3 把数据集划分为独立的训练数据集和测试数据集74 4.4 保持相同的特征缩放76 4.5 选择有意义的特征78 4.5.1 L1和L2正则化对模型复杂度的惩罚78 4.5.2 L2正则化的几何解释78 4.5.3 L1正则化的稀疏解决方案79 4.5.4 序列特征选择算法82 4.6 用随机森林评估特征的重要性86 4.7 本章小结88 第5章 通过降维压缩数据89 5.1 用主成分分析实现无监督降维89 5.1.1 主成分分析的主要步骤89 5.1.2 逐步提取主成分90 5.1.3 总方差和解释方差92 5.1.4 特征变换93 5.1.5 用scikit-learn实现主成分分析95 5.2 基于线性判别分析的监督数据压缩97 5.2.1 主成分分析与线性判别分析97 5.2.2 线性判别分析的内部工作原理98 5.2.3 计算散布矩阵98 5.2.4 为新特征子空间选择线性判别100 5.2.5 将样本投影到新的特征空间102 5.2.6 用scikit-learn实现LDA103 5.3 非线性映射的核主成分分析104 5.3.1 核函数与核技巧104 5.3.2 用Python实现核主成分分析107 5.3.3 投影新的数据点112 5.3.4 scikit-learn的核主成分分析115 5.4 本章小结116 第6章 模型评估和超参数调优的最佳实践117 6.1 用流水线方法简化工作流117 6.1.1 加载威斯康星乳腺癌数据集117 6.1.2 在流水线中集成转换器和估计器118 6.2 使用k折交叉验证评估模型性能120 6.2.1 holdout方法120 6.2.2 k折交叉验证121 6.3 用学习和验证曲线调试算法123 6.3.1 用学习曲线诊断偏差和方差问题124 6.3.2 用验证曲线解决过拟合和欠拟合问题126 6.4 通过网格搜索调优机器学习模型127 6.4.1 通过网格搜索调优超参数128 6.4.2 通过嵌套式交叉验证选择算法129 6.5 了解不同的性能评估指标130 6.5.1 分析混淆矩阵130 6.5.2 优化分类模型的精度和召回率131 6.5.3 绘制ROC曲线133 6.5.4 多元分类评分指标135 6.5.5 处理类不均衡问题135 6.6 本章小结137 第7章 组合不同模型的集成学习138 7.1 集成学习138 7.2 通过多数票机制组合分类器140 7.2.1 实现一个简单的多数票分类器141 7.2.2 用多数票原则进行预测145 7.2.3 评估和优化集成分类器147 7.3 bagging——基于bootstrap样本构建集成分类器151 7.3.1 bagging简介151 7.3.2 应用bagging对葡萄酒数据集中的样本分类152 7.4 通过自适应boosting提高弱学习机的性能155 7.4.1 boosting的工作原理156 7.4.2 用scikit-learn实现AdaBoost158 7.5 本章小结161 第8章 用机器学习进行情感分析162 8.1 为文本处理预备好IMDb电影评论数据162 8.1.1 获取电影评论数据集162 8.1.2 把电影评论数据集预处理成更方便的格式163 8.2 词袋模型介绍164 8.2.1 把单词转换成特征向量164 8.2.2 通过词频-逆文档频率评估单词相关性166 8.2.3 清洗文本数据167 8.2.4 把文档处理成令牌168 8.3 训练用于文档分类的逻辑回归模型170 8.4 处理更大的数据集——在线算法和核外学习172 8.5 用潜在狄利克雷分配实现主题建模174 8.5.1 使用LDA分解文本文档175 8.5.2 scikit-learn中的LDA175 8.6 本章小结178 第9章 将机器学习模型嵌入Web应用179 9.1 序列化拟合的scikit-learn估计器179 9.2 搭建SQLite数据库存储数据181 9.3 用Flask开发Web应用183 9.3.1 第一个Flask Web应用183 9.3.2 表单验证与渲染185 9.4 将电影评论分类器转换为Web应用189 9.4.1 文件与文件夹——研究目录树190 9.4.2 实现主应用app.py190 9.4.3 建立评论表单192 9.4.4 创建结果页面模板193 9.5 在公共服务器上部署Web应用195 9.5.1 创建PythonAnywhere账户195 9.5.2 上传电影分类器应用195 9.5.3 更新电影分类器196 9.6 本章小结198 第10章 用回归分析预测连续目标变量199 10.1 线性回归简介199 10.1.1 简单线性回归199 10.1.2 多元线性回归200 10.2 探索住房数据集200 10.2.1 加载住房数据200 10.2.2 可视化数据集的重要特点202 10.2.3 用相关矩阵查看关系203 10.3 普通最小二乘线性回归模型的实现205 10.3.1 用梯度下降方法求解回归参数205 10.3.2 通过scikit-learn估计回归模型的系数207 10.4 利用RANSAC拟合鲁棒回归模型209 10.5 评估线性回归模型的性能211 10.6 用正则化方法进行回归213 10.7 将线性回归模型转换为曲线——多项式回归214 10.7.1 用scikit-learn增加多项式项214 10.7.2 为住房数据集中的非线性关系建模216 10.8 用随机森林处理非线性关系218 10.8.1 决策树回归218 10.8.2 随机森林回归219 10.9 本章小结221 第11章 用聚类分析处理无标签数据223 11.1 用k-均值进行相似性分组223 11.1.1 用scikit-learn实现k-均值聚类223 11.1.2 k-均值++——更聪明地设置初始集群质心的方法226 11.1.3 硬聚类与软聚类227 11.1.4 用肘部方法求解最优集群数228 11.1.5 通过轮廓图量化聚类质量229 11.2 把集群组织成层次树233 11.2.1 以自下而上的方式聚类233 11.2.2 在距离矩阵上进行层次聚类234 11.2.3 热度图附加树状图236 11.2.4 通过scikit-learn进行凝聚聚类238 11.3 通过DBSCAN定位高密度区域238 11.4 本章小结242 第12章 从零开始实现多层人工神经网络243 12.1 用人工神经网络建立复杂函数模型243 12.1.1 单层神经网络回顾244 12.1.2 多层神经网络体系结构简介245 12.1.3 利用正向传播激活神经网络247 12.2 识别手写数字249 12.2.1 获取并准备MNIST数据集249 12.2.2 实现一个多层感知器254 12.3 训练人工神经网络262 12.3.1 逻辑代价函数的计算262 12.3.2 理解反向传播264 12.3.3 通过反向传播训练神经网络265 12.4 关于神经网络的收敛性267 12.5 关于神经网络实现的最后几句话268 12.6 本章小结268 第13章 用TensorFlow并行训练神经网络269 13.1 TensorFlow与模型训练的性能269 13.1.1 性能挑战269 13.1.2 什么是TensorFlow270 13.1.3 如何学习TensorFlow271 13.2 学习TensorFlow的第一步271 13.2.1 安装TensorFlow271 13.2.2 在TensorFlow中创建张量272 13.2.3 对张量形状和数据类型进行操作273 13.2.4 对张量进行数学运算273 13.2.5 拆分、堆叠和连接张量275 13.3 用TensorFlow的Dataset API构建输入流水线276 13.3.1 用现存张量创建TensorFlow的数据集276 13.3.2 把两个张量整合成一个联合数据集277 13.3.3 洗牌、批处理和重复278 13.3.4 从本地磁盘的文件创建数据集280 13.3.5 从tensorflow_datasets获取可用的数据集282 13.4 在TensorFlow中构建神经网络模型286 13.4.1 TensorFlow Keras API(tf.keras)287 13.4.2 构建线性回归模型287 13.4.3 通过.compile()和.fit()方法训练模型291 13.4.4 在鸢尾花数据集上构建多层分类感知器291 13.4.5 在测试数据集上评估训练后的模型294 13.4.6 保存并重新加载训练后的模型294 13.5 选择多层神经网络的激活函数295 13.5.1 关于逻辑函数的回顾295 13.5.2 在多元分类中调用softmax函数评估分类概率296 13.5.3 利用双曲正切拓宽输出范围297 13.5.4 修正线性单元激活函数299 13.6 本章小结300 第14章 深入探讨TensorFlow的工作原理301 14.1 TensorFlow的主要功能301 14.2 TensorFlow的计算图:迁移到TensorFlow v2302 14.2.1 了解TensorFlow的计算图302 14.2.2 在TensorFlow v1.x中创建计算图302 14.2.3 将计算图迁移到TensorFlow v2303 14.2.4 在TensorFlow v1.x中将输入数据加载到模型304 14.2.5 在TensorFlow v2中将输入数据加载到模型304 14.2.6 通过函数修饰器提高计算性能305 14.3 用于存储和更新模型参数的TensorFlow变量对象306 14.4 通过自动微分和GradientTape计算梯度309 14.4.1 针对可训练变量计算损失的梯度309 14.4.2 针对不可训练张量计算梯度310 14.4.3 保留用于多个梯度计算的资源311 14.5 通过Keras API简化通用体系结构的实现311 14.5.1 解决XOR分类问题313 14.5.2 用Keras的函数式API灵活建模317 14.5.3 基于Keras的Model类建模318 14.5.4 编写自定义Keras层318 14.6 TensorFlow估计器321 14.6.1 使用特征列322 14.6.2 带预制估计器的机器学习325 14.6.3 用估计器进行MNIST手写数字分类328 14.6.4 基于现有Keras模型创建自定义估计器329 14.7 本章小结331 第15章 用深度卷积神经网络为图像分类332 15.1 构成卷积神经网络的模块332 15.1.1 理解CNN与特征层次332 15.1.2 离散卷积计算334 15.1.3 子采样层340 15.2 构建卷积神经网络341 15.2.1 处理多个输入或者颜色通道341 15.2.2 通过dropout正则化神经网络344 15.2.3 分类过程中的损失函数346 15.3 用TensorFlow实现深度卷积神经网络347 15.3.1 多层卷积神经网络的体系结构348 15.3.2 数据加载和预处理348 15.3.3 用TensorFlow的Keras API实现卷积神经网络模型349 15.4 用卷积神经网络根据人脸图像进行性别分类353 15.4.1 加载CelebA数据集354 15.4.2 图像转换和数据扩增354 15.4.3 训练基于卷积神经网络的性别分类器359 15.5 本章小结363 第16章 用循环神经网络为序列数据建模364 16.1 序列数据介绍364 16.1.1 序列数据建模——顺序很重要364 16.1.2 序列数据的表达365 16.1.3 不同类别的序列建模365 16.2 循环神经网络序列建模366 16.2.1 了解循环神经网络的循环机制366 16.2.2 在循环神经网络中计算激活值367 16.2.3 隐藏循环与输出循环369 16.2.4 学习长程交互面临的挑战371 16.2.5 长短期记忆单元372 16.3 用TensorFlow实现循环神经网络序列建模374 16.3.1 项目1:对IMDb电影评论进行情感分析374 16.3.2 项目2:用TensorFlow实现字符级语言建模385 16.4 用转换器模型理解语言394 16.4.1 了解自注意力机制394 16.4.2 多头注意力和转换器块396 16.5 本章小结397 第17章 用生成对抗网络合成新数据398 17.1 生成对抗网络介绍398 17.1.1 自编码器398 17.1.2 用于合成新数据的生成模型400 17.1.3 用GAN生成新样本401 17.1.4 理解GAN模型中生成器和判别器网络的损失函数402 17.2 从零开始实现GAN403 17.2.1 用谷歌Colab训练GAN模型403 17.2.2 实现生成器和判别器网络405 17.2.3 定义训练数据集408 17.2.4 训练GAN模型409 17.3 用卷积和Wasserstein GAN提高合成图像的质量415 17.3.1 转置卷积416 17.3.2 批归一化417 17.3.3 实现生成器和判别器419 17.3.4 两个分布之间相异度的度量423 17.3.5 在GAN实践中使用EM距离426 17.3.6 梯度惩罚426 17.3.7 实现WGAN-GP来训练DCGAN模型427 17.3.8 模式坍塌429 17.4 其他的GAN应用431 17.5 本章小结432 第18章 用于复杂环境决策的强化学习433 18.1 概述——从经验中学习433 18.1.1 了解强化学习433 18.1.2 定义强化学习系统的智能体环境接口434 18.2 RL的理论基础435 18.2.1 马尔可夫决策过程435 18.2.2 马尔可夫决策过程的数学公式436 18.2.3 RL术语:回报、策略和价值函数438 18.2.4 用贝尔曼方程动态编程440 18.3 强化学习算法441 18.3.1 动态编程441 18.3.2 蒙特卡罗强化学习443 18.3.3 时序差分学习444 18.4 实现第一个RL算法446 18.4.1 介绍OpenAI Gym工具包446 18.4.2 用Q学习解决网格世界问题453 18.4.3 深度Q学习概览456 18.5 本章小结462 |
内容简介 |
本书自第1版出版以来,备受广大读者欢迎。与同类书相比,本书除了介绍如何用Python和基于Python的机器学习软件库进行实践外,还对机器学习概念的必要细节进行讨论,同时对机器学习算法的工作原理、使用方法以及如何避免掉入常见的陷阱提供直观且翔实的解释,是Python机器学习入门必读之作。它的内容涵盖了众多高效Python库,包括scikit-learn、Keras和TensorFlow等,系统性地梳理和分析了各种经典算法,并通过Python语言以具体代码示例的方式深入浅出地介绍了各种算法的应用,还给出了从情感分析到神经网络的一些实践技巧,这些内容能使你快速解决你和你的团队面临的一些重要问题。 |
1