描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111600343
内容简介
本书概要介绍了如何使用Hadoop和Spark处理数据科学涉及的一系列主题:数据提取、数据再加工(datamunging,通常包含数据清洗和整合)、特征提取、机器学习、预测建模、异常检测和自然语言处理。整书侧重于具体的例子,并通过不同方式来提供对商业价值的洞察,全书共分三部分,第 一部分包括第1、2、3章,第二部分包括第4、5、6章,第三部分包括第7、8、9、10、11、12章,后在附录中提供了本书参考材料。
目 录
目 录
译者序
序
前言
致谢
关于作者
部分 Hadoop中的数据科学概览
第1章 数据科学概述2
1.1 数据科学究竟是什么2
1.2 示例:搜索广告3
1.3 数据科学史一瞥4
1.3.1 统计学与机器学习4
1.3.2 互联网巨头的创新5
1.3.3 现代企业中的数据科学6
1.4 数据科学家的成长之路6
1.4.1 数据工程师7
1.4.2 应用科学家7
1.4.3 过渡到数据科学家角色8
1.4.4 数据科学家的软技能9
1.5 数据科学团队的组建10
1.6 数据科学项目的生命周期11
1.6.1 问正确的问题11
1.6.2 数据摄取12
1.6.3 数据清洗:注重数据质量12
1.6.4 探索数据和设计模型特征13
1.6.5 构建和调整模型13
1.6.6 部署到生产环境14
1.7 数据科学项目的管理14
1.8 小结15
第2章 数据科学用例16
2.1 大数据—变革的驱动力16
2.1.1 容量:更多可用数据17
2.1.2 多样性:更多数据类型17
2.1.3 速度:快速数据摄取18
2.2 商业用例18
2.2.1 产品推荐18
2.2.2 客户流失分析19
2.2.3 客户细分19
2.2.4 销售线索的优先级20
2.2.5 情感分析20
2.2.6 欺诈检测21
2.2.7 预测维护22
2.2.8 购物篮分析22
2.2.9 预测医学诊断23
2.2.10 预测患者再入院23
2.2.11 检测异常访问24
2.2.12 保险风险分析24
2.2.13 预测油气井生产水平24
2.3 小结25
第3章 Hadoop与数据科学26
3.1 Hadoop 究竟为何物26
3.1.1 分布式文件系统27
3.1.2 资源管理器和调度程序28
3.1.3 分布式数据处理框架29
3.2 Hadoop的演进历史31
3.3 数据科学的Hadoop工具32
3.3.1 Apache Sqoop33
3.3.2 Apache Flume33
3.3.3 Apache Hive34
3.3.4 Apache Pig35
3.3.5 Apache Spark36
3.3.6 R37
3.3.7 Python38
3.3.8 Java机器学习软件包39
3.4 Hadoop为何对数据科学家有用39
3.4.1 成本有效的存储39
3.4.2 读取模式40
3.4.3 非结构化和半结构化数据40
3.4.4 多语言工具41
3.4.5 强大的调度和资源管理功能41
3.4.6 分布式系统抽象分层42
3.4.7 可扩展的模型创建42
3.4.8 模型的可扩展应用43
3.5 小结43
第二部分 用Hadoop准备和可视化数据
第4章 将数据导入Hadoop46
4.1 Hadoop数据湖46
4.2 Hadoop分布式文件系统47
4.3 直接传输文件到 HDFS48
4.4 将数据从文件导入Hive表49
4.5 使用Spark将数据导入Hive表52
4.5.1 使用Spark将CSV文件导入Hive52
4.5.2 使用Spark将JSON文件导入Hive54
4.6 使用Apache Sqoop获取关系数据55
4.6.1 使用Sqoop导入和导出数据55
4.6.2 Apache Sqoop版本更改56
4.6.3 使用Sqoop版本2:基本示例57
4.7 使用Apache Flume获取数据流63
4.8 使用Apache Oozie管理Hadoop工作和数据流67
4.9 Apache Falcon68
4.10 数据摄取的下一步是什么69
4.11 小结70
第5章 使用 Hadoop 进行数据再加工 71
5.1 为什么选择Hadoop做数据再加工72
5.2 数据质量72
5.2.1 什么是数据质量72
5.2.2 处理数据质量问题73
5.2.3 使用Hadoop进行数据质量控制76
5.3 特征矩阵78
5.3.1 选择“正确”的特征78
5.3.2 抽样:选择实例79
5.3.3 生成特征80
5.3.4 文本特征81
5.3.5 时间序列特征84
5.3.6 来自复杂数据类型的特征84
5.3.7 特征操作85
5.3.8 降维86
5.4 小结88
第6章 探索和可视化数据89
6.1 为什么要可视化数据89
6.1.1 示例:可视化网络吞吐量89
6.1.2 想象未曾发生的突破92
6.2 创建可视化93
6.2.1 对比图94
6.2.2 组成图96
6.2.3 分布图98
6.2.4 关系图99
6.3 针对数据科学使用可视化101
6.4 流行的可视化工具101
6.4.1 R101
6.4.2 Python:Matplotlib、Seaborn和其他102
6.4.3 SAS102
6.4.4 Matlab103
6.4.5 Julia103
6.4.6 其他可视化工具103
6.5 使用Hadoop可视化大数据103
6.6 小结104
第三部分 使用Hadoop进行数据建模
第7章 Hadoop与机器学习106
7.1 机器学习概述106
7.2 术语107
7.3 机器学习中的任务类型107
7.4 大数据和机器学习108
7.5 机器学习工具109
7.6 机器学习和人工智能的未来110
7.7 小结110
第8章 预测建模111
8.1 预测建模概述111
8.2 分类与回归112
8.3 评估预测模型113
8.3.1 评估分类器114
8.3.2 评估回归模型116
8.3.3 交叉验证117
8.4 有监督学习算法117
8.5 构建大数据预测模型的解决方案118
8.5.1 模型训练118
8.5.2 批量预测120
8.5.3 实时预测120
8.6 示例:情感分析121
8.6.1 推文数据集121
8.6.2 数据准备122
8.6.3 特征生成122
8.6.4 建立一个分类器125
8.7 小结126
第9章 聚类127
9.1 聚类概述127
9.2 聚类的使用128
9.3 设计相似性度量128
9.3.1 距离函数129
9.3.2 相似函数129
9.4 聚类算法130
9.5 示例:聚类算法131
9.5.1 k均值聚类131
9.5.2 LDA131
9.6 评估聚类和选择集群数量132
9.7 构建大数据集群解决方案133
9.8 示例:使用LDA进行主题建模134
9.8.1 特征生成135
9.8.2 运行 LDA136
9.9 小结137
译者序
序
前言
致谢
关于作者
部分 Hadoop中的数据科学概览
第1章 数据科学概述2
1.1 数据科学究竟是什么2
1.2 示例:搜索广告3
1.3 数据科学史一瞥4
1.3.1 统计学与机器学习4
1.3.2 互联网巨头的创新5
1.3.3 现代企业中的数据科学6
1.4 数据科学家的成长之路6
1.4.1 数据工程师7
1.4.2 应用科学家7
1.4.3 过渡到数据科学家角色8
1.4.4 数据科学家的软技能9
1.5 数据科学团队的组建10
1.6 数据科学项目的生命周期11
1.6.1 问正确的问题11
1.6.2 数据摄取12
1.6.3 数据清洗:注重数据质量12
1.6.4 探索数据和设计模型特征13
1.6.5 构建和调整模型13
1.6.6 部署到生产环境14
1.7 数据科学项目的管理14
1.8 小结15
第2章 数据科学用例16
2.1 大数据—变革的驱动力16
2.1.1 容量:更多可用数据17
2.1.2 多样性:更多数据类型17
2.1.3 速度:快速数据摄取18
2.2 商业用例18
2.2.1 产品推荐18
2.2.2 客户流失分析19
2.2.3 客户细分19
2.2.4 销售线索的优先级20
2.2.5 情感分析20
2.2.6 欺诈检测21
2.2.7 预测维护22
2.2.8 购物篮分析22
2.2.9 预测医学诊断23
2.2.10 预测患者再入院23
2.2.11 检测异常访问24
2.2.12 保险风险分析24
2.2.13 预测油气井生产水平24
2.3 小结25
第3章 Hadoop与数据科学26
3.1 Hadoop 究竟为何物26
3.1.1 分布式文件系统27
3.1.2 资源管理器和调度程序28
3.1.3 分布式数据处理框架29
3.2 Hadoop的演进历史31
3.3 数据科学的Hadoop工具32
3.3.1 Apache Sqoop33
3.3.2 Apache Flume33
3.3.3 Apache Hive34
3.3.4 Apache Pig35
3.3.5 Apache Spark36
3.3.6 R37
3.3.7 Python38
3.3.8 Java机器学习软件包39
3.4 Hadoop为何对数据科学家有用39
3.4.1 成本有效的存储39
3.4.2 读取模式40
3.4.3 非结构化和半结构化数据40
3.4.4 多语言工具41
3.4.5 强大的调度和资源管理功能41
3.4.6 分布式系统抽象分层42
3.4.7 可扩展的模型创建42
3.4.8 模型的可扩展应用43
3.5 小结43
第二部分 用Hadoop准备和可视化数据
第4章 将数据导入Hadoop46
4.1 Hadoop数据湖46
4.2 Hadoop分布式文件系统47
4.3 直接传输文件到 HDFS48
4.4 将数据从文件导入Hive表49
4.5 使用Spark将数据导入Hive表52
4.5.1 使用Spark将CSV文件导入Hive52
4.5.2 使用Spark将JSON文件导入Hive54
4.6 使用Apache Sqoop获取关系数据55
4.6.1 使用Sqoop导入和导出数据55
4.6.2 Apache Sqoop版本更改56
4.6.3 使用Sqoop版本2:基本示例57
4.7 使用Apache Flume获取数据流63
4.8 使用Apache Oozie管理Hadoop工作和数据流67
4.9 Apache Falcon68
4.10 数据摄取的下一步是什么69
4.11 小结70
第5章 使用 Hadoop 进行数据再加工 71
5.1 为什么选择Hadoop做数据再加工72
5.2 数据质量72
5.2.1 什么是数据质量72
5.2.2 处理数据质量问题73
5.2.3 使用Hadoop进行数据质量控制76
5.3 特征矩阵78
5.3.1 选择“正确”的特征78
5.3.2 抽样:选择实例79
5.3.3 生成特征80
5.3.4 文本特征81
5.3.5 时间序列特征84
5.3.6 来自复杂数据类型的特征84
5.3.7 特征操作85
5.3.8 降维86
5.4 小结88
第6章 探索和可视化数据89
6.1 为什么要可视化数据89
6.1.1 示例:可视化网络吞吐量89
6.1.2 想象未曾发生的突破92
6.2 创建可视化93
6.2.1 对比图94
6.2.2 组成图96
6.2.3 分布图98
6.2.4 关系图99
6.3 针对数据科学使用可视化101
6.4 流行的可视化工具101
6.4.1 R101
6.4.2 Python:Matplotlib、Seaborn和其他102
6.4.3 SAS102
6.4.4 Matlab103
6.4.5 Julia103
6.4.6 其他可视化工具103
6.5 使用Hadoop可视化大数据103
6.6 小结104
第三部分 使用Hadoop进行数据建模
第7章 Hadoop与机器学习106
7.1 机器学习概述106
7.2 术语107
7.3 机器学习中的任务类型107
7.4 大数据和机器学习108
7.5 机器学习工具109
7.6 机器学习和人工智能的未来110
7.7 小结110
第8章 预测建模111
8.1 预测建模概述111
8.2 分类与回归112
8.3 评估预测模型113
8.3.1 评估分类器114
8.3.2 评估回归模型116
8.3.3 交叉验证117
8.4 有监督学习算法117
8.5 构建大数据预测模型的解决方案118
8.5.1 模型训练118
8.5.2 批量预测120
8.5.3 实时预测120
8.6 示例:情感分析121
8.6.1 推文数据集121
8.6.2 数据准备122
8.6.3 特征生成122
8.6.4 建立一个分类器125
8.7 小结126
第9章 聚类127
9.1 聚类概述127
9.2 聚类的使用128
9.3 设计相似性度量128
9.3.1 距离函数129
9.3.2 相似函数129
9.4 聚类算法130
9.5 示例:聚类算法131
9.5.1 k均值聚类131
9.5.2 LDA131
9.6 评估聚类和选择集群数量132
9.7 构建大数据集群解决方案133
9.8 示例:使用LDA进行主题建模134
9.8.1 特征生成135
9.8.2 运行 LDA136
9.9 小结137
前 言
前 言数据科学和机器学习作为许多创新技术和产品的核心,预计在可预见的未来将继续颠覆全球许多行业和商业模式。早几年,这些创新大多受限于数据的可用性。
随着Apache Hadoop的引入,所有这一切都发生了变化。 Hadoop提供了一个平台,可以廉价且大规模地存储、管理和处理大型数据集,从而使大数据集的数据科学分析变得实际可行。在这个大规模数据深层分析的新世界,数据科学是核心竞争力,它使公司或组织得以超越传统的商业模式,并在竞争和创新方面保持优势。在Hortonworks工作期间,我们有机会看到各种公司和组织如何利用这些新的机会,帮助它们使用 Hadoop和Spark进行规模化数据科学实现。在本书中,我们想分享一些这样的经验。
另外值得强调的是,Apache Hadoop已经从早期的初始形态演变成整体强大的MapReduce引擎(Hadoop版本1),再到目前可运行在YARN上的多功能数据分析平台(Hadoop版本2)。目前 Hadoop 不仅支持MapReduce,还支持Tez和Spark作为处理引擎。当前版本的Hadoop为许多数据科学应用程序提供了一个强大而高效的平台,并为以前不可想象的新业务开辟了大有可为的新天地。
本书重点本书着重于在Hadoop和Spark环境中数据科学的实际应用。由于数据科学的范围非常广泛,而且其中的每一个主题都是深入且复杂的,所以全面阐述数据科学极其困难。为此,我们尝试在每个用例中覆盖理论并在实际实现时辅以样例,以期在理论和实践之间达到平衡。
本书的目的不是深入了解每个机器学习或统计学方法的诸多数学细节,而是提供重要概念的高级描述以及在业务问题背景下践行的指导原则。我们提供了一些参考文献,这些参考文献对书中技术的数学细节进行了更深入的介绍,附录C中还提供了相关资源列表。
在学习Hadoop 时,访问 Hadoop 集群环境可能会成为一个问题。找到一种有效的方式来“把玩”Hadoop 和 Spark对有些人来说可能是一个挑战。如果要搭建基础的环境,建议使用 Hortonworks 虚拟机上的沙箱(sandbox),以便轻松开始使用Hadoop。沙箱是在虚拟机内部可运行的完整的单节点Hadoop。虚拟机可以在 Windows、Mac OS 和 Linux 下运行。有关如何下载和安装沙箱的更多信息,请参阅http://hortonworks.com/products/sandbox。有关Hadoop的进一步帮助信息,建议阅读《Hadoop 2 Quick-Start Guide: Learn the Essentials of Big Data Computation in the Apache Hadoop 2 Ecosystem》一书并查看相关视频,在附录C中也可以找到这些信息。
谁应该读这本书本书面向那些有兴趣了解数据科学且有意涉猎大规模数据集下的应用的读者。如果读者想要更多地了解如何实现各种用例,找到适合的工具和常见架构,本书也提供了强大的技术基础。本书还提供了一个业务驱动的观点,即何时何地在大型数据集上应用数据科学更有利,这可以帮助利益相关者了解自己的公司能产生什么样的价值,以及在何处投资资源来进行大规模机器学习。
本书需要读者有一定的经验。对于不熟悉数据科学的人来说,需要一些基本知识以了解不同的方法,包括统计概念(如均值和标准差),也需要一些编程背景(主要是Python,一点点Java或 Scala)以理解书中的例子。
对于有数据科学背景的人员,可能会碰到一些如熟悉众多Apache项目的实际问题,但是大体上应该对书中的内容游刃有余。此外,所有示例都是基于文本的,并且需要熟悉Linux命令行。需要特别注意的是,我们没有使用(或测试)Windows环境的示例。但是,没有理由假定它们不会在其他环境中正常运行(Hortonworks支持Windows)。
在具体的Hadoop环境方面,所有示例和代码都是在Hortonworks HDP Linux Hadoop版本(笔记本电脑或集群都适用)下运行的。开发环境在发布版本(Cloudera、MapR、Apache Source)或操作系统(Windows)上可能有所不同。但是,所有这些工具在两种环境中都可使用。
如何使用本书本书有几种不同类型的读者:
数据科学家开发人员/数据工程师商业利益相关者虽然这些想参与Hadoop分析的读者具有不同背景,但他们的目标肯定是相同的:使用Hadoop和Spark处理大规模的数据分析。为此,我们设计了后续章节,以满足所有读者的需求。因此,对于在某领域具有良好实践经验的读者,可以选择跳过相应的章节。后,我们也希望新手读者将本书作为理解规模化的数据科学的步。我们相信,即使你看得一头雾水,书中的例子也是有价值的。可以参考后面的背景材料来加深理解。
部分包括前3章。
第1章概述了数据科学及其历史演变,阐述了常见的数据科学家成长之路。对于那些不熟悉数据科学的人,该章将帮助你了解为什么数据科学会发展成为一个强大的学科,并深入探讨数据科学家是如何设计和优化项目的。该章还会讨论是什么造就了数据科学家,以及如何规划这个方向的职业发展。
第2章概述了业务用例如何受现代数据流量、多样性和速度的影响,并涵盖了一些现实的数据科学用例,以帮助读者了解其在各个行业和各种应用中的优势。
第3章快速概述了Hadoop及其演变历史,以及Hadoop生态系统中的各种工具等。对于
随着Apache Hadoop的引入,所有这一切都发生了变化。 Hadoop提供了一个平台,可以廉价且大规模地存储、管理和处理大型数据集,从而使大数据集的数据科学分析变得实际可行。在这个大规模数据深层分析的新世界,数据科学是核心竞争力,它使公司或组织得以超越传统的商业模式,并在竞争和创新方面保持优势。在Hortonworks工作期间,我们有机会看到各种公司和组织如何利用这些新的机会,帮助它们使用 Hadoop和Spark进行规模化数据科学实现。在本书中,我们想分享一些这样的经验。
另外值得强调的是,Apache Hadoop已经从早期的初始形态演变成整体强大的MapReduce引擎(Hadoop版本1),再到目前可运行在YARN上的多功能数据分析平台(Hadoop版本2)。目前 Hadoop 不仅支持MapReduce,还支持Tez和Spark作为处理引擎。当前版本的Hadoop为许多数据科学应用程序提供了一个强大而高效的平台,并为以前不可想象的新业务开辟了大有可为的新天地。
本书重点本书着重于在Hadoop和Spark环境中数据科学的实际应用。由于数据科学的范围非常广泛,而且其中的每一个主题都是深入且复杂的,所以全面阐述数据科学极其困难。为此,我们尝试在每个用例中覆盖理论并在实际实现时辅以样例,以期在理论和实践之间达到平衡。
本书的目的不是深入了解每个机器学习或统计学方法的诸多数学细节,而是提供重要概念的高级描述以及在业务问题背景下践行的指导原则。我们提供了一些参考文献,这些参考文献对书中技术的数学细节进行了更深入的介绍,附录C中还提供了相关资源列表。
在学习Hadoop 时,访问 Hadoop 集群环境可能会成为一个问题。找到一种有效的方式来“把玩”Hadoop 和 Spark对有些人来说可能是一个挑战。如果要搭建基础的环境,建议使用 Hortonworks 虚拟机上的沙箱(sandbox),以便轻松开始使用Hadoop。沙箱是在虚拟机内部可运行的完整的单节点Hadoop。虚拟机可以在 Windows、Mac OS 和 Linux 下运行。有关如何下载和安装沙箱的更多信息,请参阅http://hortonworks.com/products/sandbox。有关Hadoop的进一步帮助信息,建议阅读《Hadoop 2 Quick-Start Guide: Learn the Essentials of Big Data Computation in the Apache Hadoop 2 Ecosystem》一书并查看相关视频,在附录C中也可以找到这些信息。
谁应该读这本书本书面向那些有兴趣了解数据科学且有意涉猎大规模数据集下的应用的读者。如果读者想要更多地了解如何实现各种用例,找到适合的工具和常见架构,本书也提供了强大的技术基础。本书还提供了一个业务驱动的观点,即何时何地在大型数据集上应用数据科学更有利,这可以帮助利益相关者了解自己的公司能产生什么样的价值,以及在何处投资资源来进行大规模机器学习。
本书需要读者有一定的经验。对于不熟悉数据科学的人来说,需要一些基本知识以了解不同的方法,包括统计概念(如均值和标准差),也需要一些编程背景(主要是Python,一点点Java或 Scala)以理解书中的例子。
对于有数据科学背景的人员,可能会碰到一些如熟悉众多Apache项目的实际问题,但是大体上应该对书中的内容游刃有余。此外,所有示例都是基于文本的,并且需要熟悉Linux命令行。需要特别注意的是,我们没有使用(或测试)Windows环境的示例。但是,没有理由假定它们不会在其他环境中正常运行(Hortonworks支持Windows)。
在具体的Hadoop环境方面,所有示例和代码都是在Hortonworks HDP Linux Hadoop版本(笔记本电脑或集群都适用)下运行的。开发环境在发布版本(Cloudera、MapR、Apache Source)或操作系统(Windows)上可能有所不同。但是,所有这些工具在两种环境中都可使用。
如何使用本书本书有几种不同类型的读者:
数据科学家开发人员/数据工程师商业利益相关者虽然这些想参与Hadoop分析的读者具有不同背景,但他们的目标肯定是相同的:使用Hadoop和Spark处理大规模的数据分析。为此,我们设计了后续章节,以满足所有读者的需求。因此,对于在某领域具有良好实践经验的读者,可以选择跳过相应的章节。后,我们也希望新手读者将本书作为理解规模化的数据科学的步。我们相信,即使你看得一头雾水,书中的例子也是有价值的。可以参考后面的背景材料来加深理解。
部分包括前3章。
第1章概述了数据科学及其历史演变,阐述了常见的数据科学家成长之路。对于那些不熟悉数据科学的人,该章将帮助你了解为什么数据科学会发展成为一个强大的学科,并深入探讨数据科学家是如何设计和优化项目的。该章还会讨论是什么造就了数据科学家,以及如何规划这个方向的职业发展。
第2章概述了业务用例如何受现代数据流量、多样性和速度的影响,并涵盖了一些现实的数据科学用例,以帮助读者了解其在各个行业和各种应用中的优势。
第3章快速概述了Hadoop及其演变历史,以及Hadoop生态系统中的各种工具等。对于
评论
还没有评论。