描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111623144
产品特色
编辑推荐
内容简介
本书不仅介绍大规模机器学习的基本概念,还包含丰富的案例研究。书中所选皆为*实用的技术和工具,而对理论细节不进行深入讨论,旨在提供大规模机器学习方法(甚至非常规方法)。不管是初学者、普通用户还是专家级用户,通过本书都能理解并掌握利用Python进行大规模机器学习。为让读者快速掌握核心技术,本书由浅入深讲解大量实例,图文并茂呈现每一步的操作结果,帮助读者更好地掌握大规模机器学习Python工具。例如:基于Scikit-learn可扩展学习、 Liblinear和Vowpal Wabbit快速支持向量机、基于Theano与H2O的大规模深度学习方法、TensorFlow深度学习技术与在线神经网络方法、大规模分类和回归树的可扩展解决方案、大规模无监督学习(PCA,聚类分析和主题建模等)扩展方法、Hadoop和Spark分布式环境、Spark机器学习实践以及Theano和GPU计算的基础知识。
目 录
译者序
前言
作者简介
审校者简介
第1章迈向可扩展性的第一步1
11详细解释可扩展性1
111大规模实例3
112介绍Python4
113使用Python进行向上扩展4
114使用Python进行向外扩展5
12Python用于大规模机器学习6
121选择Python 2还是Python 36
122安装Python7
123逐步安装7
124安装软件包8
125软件包升级9
126科学计算发行版10
127Jupyter/IPython介绍11
13Python包13
131NumPy14
132SciPy14
133pandas14
134Scikitlearn15
135小结21
第2章Scikitlearn中的可扩展学习22
21非核心学习22
211选择子采样23
212一次优化一个实例24
213构建非核心学习系统25
22流化源数据25
221处理真实数据集26
222第一个示例——流化共享单车数据集28
223使用pandas I/O工具30
224使用数据库31
225关注实例排序35
23随机学习37
231批处理梯度下降37
232随机梯度下降40
233Scikitlearn的SGD实现40
234定义SGD学习参数42
24数据流的特征管理43
241描述目标46
242哈希技巧49
243其他基本变换51
244流测试和验证52
245使用SGD52
25小结56
第3章实现快速SVM57
31测试数据集58
311共享单车数据集58
312森林覆盖类型数据集58
32支持向量机59
321hinge loss及其变形64
322Scikitlearn的SVM实现65
323探究通过子采样改善非线性SVM68
324使用SGD实现大规模SVM70
33正则化特征选择77
34SGD中的非线性78
35超参数调整82
36小结96
第4章神经网络与深度学习97
41神经网络架构98
411神经网络如何学习106
412选择正确的架构110
413使用神经网络111
414sknn并行化111
42神经网络和正则化113
43神经网络和超参数优化115
44神经网络和决策边界117
45用H2O进行规模化深度学习120
451用H2O进行大规模深度学习121
452H2O上的网格搜索124
46深度学习和无监督预训练126
47使用theanets进行深度学习126
48自动编码器和无监督学习128
49小结131
第5章用TensorFlow进行深度学习132
51TensorFlow安装134
52在TensorFlow上使用SkFlow进行机器学习140
53安装Keras和TensorFlow148
54在TensorFlow中通过Keras实现卷积神经网络152
541卷积层153
542池化层153
543全连接层154
55增量CNN方法156
56GPU计算156
57小结159
第6章大规模分类和回归树160
61bootstrap聚合162
62随机森林和极端随机森林163
63随机搜索实现快速参数优化167
64CART和boosting172
65XGBoost179
651XGBoost回归181
652XGBoost流化大型数据集184
653XGBoost模型存储185
66用H2O实现非核心CART185
661H2O上的随机森林和网格搜索186
662H2O上的随机梯度增强和网格搜索188
67小结191
第7章大规模无监督学习192
71无监督方法192
72特征分解:PCA193
721随机化PCA199
722增量PCA200
723稀疏PCA201
73使用H2O的PCA202
74K-均值聚类算法203
741初始化方法206
742K-均值假设206
743选择最佳K209
744扩展K-均值算法:小批量212
75用H2O实现K-均值216
76LDA218
77小结226
第8章分布式环境——Hadoop和Spark227
81从单机到集群227
82设置VM230
821VirtualBox230
822Vagrant232
823使用VM232
83Hadoop生态系统234
831架构234
832HDFS235
833MapReduce242
834YARN250
84Spark250
85小结260
第9章Spark机器学习实践261
91为本章设置虚拟机261
92跨集群节点共享变量262
921广播只读变量262
922累加器只写变量264
923广播和累加器的示例265
93Spark的数据预处理267
931JSON文件和Spark DataFrame268
932处理缺失数据270
933在内存中分组和创建表271
934将预处理的DataFrame或RDD写入磁盘273
935使用Spark DataFrame274
94Spark机器学习276
941Spark处理KDD99数据集277
942读取数据集277
943特征工程280
944训练学习器284
945评估学习器的表现286
946机器学习管道的威力286
947手动优化288
948交叉验证291
95小结293
附录介绍GPU和Theano294
前言
作者简介
审校者简介
第1章迈向可扩展性的第一步1
11详细解释可扩展性1
111大规模实例3
112介绍Python4
113使用Python进行向上扩展4
114使用Python进行向外扩展5
12Python用于大规模机器学习6
121选择Python 2还是Python 36
122安装Python7
123逐步安装7
124安装软件包8
125软件包升级9
126科学计算发行版10
127Jupyter/IPython介绍11
13Python包13
131NumPy14
132SciPy14
133pandas14
134Scikitlearn15
135小结21
第2章Scikitlearn中的可扩展学习22
21非核心学习22
211选择子采样23
212一次优化一个实例24
213构建非核心学习系统25
22流化源数据25
221处理真实数据集26
222第一个示例——流化共享单车数据集28
223使用pandas I/O工具30
224使用数据库31
225关注实例排序35
23随机学习37
231批处理梯度下降37
232随机梯度下降40
233Scikitlearn的SGD实现40
234定义SGD学习参数42
24数据流的特征管理43
241描述目标46
242哈希技巧49
243其他基本变换51
244流测试和验证52
245使用SGD52
25小结56
第3章实现快速SVM57
31测试数据集58
311共享单车数据集58
312森林覆盖类型数据集58
32支持向量机59
321hinge loss及其变形64
322Scikitlearn的SVM实现65
323探究通过子采样改善非线性SVM68
324使用SGD实现大规模SVM70
33正则化特征选择77
34SGD中的非线性78
35超参数调整82
36小结96
第4章神经网络与深度学习97
41神经网络架构98
411神经网络如何学习106
412选择正确的架构110
413使用神经网络111
414sknn并行化111
42神经网络和正则化113
43神经网络和超参数优化115
44神经网络和决策边界117
45用H2O进行规模化深度学习120
451用H2O进行大规模深度学习121
452H2O上的网格搜索124
46深度学习和无监督预训练126
47使用theanets进行深度学习126
48自动编码器和无监督学习128
49小结131
第5章用TensorFlow进行深度学习132
51TensorFlow安装134
52在TensorFlow上使用SkFlow进行机器学习140
53安装Keras和TensorFlow148
54在TensorFlow中通过Keras实现卷积神经网络152
541卷积层153
542池化层153
543全连接层154
55增量CNN方法156
56GPU计算156
57小结159
第6章大规模分类和回归树160
61bootstrap聚合162
62随机森林和极端随机森林163
63随机搜索实现快速参数优化167
64CART和boosting172
65XGBoost179
651XGBoost回归181
652XGBoost流化大型数据集184
653XGBoost模型存储185
66用H2O实现非核心CART185
661H2O上的随机森林和网格搜索186
662H2O上的随机梯度增强和网格搜索188
67小结191
第7章大规模无监督学习192
71无监督方法192
72特征分解:PCA193
721随机化PCA199
722增量PCA200
723稀疏PCA201
73使用H2O的PCA202
74K-均值聚类算法203
741初始化方法206
742K-均值假设206
743选择最佳K209
744扩展K-均值算法:小批量212
75用H2O实现K-均值216
76LDA218
77小结226
第8章分布式环境——Hadoop和Spark227
81从单机到集群227
82设置VM230
821VirtualBox230
822Vagrant232
823使用VM232
83Hadoop生态系统234
831架构234
832HDFS235
833MapReduce242
834YARN250
84Spark250
85小结260
第9章Spark机器学习实践261
91为本章设置虚拟机261
92跨集群节点共享变量262
921广播只读变量262
922累加器只写变量264
923广播和累加器的示例265
93Spark的数据预处理267
931JSON文件和Spark DataFrame268
932处理缺失数据270
933在内存中分组和创建表271
934将预处理的DataFrame或RDD写入磁盘273
935使用Spark DataFrame274
94Spark机器学习276
941Spark处理KDD99数据集277
942读取数据集277
943特征工程280
944训练学习器284
945评估学习器的表现286
946机器学习管道的威力286
947手动优化288
948交叉验证291
95小结293
附录介绍GPU和Theano294
前 言
“拥有大脑的好处在于:一个人可以学习,无知可以变成有知,点滴知识可以逐渐汇聚成江海”
——Douglas Hofstadter
机器学习属于人工智能范畴,其目的是基于现有数据集(训练集)来寻找函数,以便以尽可能高的正确性预测先前未见过的数据集(测试集)的结果,这通常以标签和类别的形式(分类问题)或以连续值的形式(回归问题)出现。在实际应用中,机器学习的具体实例包括预测未来股票价格,或从一组文件中对作者性别进行分类,等等。本书介绍最重要的机器学习概念和适合更大数据集的方法,并通过Python的实际示例向读者进行讲解。主要讨论监督学习(分类和回归),以及适用于更大数据集的无监督学习,比如主成分分析(PCA)、聚类和主题建模。
谷歌、Facebook和优步等大型IT公司都声称它们成功地大规模应用了这样的机器学习方法,从而引起世界轰动。随着大数据的出现和适用性提高,对可扩展机器学习解决方案的需求呈指数增长,导致许多其他公司甚至个人也已经开始渴望在大数据集中挖掘隐藏的相关性成果。不幸的是,大多数学习算法都不能很好扩展,会在台式计算机或较大的计算集群上导致CPU和内存过载。因此,即使大数据的炒作高峰已经过去,但可扩展机器学习解决方案并不充裕。
坦率地说,仍然需要解决许多瓶颈问题,即便是很难归类为大数据的数据集也如此(有的数据集高达2GB甚至更大)。本书的任务是提供合适的方法(有时甚至是非常规方法),以便大规模应用最强大的开源机器学习方法,而无须昂贵的企业解决方案或大型计算集群。通过本书,读者可以学习使用Python和其他一些可用的解决方案(这些方案与可扩展的机器学习流水线能很好地集成)。阅读这本书是一次旅程,它将让你对机器学习有一个全新的了解,从而为你开始真正的大数据分析奠定基础。
本书涵盖的内容
第1章以正确视角提出可扩展机器学习的问题,以便你熟悉本书中将要使用的工具。
第2章讨论采用随机梯度下降(SGD)策略减少内存消耗,它基于非核心学习的主题。另外演示各种数据的不同处理技术,例如散列技巧。
第3章介绍流算法,它能够以支持向量机的形式发现非线性。我们将介绍目前Scikit-learn的替代方法,如LIBLINEAR和Vowpal Wabbit,虽然它们以外部shell命令运行,但很容易用Python脚本封装和定向。
第4章为在Theano框架中应用深度神经网络以及使用H2O进行大规模处理提供有用策略。尽管这是个热门话题,但成功应用它会相当困难,更别说提供可扩展的解决方案。另外,还将学习使用theanets包中的自动编码器实现无监督的预训练。
第5章介绍有趣的深度学习技术与在线神经网络方法。虽然TensorFlow还处于起步阶段,但该框架提供了非常不错的机器学习解决方案。此外,还将详解如何在TensorFlow环境中使用Keras卷积神经网络功能。
第6章详解随机森林、梯度增强和XGboost的可扩展解决方案。CART是分类和回归树的缩写,它是一种通常应用于集成方法框架的机器学习方法。我们还将演示使用H2O的大规模应用实例。
第7章深入介绍无监督学习、PCA、聚类分析和主题建模方法,并使用正确方法对它们进行扩展。
第8章学习如何在虚拟机环境中设置Spark,以便从单台机器转移到网络计算范例。Python很容易在机器集群上集成并能增强我们的工作效率,因此很容易利用Hadoop集群的能力。
第9章演示使用Spark处理数据和在大数据集上构建预测模型的所有重要环节。
附录介绍GPU和Theano,包括Theano和GPU计算的基础知识。如果你的系统允许,还将帮助读者学习相关安装和环境配置,以便在GPU上使用Theano。
本书要求
运行书中代码示例需要在macOS、Linux或Microsoft Windows上安装Python 27或更高版本。
书中示例经常使用Python的基本功能库,例如SciPy、NumPy、Scikitlearn和StatsModels,并且在某种程度上使用matplotlib和pandas进行科学和统计计算。也会使用称为H2O的非核心云计算应用程序。
本书需要Jupyter及其Python内核驱动的Notebooks,本书使用最新版本41。
第1章将为设置Python环境、核心库以及全部必需工具提供所有分步说明和某些技巧。
本书读者
本书适合数据科学从业者、开发人员以及计划使用大型复杂数据集的读者。 我们努力让本书拥有尽可能好的可读性,以便适合更多读者。 考虑到本书主题非常先进,我们建议读者先熟悉基本的机器学习概念,如分类和回归、误差最小化函数和交叉验证等,但不严格要求读者必须这样做。本书假设读者了解Python、Jupyter Notebooks和命令行运行,并有一定的数学基础,能够掌握书中的各种大型解决方案背后的概念。本书写作风格也适合使用其他语言(R、Java和MATLAB)的程序员。 理想情况下,非常适合(但不限于)熟悉机器学习并有兴趣使用Python的数据科学家,因为相比于R或MATLAB而言,Python在计算、内存和I/O方面有优势。
排版约定
书中代码块设置如下:
——Douglas Hofstadter
机器学习属于人工智能范畴,其目的是基于现有数据集(训练集)来寻找函数,以便以尽可能高的正确性预测先前未见过的数据集(测试集)的结果,这通常以标签和类别的形式(分类问题)或以连续值的形式(回归问题)出现。在实际应用中,机器学习的具体实例包括预测未来股票价格,或从一组文件中对作者性别进行分类,等等。本书介绍最重要的机器学习概念和适合更大数据集的方法,并通过Python的实际示例向读者进行讲解。主要讨论监督学习(分类和回归),以及适用于更大数据集的无监督学习,比如主成分分析(PCA)、聚类和主题建模。
谷歌、Facebook和优步等大型IT公司都声称它们成功地大规模应用了这样的机器学习方法,从而引起世界轰动。随着大数据的出现和适用性提高,对可扩展机器学习解决方案的需求呈指数增长,导致许多其他公司甚至个人也已经开始渴望在大数据集中挖掘隐藏的相关性成果。不幸的是,大多数学习算法都不能很好扩展,会在台式计算机或较大的计算集群上导致CPU和内存过载。因此,即使大数据的炒作高峰已经过去,但可扩展机器学习解决方案并不充裕。
坦率地说,仍然需要解决许多瓶颈问题,即便是很难归类为大数据的数据集也如此(有的数据集高达2GB甚至更大)。本书的任务是提供合适的方法(有时甚至是非常规方法),以便大规模应用最强大的开源机器学习方法,而无须昂贵的企业解决方案或大型计算集群。通过本书,读者可以学习使用Python和其他一些可用的解决方案(这些方案与可扩展的机器学习流水线能很好地集成)。阅读这本书是一次旅程,它将让你对机器学习有一个全新的了解,从而为你开始真正的大数据分析奠定基础。
本书涵盖的内容
第1章以正确视角提出可扩展机器学习的问题,以便你熟悉本书中将要使用的工具。
第2章讨论采用随机梯度下降(SGD)策略减少内存消耗,它基于非核心学习的主题。另外演示各种数据的不同处理技术,例如散列技巧。
第3章介绍流算法,它能够以支持向量机的形式发现非线性。我们将介绍目前Scikit-learn的替代方法,如LIBLINEAR和Vowpal Wabbit,虽然它们以外部shell命令运行,但很容易用Python脚本封装和定向。
第4章为在Theano框架中应用深度神经网络以及使用H2O进行大规模处理提供有用策略。尽管这是个热门话题,但成功应用它会相当困难,更别说提供可扩展的解决方案。另外,还将学习使用theanets包中的自动编码器实现无监督的预训练。
第5章介绍有趣的深度学习技术与在线神经网络方法。虽然TensorFlow还处于起步阶段,但该框架提供了非常不错的机器学习解决方案。此外,还将详解如何在TensorFlow环境中使用Keras卷积神经网络功能。
第6章详解随机森林、梯度增强和XGboost的可扩展解决方案。CART是分类和回归树的缩写,它是一种通常应用于集成方法框架的机器学习方法。我们还将演示使用H2O的大规模应用实例。
第7章深入介绍无监督学习、PCA、聚类分析和主题建模方法,并使用正确方法对它们进行扩展。
第8章学习如何在虚拟机环境中设置Spark,以便从单台机器转移到网络计算范例。Python很容易在机器集群上集成并能增强我们的工作效率,因此很容易利用Hadoop集群的能力。
第9章演示使用Spark处理数据和在大数据集上构建预测模型的所有重要环节。
附录介绍GPU和Theano,包括Theano和GPU计算的基础知识。如果你的系统允许,还将帮助读者学习相关安装和环境配置,以便在GPU上使用Theano。
本书要求
运行书中代码示例需要在macOS、Linux或Microsoft Windows上安装Python 27或更高版本。
书中示例经常使用Python的基本功能库,例如SciPy、NumPy、Scikitlearn和StatsModels,并且在某种程度上使用matplotlib和pandas进行科学和统计计算。也会使用称为H2O的非核心云计算应用程序。
本书需要Jupyter及其Python内核驱动的Notebooks,本书使用最新版本41。
第1章将为设置Python环境、核心库以及全部必需工具提供所有分步说明和某些技巧。
本书读者
本书适合数据科学从业者、开发人员以及计划使用大型复杂数据集的读者。 我们努力让本书拥有尽可能好的可读性,以便适合更多读者。 考虑到本书主题非常先进,我们建议读者先熟悉基本的机器学习概念,如分类和回归、误差最小化函数和交叉验证等,但不严格要求读者必须这样做。本书假设读者了解Python、Jupyter Notebooks和命令行运行,并有一定的数学基础,能够掌握书中的各种大型解决方案背后的概念。本书写作风格也适合使用其他语言(R、Java和MATLAB)的程序员。 理想情况下,非常适合(但不限于)熟悉机器学习并有兴趣使用Python的数据科学家,因为相比于R或MATLAB而言,Python在计算、内存和I/O方面有优势。
排版约定
书中代码块设置如下:
大多数示例中使用Jupyter Notebooks,所以希望在包含代码块的单元中始终带有输入(标记为In:),并通常带有输出(标记为Out:)。在你的计算机上,只需输入In:后面的代码,并检查结果是否与Out:后面的内容相对应:
在终端命令行中给出命令时,会带有前缀$>,否则,如果是Python REPL,则以>>>开头:
表示警告或重要说明。
表示提示和技巧。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://wwwpacktpubcom通过个人账号下载,也可以访问华章图书官网http://wwwhzbookcom,通过注册并登录个人账号下载。
还可以从GitHub获取本书代码:
https://githubcom/PacktPublishing/LargeScaleMachineLearningWithPython。
媒体评论
免费在线读
评论
还没有评论。