产品特色
编辑推荐
机器学习已成为许多商业应用和研究项目不可或缺的一部分,海量数据使得机器学习的应用范围远超人们想象。本书将向所有对机器学习技术感兴趣的初学者展示,自己动手构建机器学习解决方案并非难事!
书中重点讨论机器学习算法的实践而不是背后的数学,全面涵盖在实践中实现机器学习算法的所有重要内容,帮助读者使用Python和scikit-learn库一步一步构建一个有效的机器学习应用。
* 机器学习的基本概念及其应用
* 常用机器学习算法的优缺点
* 机器学习所处理的数据的表示方法,包括重点关注数据的哪些方面
* 模型评估和调参的方法
* 管道的概念
* 处理文本数据的方法,包括文本特有的处理方法
* 进一步提高机器学习和数据科学技能的建议
内容简介
本书是机器学习入门书,以Python语言介绍。主要内容包括:机器学习的基本概念及其应用;实践中常用的机器学习算法以及这些算法的优缺点;在机器学习中待处理数据的呈现方式的重要性,以及应重点关注数据的哪些方面;模型评估和调参的方法,重点讲解交叉验证和网格搜索;管道的概念;如何将前面各章的方法应用到文本数据上,还介绍了一些文本特有的处理方法。
本书适合机器学习从业者或有志成为机器学习从业者的人阅读。
作者简介
Andreas C.Müller,scikit-learn库维护者和核心贡献者。现任哥伦比亚大学数据科学研究院讲师,曾任纽约大学数据科学中心助理研究员、***公司计算机视觉应用的机器学习研究员。在波恩大学获得机器学习博士学位。
Sarah Guido,Mashable公司数据科学家,曾担任Bitly公司数据科学家。
目录
前言 ix
第 1 章 引言 1
1.1 为何选择机器学习 1
1.1.1 机器学习能够解决的问题 2
1.1.2 熟悉任务和数据 4
1.2 为何选择Python 4
1.3 scikit-learn 4
1.4 必要的库和工具 5
1.4.1 Jupyter Notebook 6
1.4.2 NumPy 6
1.4.3 SciPy 6
1.4.4 matplotlib 7
1.4.5 pandas 8
1.4.6 mglearn 9
1.5 Python 2 与Python 3 的对比 9
1.6 本书用到的版本 10
1.7 第 一个应用:鸢尾花分类 11
1.7.1 初识数据 12
1.7.2 衡量模型是否成功:训练数据与测试数据 14
1.7.3 要事第 一:观察数据 15
1.7.4 构建第 一个模型:k 近邻算法 16
1.7.5 做出预测 17
1.7.6 评估模型 18
1.8 小结与展望 19
第 2 章 监督学习 21
2.1 分类与回归 21
2.2 泛化、过拟合与欠拟合 22
2.3 监督学习算法 24
2.3.1 一些样本数据集 25
2.3.2 k 近邻 28
2.3.3 线性模型 35
2.3.4 朴素贝叶斯分类器 53
2.3.5 决策树 54
2.3.6 决策树集成 64
2.3.7 核支持向量机 71
2.3.8 神经网络(深度学习) 80
2.4 分类器的不确定度估计 91
2.4.1 决策函数 91
2.4.2 预测概率 94
2.4.3 多分类问题的不确定度 96
2.5 小结与展望 98
第3 章 无监督学习与预处理 100
3.1 无监督学习的类型 100
3.2 无监督学习的挑战 101
3.3 预处理与缩放 101
3.3.1 不同类型的预处理 102
3.3.2 应用数据变换 102
3.3.3 对训练数据和测试数据进行相同的缩放 104
3.3.4 预处理对监督学习的作用 106
3.4 降维、特征提取与流形学习 107
3.4.1 主成分分析 107
3.4.2 非负矩阵分解 120
3.4.3 用t-SNE 进行流形学习 126
3.5 聚类 130
3.5.1 k 均值聚类 130
3.5.2 凝聚聚类 140
3.5.3 DBSCAN 143
3.5.4 聚类算法的对比与评估 147
3.5.5 聚类方法小结 159
3.6 小结与展望 159
第4 章 数据表示与特征工程 161
4.1 分类变量 161
4.1.1 One-Hot 编码(虚拟变量) 162
4.1.2 数字可以编码分类变量 166
4.2 分箱、离散化、线性模型与树 168
4.3 交互特征与多项式特征 171
4.4 单变量非线性变换 178
4.5 自动化特征选择 181
4.5.1 单变量统计 181
4.5.2 基于模型的特征选择 183
4.5.3 迭代特征选择 184
4.6 利用专家知识 185
4.7 小结与展望 192
第5 章 模型评估与改进 193
5.1 交叉验证 194
5.1.1 scikit-learn 中的交叉验证 194
5.1.2 交叉验证的优点 195
5.1.3 分层k 折交叉验证和其他策略 196
5.2 网格搜索 200
5.2.1 简单网格搜索 201
5.2.2 参数过拟合的风险与验证集 202
5.2.3 带交叉验证的网格搜索 203
5.3 评估指标与评分 213
5.3.1 牢记目标 213
5.3.2 二分类指标 214
5.3.3 多分类指标 230
5.3.4 回归指标 232
5.3.5 在模型选择中使用评估指标 232
5.4 小结与展望 234
第6 章 算法链与管道 236
6.1 用预处理进行参数选择 237
6.2 构建管道 238
6.3 在网格搜索中使用管道 239
6.4 通用的管道接口 242
6.4.1 用make_pipeline 方便地创建管道 243
6.4.2 访问步骤属性 244
6.4.3 访问网格搜索管道中的属性 244
6.5 网格搜索预处理步骤与模型参数 246
6.6 网格搜索选择使用哪个模型 248
6.7 小结与展望 249
第7 章 处理文本数据 250
7.1 用字符串表示的数据类型 250
7.2 示例应用:电影评论的情感分析 252
7.3 将文本数据表示为词袋 254
7.3.1 将词袋应用于玩具数据集 255
7.3.2 将词袋应用于电影评论 256
7.4 停用词 259
7.5 用tf-idf 缩放数据 260
7.6 研究模型系数 263
7.7 多个单词的词袋(n 元分词) 263
7.8 分词、词干提取与词形还原 267
7.9 主题建模与文档聚类 270
7.10 小结与展望 277
第8 章 全书总结 278
8.1 处理机器学习问题 278
8.2 从原型到生产 279
8.3 测试生产系统 280
8.4 构建你自己的估计器 280
8.5 下一步怎么走 281
8.5.1 理论 281
8.5.2 其他机器学习框架和包 281
8.5.3 排序、推荐系统与其他学习类型 282
8.5.4 概率建模、推断与概率编程 282
8.5.5 神经网络 283
8.5.6 推广到更大的数据集 283
8.5.7 磨练你的技术 284
8.6 总结 284
关于作者 285
关于封面 285
《深度学习:从概念到实践》 一、 核心内容介绍 《深度学习:从概念到实践》是一本旨在为读者全面、深入地解析深度学习这一前沿技术领域的专著。本书力求从最基础的数学原理出发,循序渐进地引导读者理解深度学习的核心概念、模型架构、训练方法以及实际应用。本书的目标读者包括但不限于计算机科学、人工智能、机器学习领域的学生、研究人员、工程师以及任何对深度学习感兴趣并希望系统性学习的爱好者。 本书内容涵盖了深度学习的方方面面,可以大致分为以下几个部分: 1. 深度学习的理论基石: 数学预备知识: 深入回顾和讲解深度学习所需的关键数学概念,包括线性代数(向量、矩阵、张量、特征值分解等)、微积分(导数、梯度、链式法则等)以及概率论与统计学(概率分布、期望、方差、贝叶斯定理、最大似然估计等)。这些基础知识是理解深度学习模型运作原理的不可或缺的基石。本书将以清晰易懂的方式呈现这些概念,并与深度学习中的应用场景相结合,帮助读者理解其重要性。 机器学习基础回顾: 简要回顾监督学习、无监督学习、强化学习的基本概念,以及过拟合、欠拟合、偏差-方差权衡等核心问题。这部分内容旨在为读者搭建一个初步的框架,以便更好地理解深度学习如何在此基础上进行发展和演进。 2. 核心深度学习模型与架构: 神经网络基础: 详细介绍人工神经网络的基本构成单元——神经元,以及感知机、多层感知机(MLP)等早期模型。深入剖析激活函数(Sigmoid, ReLU, Tanh等)的作用和选择,以及前向传播与反向传播算法的原理,为理解更复杂的模型打下基础。 卷积神经网络(CNN): 专题深入讲解CNN。从其在图像处理领域的巨大成功出发,详细剖析卷积层、池化层、全连接层等核心组件的原理和作用。介绍经典的CNN架构,如LeNet、AlexNet、VGG、GoogLeNet、ResNet等,并分析它们的设计思想和性能提升的关键。本书将着重讲解感受野、参数共享、局部感受野等CNN特有的概念,并阐述其在图像识别、目标检测、图像分割等任务中的应用。 循环神经网络(RNN): 重点介绍RNN及其变体,如长短期记忆网络(LSTM)和门控循环单元(GRU)。深入讲解RNN如何处理序列数据,分析其在自然语言处理(NLP)、语音识别、时间序列分析等领域的应用。本书将详细解释RNN的循环连接机制,以及LSTM和GRU如何解决RNN的梯度消失/爆炸问题,实现对长期依赖关系的有效捕捉。 Transformer模型: 深入探讨自注意力机制(Self-Attention)及其在Transformer模型中的应用。详细解析Transformer的编码器-解码器架构,以及其在机器翻译、文本生成、问答系统等NLP任务中取得的突破性进展。本书将重点解释多头注意力机制、位置编码、残差连接等关键组成部分。 生成对抗网络(GAN): 介绍GAN的基本框架,包括生成器和判别器的对抗训练过程。深入探讨GAN在图像生成、风格迁移、数据增强等方面的应用,并介绍DCGAN、CycleGAN、StyleGAN等经典的GAN模型及其改进。 其他重要模型: 还会涉及一些其他重要的深度学习模型,如自编码器(Autoencoder)及其变种(如变分自编码器VAE)用于降维和生成,以及图神经网络(GNN)用于处理图结构数据等。 3. 深度学习的训练与优化: 损失函数与代价函数: 详细介绍各种常用的损失函数,如交叉熵损失、均方误差损失等,并分析它们在不同任务中的适用性。 优化算法: 深入讲解各种梯度下降优化算法,包括随机梯度下降(SGD)及其动量、Adagrad、RMSprop、Adam等。分析这些算法的工作原理、收敛速度以及在实际训练中的表现。 正则化技术: 介绍 L1、L2 正则化、Dropout、Batch Normalization 等常用的正则化技术,以及它们如何防止模型过拟合,提高模型的泛化能力。 超参数调优: 讨论如何选择合适的学习率、批量大小、网络层数、神经元数量等超参数,以及网格搜索、随机搜索、贝叶斯优化等超参数调优策略。 训练过程中的挑战与解决方案: 探讨梯度消失/爆炸、局部最优等训练中常见的问题,并提供相应的解决方案。 4. 深度学习的实际应用与案例分析: 计算机视觉(CV): 详细展示深度学习在图像分类、目标检测、语义分割、人脸识别、图像生成等领域的应用。通过具体的案例,分析如何构建和训练适用于这些任务的模型。 自然语言处理(NLP): 深入探讨深度学习在文本分类、情感分析、机器翻译、问答系统、文本摘要、对话生成等领域的应用。展示如何利用RNN、LSTM、Transformer等模型来理解和生成人类语言。 语音处理: 介绍深度学习在语音识别(ASR)、语音合成(TTS)等方面的应用,以及相关的模型和技术。 其他领域: 还会涉及深度学习在推荐系统、金融风控、医疗诊断、自动驾驶等其他领域的应用探索。 5. 实践指导与工具介绍: 深度学习框架: 重点介绍主流的深度学习框架,如TensorFlow和PyTorch,并提供清晰的安装、配置和基本使用指南。 模型实现与调试: 通过大量的代码示例,展示如何使用框架实现各种深度学习模型,并进行训练、评估和调试。 数据预处理与增强: 介绍如何对图像、文本等数据进行有效的预处理,以及如何利用数据增强技术来扩充训练数据集,提高模型性能。 模型部署: 简要介绍如何将训练好的模型部署到实际应用中,使其能够进行实时推理。 二、 内容特色与写作风格 《深度学习:从概念到实践》力求在以下几个方面体现其独特价值: 循序渐进,由浅入深: 本书遵循科学的学习规律,从最基础的概念入手,逐步过渡到复杂精深的理论和模型。数学公式的推导清晰且附有详尽的解释,确保读者能够理解其数学含义。 理论与实践相结合: 理论讲解深入透彻,同时穿插大量的代码示例和实际应用案例。读者不仅能理解“为什么”,更能掌握“怎么做”。每个模型和算法的介绍都会辅以相应的代码实现,帮助读者动手实践。 概念辨析,理解透彻: 对于一些容易混淆或理解困难的概念,本书将进行详细的辨析,力求让读者形成清晰的认知。例如,区分梯度下降的不同变体,解释不同正则化技术的适用场景。 前沿性与全面性并重: 紧跟深度学习领域的最新研究进展,重点介绍Transformer等代表性模型,并广泛覆盖了计算机视觉、自然语言处理等核心应用领域,力求为读者提供一个全面的知识体系。 清晰的图示与类比: 采用丰富的图示和生动的类比来解释抽象的深度学习概念,降低理解门槛,增强阅读的趣味性。例如,用“信息流”来类比神经网络的前向传播,用“梯度下降的路径”来解释优化算法。 注重代码的复用性与可读性: 提供的代码示例都经过精心设计,力求简洁、清晰、高效,方便读者理解和修改。代码注释详细,易于学习和应用。 避免过度理论化: 在保证严谨性的前提下,本书尽量避免枯燥的数学推导和晦涩的学术术语,以更易于理解和应用的方式呈现深度学习的知识。 三、 学习本书的收获 通过系统学习《深度学习:从概念到实践》,读者将能够: 建立扎实的理论基础: 深刻理解深度学习背后的数学原理和核心概念,不再停留在“调包侠”的层面。 掌握主流深度学习模型: 熟练掌握CNN、RNN、Transformer等经典及前沿模型的架构、原理和应用场景。 提升模型训练与优化能力: 掌握各种优化算法、正则化技术,能够有效地训练深度学习模型,并解决常见的训练难题。 具备解决实际问题的能力: 能够将深度学习技术应用于计算机视觉、自然语言处理等实际问题,并独立完成模型设计、实现和部署。 培养持续学习的能力: 建立起对深度学习技术的整体认知框架,为后续深入研究和学习新模型、新技术打下坚实基础。 本书致力于成为深度学习领域一本权威、实用且易于理解的入门与进阶指南,帮助读者开启深度学习的探索之旅。