容简介
本书不仅介绍大规模机器学习的基本概念,还包含丰富的案例研究。书中所选皆为*实用的技术和工具,而对理论细节不进行深入讨论,旨在提供大规模机器学习方法(甚至非常规方法)。不管是初学者、普通用户还是专家级用户,通过本书都能理解并掌握利用Python进行大规模机器学习。为让读者快速掌握核心技术,本书由浅入深讲解大量实例,图文并茂呈现每一步的操作结果,帮助读者更好地掌握大规模机器学习Python工具。例如:基于Scikit-lrn可扩展学习、 Lilinr和Vowpal Wait快速支持向量机、基于Thno与H2O的大规模深度学习方法、TensorFlow深度学习技术与在线神经网络方法、大规模分类和回归树的可扩展解决方案、大规模无监督学习(PCA,聚类分析和主题建模等)扩展方法、Hadoop和Spark分布式环境、Spark机器学习实践以及Thno和GPU计算的基础知识。
作者简介
astiaan Sjardin是一位具有人工智能和数学背景的数据科学家和公司创始人。他获得莱顿大学和麻省理工学院(MIT)校园课程联合培养的认知科学硕士学位。在过去五年中,他从事过广泛的数据科学和人工智能项目。他是密歇根大学社会网络分析课程Coursera和约翰斯·霍普金斯大学机器学习实践课程的常客。他擅长Python和R编程语言。目前,他是Quandee(http://wwwquandeecom)的联合创始人,该公司主要提供大规模机器学习和人工智能应用。
Luca Massaron是一位数据科学家和市场研究总监,擅长多元统计分析、机器学习和客户洞察力研究,在解决实际问题和应用推理、统计、数据挖掘和算法来为用户创造价值方面有十多年经验。从成为意大利网络观众分析的先驱,到跻身前十名的Kaggler,他一直对数据分析充满热情,还向专业人士和普通大众展示数据驱动知识发现的潜力,相比不必要的复杂性,他更喜欢简洁。他相信仅仅通过基本操作就可以在数据科学中收获很多东西。
Alerto oschetti是一位具有信号处理和统计专业知识的数据科学家。他获得电信工程博士学位,目前在伦敦生活和工作。在其工作项目中,他面临过从自然语言处理(NLP)和机器学习到分布式处理的挑战。 他在工作中充满热情,始终努力了解数据科学的*新发展,他喜欢参加聚会、会议和其他活动。
目录
译者序
前言
作者简介
审校者简介
第1章迈向可扩展性的步1
1.1详细解释可扩展性1
1.1.1大规模实例3
1.1.2介绍Python4
1.1.3使用Python进行向上扩展4
1.1.4使用Python进行向外扩展5
1.2Python用于大规模机器学习6
1.2.1选择Python 2还是Python 36
1.2.2安装Python7
1.2.3逐步安装7
1.2.4安装软件包8
1.2.5软件包升级9
1.2.6科学计算发行版10
1.2.7Jupyter/IPython介绍11
1.3Python包13
1.3.1NumPy14
1.3.2SciPy14
1.3.3panda4
1.3.4Scikitlrn15
1.3.5小结21
第2章Scikitlrn中的可扩展学习22
2.1非核心学习22
2.1.1选择子采样23
2.1.2一次优化一个实例24
2.1.3构建非核心学习系统25
2.2流化源数据25
2.2.1处理真实数据集26
2.2.2个示例——流化共享单车数据集28
2.2.3使用pandas I/O工具30
2.2.4使用数据库31
2.2.5关注实例排序35
2.3随机学习37
2.3.1批处理梯度下降37
2.3.2随机梯度下降40
2.3.3Scikitlrn的S实现40
2.3.4定义S学习参数42
2.4数据流的特征管理43
2.4.1描述目标46
2.4.2哈希技巧49
2.4.3其他基本变换51
2.4.4流测试和验证52
2.4.5使用S52
2.5小结56
第3章实现快速SVM57
3.1测试数据集58
3.1.1共享单车数据集58
3.1.2森林覆盖类型数据集58
3.2支持向量机59
3.2.1hinge loss及其变形64
3.2.2Scikitlrn的SVM实现65
3.2.3探究通过子采样改善非线性SVM68
3.2.4使用S实现大规模SVM70
3.3正则化特征选择77
3.4S中的非线性78
3.5超参数调整82
3.6小结96
第4章神经网络与深度学习97
4.1神经网络架构98
4.1.1神经网络如何学习106
4.1.2选择正确的架构110
4.1.3使用神经网络111
4.1.4sknn并行化111
4.2神经网络和正则化113
4.3神经网络和超参数优化115
4.4神经网络和决策边界117
4.5用H2O进行规模化深度学习120
4.5.1用H2O进行大规模深度学习121
4.5.2H2O上的网格搜索124
4.6深度学习和无监督预训练126
4.7使用thnets进行深度学习126
4.8自动编码器和无监督学习128
4.9小结131
第5章用TensorFlow进行深度学习132
5.1TensorFlow安装134
5.2在TensorFlow上使用SkFlow进行机器学习140
5.3安装Keras和TensorFlow148
5.4在TensorFlow中通过Keras实现卷积神经网络152
5.4.1卷积层153
5.4.2池化层153
5.4.3全连接层154
5.5增量CNN方法156
5.6GPU计算156
5.7小结159
第6章大规模分类和回归树160
6.1ootstrap聚合162
6.2随机森林和极端随机森林163
6.3随机搜索实现快速参数优化167
6.4CART和oosting172
6.5XGoost179
6.5.1XGoost回归181
6.5.2XGoost流化大型数据集184
6.5.3XGoost模型存储185
6.6用H2O实现非核心CART185
6.6.1H2O上的随机森林和网格搜索186
6.6.2H2O上的随机梯度增强和网格搜索188
6.7小结191
第7章大规模无监督学习192
7.1无监督方法192
7.2特征分解:PCA193
7.2.1随机化PCA199
7.2.2增量PCA200
7.2.3稀疏PCA201
7.3使用H2O的PCA202
7.4K-均值聚类算法203
7.4.1初始化方法206
7.4.2K-均值假设206
7.4.3选择K209
7.4.4扩展K-均值算法:小批量212
7.5用H2O实现K-均值216
7.6LDA218
7.7小结226
第8章分布式环境——Hadoop和Spark227
8.1从单机到集群227
8.2设置VM230
8.2.1Virtualox230
8.2.2Vagrant232
8.2.3使用VM232
8.3Hadoop生态系统234
8.3.1架构234
8.3.2HDFS235
8.3.apReduce242
8.3.4YARN250
8.4Spark250
8.5小结260
第9章Spark机器学习实践261
9.1为本章设置虚拟机261
9.2跨集群节点共享变量262
9.2.1广播只读变量262
9.2.2累加器只写变量264
9.2.3广播和累加器的示例265
9.3Spark的数据预处理267
9.3.1JSON文件和Spark DataFre268
9.3.2处理缺失数据270
9.3.3在内存中分组和创建表271
9.3.4将预处理的DataFre或RDD写入磁盘273
9.3.5使用Spark DataFre274
9.4Spark机器学习276
9.4.1Spark处理KDD99数据集277
9.4.2读取数据集277
9.4.3特征工程280
9.4.4训练学习器284
9.4.5评估学习器的表现286
9.4.6机器学习管道的威力286
9.4.7手动优化288
9.4.8交叉验证291
9.5小结293
附录介绍GPU和Thno294