敏捷数据科学:用Hadoop创建数据分析应用(数据分析最佳实践入门敏捷大数据首作分步骤|全流程演示思路、工具与方法)
【美】Russell Jurney(拉塞尔·朱尔尼) 著
冯文中 朱洪波 译
2014年7月出版
定价:49.00元
184页
16开
编辑推荐
对大数据的挖掘需要投入大量的人力和时间。怎么才能确保构建的是一个正确的模型?通过这本实践指南,你可以学到一套灵活的工具和方法论,在Hadoop上构建数据分析应用。
使用诸如Python、Apache Pig和D3.js等轻量级工具,你的团队能够创建一个敏捷环境来探索数据。我们会开发一个样例应用程序,挖掘你自己的电子邮箱数据。你也会学习到一种迭代式的开发方法,使得你能根据数据中的信息快速切换,进行不同类型的数据分析。书中所有的代码样例都可以在 Heroku 中以 App 形式运行。
■用敏捷式大数据开发方法论创建分析应用
■用数据-价值栈,在一系列敏捷周期中创建价值
■用多种数据结构从单个数据集中提取特征,获取洞察
■用图表可视化数据,通过交互性报表从不同角度展示数据
■用历史数据进行预测,将预测转化为行动
■在每个迭代周期过后获取用户反馈,确保项目方向正确
内容提要
《敏捷数据科学:用Hadoop创建数据分析应用》面向大数据挖掘,以敏捷视角呈现高效构建数据模型的全程实践和思路。在一组以一个真实电子邮箱数据挖掘为例的数据-价值金字塔进阶模式中,你将学到:一整套实用工具及其方法论,可快速实现在Hadoop 上构建数据分析应用;用Python、Apache Pig 及D3.js等轻量级工具创建用于探索数据的敏捷环境;一种可根据数据中信息快速切换,进行不同类型数据分析的迭代式开发方法。
《敏捷数据科学:用Hadoop创建数据分析应用》适合所有与数据工作相关的从业者,同时也适合有志成为数据科学工作者的广大读者作为入门读物。
目录
第1 部分起步 ............................................................... 1
第1 章理论 .................................................................. 3
敏捷大数据 ............................................................................................................3
Big Words 定义 ......................................................................................................4
敏捷大数据团队 .....................................................................................................5
认识机遇和问题 ..............................................................................................6
敏捷大数据流程 ................................................................................................... 11
代码检查和结对编程 ...........................................................................................12
敏捷的场所:开发的效率 ....................................................................................13
协作空间 .......................................................................................................14
私人空间 .......................................................................................................14
个人空间 .......................................................................................................14
用大幅打印件明确表达想法 ................................................................................15
第2 章数据 ............................................................... 17
电子邮件 ..............................................................................................................17
处理原始数据 ......................................................................................................18
原始的电子邮件 ............................................................................................18
结构化与半结构化数据 .................................................................................18
SQL ......................................................................................................................20
NoSQL .................................................................................................................24
序列化 ...........................................................................................................24
从演变的模式中抽取和展示特征 ..................................................................25
数据流水线 ...................................................................................................26
数据透视 ..............................................................................................................27
社交网络 .......................................................................................................28
时间序列 .......................................................................................................30
自然语言 .......................................................................................................31
概率 ...............................................................................................................33
小结 .....................................................................................................................35
第3 章敏捷开发工具 ................................................... 37
可扩展性= 简洁...................................................................................................37
敏捷大数据处理 ...................................................................................................38
设置运行Python 的虚拟环境 ...............................................................................39
使用Avro 对事件进行序列化 ..............................................................................40
在Python 中使用Avro ..................................................................................40
收集数据 ..............................................................................................................42
使用Pig 处理数据................................................................................................44
安装Pig .........................................................................................................45
使用MongoDB 发布数据 ....................................................................................49
安装MongoDB ..............................................................................................49
安装MongoDB 的Java 驱动程序 .................................................................50
安装mongo-hadoop .......................................................................................50
用Pig 向MongoDB 推送数据 .......................................................................50
使用ElasticSearch 搜索数据 ................................................................................52
安装 ...............................................................................................................52
使用Wonderdog 整合ElasticSearch 和Pig ...................................................53
对工作流程的反思 ...............................................................................................55
轻量级的Web 应用 ..............................................................................................56
Python 和 Flask .............................................................................................56
展示数据 ..............................................................................................................58
安装Bootstrap ...............................................................................................58
启用Bootstrap ...............................................................................................59
使用d3.js 和nvd3.js 可视化数据 ..................................................................63
小结 .....................................................................................................................64
第4 章在云端 ............................................................. 65
引言 .....................................................................................................................65
GitHub .................................................................................................................67
dotCloud ...............................................................................................................67
dotCloud Echo 服务 .......................................................................................68
Python 工作者服务 ........................................................................................71
Amazon Web Services ..........................................................................................71
Simple Storage Service ..................................................................................71
Elastic MapReduce ........................................................................................72
MongoDB 即服务 ..........................................................................................79
辅助工具(Instrumentation) ................................................................................81
Google Analytics ...........................................................................................81
Mortar Data ...................................................................................................82
第2 部分登上金字塔 ................................................... 85
第5 章收集和展示数据 ............................................... 89
整合软件栈 ..........................................................................................................90
收集并序列化收件箱 ...........................................................................................90
处理和发布邮件数据 ...........................................................................................91
在浏览器中显示邮件 ...........................................................................................93
用Flask 和pymongo 处理邮件数据 ..............................................................94
使用Jinja2 渲染HTML5 页面 ......................................................................94
敏捷检查点 ..........................................................................................................98
生成电子邮件清单 ...............................................................................................99
用MongoDB 显示邮件 .................................................................................99
对数据展示的分析 ...................................................................................... 101
搜索邮件 ............................................................................................................ 106
使用Pig,ElasticSearch 和Wonderdog 构建索引 ....................................... 106
在网页中搜索邮件数据 ............................................................................... 107
结论 ................................................................................................................... 108
第6 章使用图表可视化数据 ....................................... 111
优秀的图表 ........................................................................................................ 112
抽取实体:邮件地址 ......................................................................................... 112
抽取邮件 ..................................................................................................... 112
对时间进行可视化 ............................................................................................. 116
结论 ................................................................................................................... 122
第7 章利用报表探索数据 .......................................... 123
为数据添加联系 ................................................................................................. 126
用TF-IDF 从邮件中提取关键字 ........................................................................ 133
小结 ................................................................................................................... 138
第8 章预测 .............................................................. 141
预测电子邮件的回复率 ...................................................................................... 142
个性化 ................................................................................................................ 147
小结 ................................................................................................................... 148
第9 章驱动行动 ........................................................ 149
好邮件的属性 .................................................................................................... 150
使用朴素贝叶斯方法进行更好的预测 ............................................................... 150
P(Reply | From ∩ To) ........................................................................................ 150
P(Reply | Token) ................................................................................................. 151
实时预测 ............................................................................................................ 153
记录事件日志 .................................................................................................... 157
小结 ................................................................................................................... 157
索引 ........................................................................... 159
作者简介
作者介绍:Russsel Jurney 在美国和墨西哥的赌场开始他的数据分析生涯。他开发了一个 Web 应用来分析游戏机的性能。在经历了创业、交互式媒体和新闻业以后,他到了硅谷,在 Ning 和LinkedIn 开始构建可扩展的数据分析应用。
译者介绍:朱洪波阿里巴巴数据挖掘专家,机器学习团队负责人,司职于解决商业客户对数据的深层需求。纸质书爱好者,相信理性与逻辑的力量。
媒体评论
“在目前“数据科学”被大肆宣传的环境下,读到一本构建数据产品的实践指南让我耳目一新。Russell向我们逐步介绍了他利用数据来解决问题的敏捷哲学。”
—— Mat Kelcey matpalm.com博主
前言
我写这本书是为了帮助大家避免重复我犯过的错误,进而防止失败项目的产生。在这本书里面,描述、反映了我在两个不同的Hadoop 服务上构建数据分析应用的经验。
《敏捷数据科学》这本书有三个目标:提供一个用Hadoop 构建数据分析应用的操作指南;帮助团队在大数据项目中以敏捷的形式进行更好的协作;提出一个进行敏捷式大数据分析的先进结构。
读者是谁
《敏捷数据科学》是一门帮助大数据的入门者以及萌芽中的数据科学家,成为数据科学与数据分析团队中更有生产力的成员的课程。它的目标是帮助工程师,分析师和数据科学家以敏捷的形式在Hadoop 上处理大数据。它介绍了一种非常适合大数据的敏捷开发方式。
这本书同样针对需要处理数据并开发软件的程序员。设计师和项目经理可能会特别喜欢本书第一、二、五章,这些章节主要介绍一些敏捷的流程,而没有把关注点放在具体的代码上。
本书假设读者在一个*nix 环境中工作,对于Windows 用户,我们没有提供相应的例子,但他们可以使用Cygwin。一个由用户贡献而且包含所有前置依赖的Linux 镜像,可以从这(https://github.com/charlesflynn/agiledata)获取。读者可以通过这个工具在VirtualBox 里面快速启动一台Linux 机器。
本书如何组织
这本书包含两部分。第一部分介绍数据以及将在本书第二部分用到的工具集。我特意将第一部分写得比较简短,只用了较少的篇幅来介绍这些工具。假如感觉第一部分内容太过简略,也不要担心,本书第二部分将会深入地探索这些工具的用法。下面的章节组成了本书的第一部分:
第一章 理论
介绍敏捷大数据的工作方法。
第二章 数据
介绍本书中将要使用的数据,以及简单的预测方法。
第三章 敏捷开发工具
介绍工具集,并帮助读者将它们在机器上安装好。
第四章 在云端
带领读者将第三章中介绍的工具集扩展到云端,以支持PB 级的数据规模。
本书第二部分是一个利用敏捷大数据的方式来构建数据分析应用的教程。这是一个笔记本形式的指南。在数据- 价值金字塔的每一次上升都遵循着敏捷的原则。我会阐述如何在小的敏捷开发周期里面逐步创造价值。第二部分包含如下的章节:
第五章 收集和展示数据
帮助读者下载电子邮件收件箱数据并将邮件连接到一个web 程序上。
第六章 使用图表可视化数据
让读者逐步在web 程序中创建简单的图表来操纵数据。
第七章 利用报表探索数据
展示如何从数据里面提取实体,并将它们连接在一起,创建可交互的数据报告。
第八章 预测
帮助读者利用之前的成果预测邮件收到回复的概率。
第九章 驱动行动
介绍如何将已有的预测功能扩展成一个完整的实时分类器,来帮助用户写出会被回复的邮件。
本书所使用的约定
以下是本书所使用的排版约定:
斜体(Italic)
表示新的条目、网址、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
在程序代码中使用,同时也会出现在段落内的那些引用程序元素如函数名、数据库、
数据类型、环境变量、声明和关键字等,还会在API、组件及模块名里遇到。
等宽粗字体(Constant with bold)
表示命令或由用户输入的文本。
等宽斜体字(Constant with italic)
表示应该由用户提供的值来代替上下文决定的值的那些文本。
这个图标标志是提示、建议或一般说明。
这个图标表示警告或告示。
使用代码实例
补充材料( 代码示例, 练习等) 请登录https://github.com/rjurney/Agile_Date_Code 自行下载。
本书就是要帮读者完成工作的。通常,如果本书包含了代码示例,你可以在你的程序和文档中使用本书中的代码。除非你复制了大段的代码,否则你无须联系我们来取得许可。举个例子,在编写程序时使用了本书中的数块代码是不需要经过许可的。出售或分发来自O’Reilly 图书的示例CD-ROM 是必须经过许可的。引用本书及本书中的示例代码来回答问题是不需要经过许可的。将大量的示例代码整合到你的产品文档中必须经过许可。
我们很感谢但不要求注明出处。出处的格式一般包括标题、作者、出版社和ISBN,例如“由Russell Jurney 写的Agile Data Science (O’Reilly). Copyright 2014 Data SyndromeLLC, 978-1-449-32626-5。”
如果你觉得没有在正常范围内使用代码例子,并且不知是否在上面所说的许可范围内,请随时联系我们:
permissions@oreilly.com
Safari® Books Online
Safari Books Online(www.safaribooksonline.com)是一个发布来自全球技术和商业领域的顶尖作者写的书和视频等优质内容的按需数字化图书馆。技术专业人士、软件开发者、网站设计师及商业和创意专业都用Safari Books Online 作为他们的主要研究、解决问题、学习和认证培训资源。
Safari Books Online 提供了一系列产品及针对组织、政府和个人不同的定价方案,订阅者可以访问到成千上万的图书、培训视频及出版前的手稿,这些内容都可以从出版社,如O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、MicrosoftPress、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 等数据库中搜索而得到,想了解更多关于Safari Books Online 的信息,请在线访问我们。联系我们
对于本书的评论或问题请联系出版商:
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书制作了一个Web 页面,页面中包含了简介、样章,以及其他信息。可以从这里访问这个页面:
http://oreil.ly/agile-data-science。
如果要留言或者提交关于本书的技术问题的反馈,请发邮件至:
bookquestions@oreilly.com。
本书的更多信息、资源、参考文献和新闻,请登录出版社官网:http://www.oreilly.com。
Facebook: http://facebook.com/oreilly
Twitter: http://twitter.com/oreillymedia
YouTube: http://www.youtube.com/oreillymedia__
相关推荐
例如,业务分析师可以使用数据仓库提供的报表工具进行数据探索,数据科学家可能使用更复杂的建模工具进行深度挖掘。 以有赞为例,其数据仓库实例中,数据源主要来自文件和数据库,通过消息队列汇集到Hadoop平台。近...
从 2011 年,联想启动了大数据平台建设五年,300+ 研发人员持续投入全球部署的超大规模集群海量数据分析与持续性业务支撑300 名开发工程师60 名运维工程师30 名数据科学家全球 8 个数据中心2000 台服务器3000 名操作...
在数据分析的广阔领域中,Apache Spark无疑是一个备受瞩目的明星,但随着技术的不断发展,越来越多的开源工具崭露头角,为数据科学家提供了更多选择。本文将介绍三种新兴的开源数据分析工具,它们在应对流数据处理和...
《敏捷数据科学2.0》是一本数据科学的经典入门教程,尤其对于想要深入了解大数据基础知识的初学者来说,它提供了一条清晰的学习路径。本书的核心理念是"敏捷",源自软件开发中的敏捷方法,强调快速迭代、协作和适应...
容器化的EDW、数据科学和工程平台能够在不改变架构的情况下在本地和云端运行,增强了云环境的敏捷性。 共享安全和治理是混合架构不可或缺的部分。需要一个集中化的安全和治理层来执行访问控制和数据治理,确保数据...
在数据科学的背景下,HTML常用于数据可视化,例如通过创建交互式图表和仪表板来展示分析结果。理解HTML有助于数据科学家更好地与非技术团队沟通,将复杂的数据转化为易于理解的形式。 UTS-AdvDSI课程可能涵盖了以下...
Tableau、Power BI和D3.js是常见的数据可视化工具,开发者应学习如何使用它们创建交互式图表和仪表板。 8. **云计算平台**:学习使用AWS的EMR、Google Cloud的Dataproc或Azure的大数据服务,有助于在云环境中部署和...
数据是现代商业世界的黄金资源,数据分析师和管理者在其中扮演着至关重要的角色。"Data_Analytics_Mgmt"可能是一个关于数据管理和分析的项目或者课程,虽然没有具体的标签提供额外信息,但我们可以根据这个主题深入...
1. 数据分析基础:数据分析是数据科学的核心,它涉及收集、清洗、转换和模型化数据以提取有用信息。在会议中,可能会讨论如何使用Python中的Pandas库进行数据预处理,或者使用R语言进行统计分析。 2. 机器学习算法...
"Management Scientist"这一角色在IT行业中扮演着至关重要的角色,他们运用科学方法、技术和数据分析来解决复杂的管理问题,帮助企业做出更明智的决策。数据建模是Management Scientist的主要工作内容之一,它涉及到...
5. **实验五**:实验五可能涵盖网络协议分析,如TCP/IP模型,或者是数据分析与处理,使用Python的Pandas库或Excel进行数据清洗和分析。 6. **实验六**:在这个阶段,可能会接触到更高级的编程技巧,如异常处理、多...
13. 大数据技术:学习大数据处理和分析的框架,比如Hadoop和Spark。 14. 物联网技术:涉及传感器网络、嵌入式系统和数据通信等领域的技术。 计算机专业的学生在学习过程中还会接触到不同的编程范式,如面向过程、...
6. **大数据处理**:Hadoop、Spark等工具的使用,处理和分析大量地质或用户数据。 7. **智能系统设计**:构建集成AI的软件系统,如推荐系统、决策支持系统等。 8. **AI伦理与法规**:讨论AI技术在社会、法律和道德...
大数据作为现代信息技术的重要分支,涵盖了数据分析、数据挖掘、云计算等多个方面。这4个简历模板可能特别强调候选人的Hadoop、Spark、SQL、NoSQL数据库等技能,以及处理大规模数据的经验。求职者应确保在这些模板中...
9. 云计算与大数据:云计算平台(如AWS、Azure)的使用,以及Hadoop、Spark等大数据处理框架的理解,是处理海量数据和构建分布式系统的必备知识。 10. 安全与隐私:加密算法、防火墙、入侵检测系统等,是保护系统...
1. 数据获取与预处理:这是任何数据科学项目的第一步,涉及到从各种源(如数据库、API、文件系统等)收集数据,并进行清洗、去重、缺失值处理等操作,以确保后续分析的质量。 2. 数据存储与管理:高效的数据存储...
8. **数据科学与人工智能**:如果涉及数据分析或AI,那么文档可能包含数据清洗、统计分析、机器学习模型、神经网络的理论和实现。 9. **安全与隐私**:安全文档可能涵盖密码学、加密算法、漏洞评估、防火墙设置、...
13. **云计算与大数据**:了解云计算服务如AWS、Azure、阿里云,理解Hadoop、Spark等大数据处理框架。 14. **安全编程**:防止SQL注入、XSS攻击、CSRF等网络安全问题,使用加密算法保护数据安全。 15. **项目管理*...
大数据分析和云计算文档则会讨论Hadoop、Spark、Kafka等大数据处理工具,以及AWS的EC2、S3、Lambda,Azure的Blob Storage、Function,Google Cloud的Compute Engine、Dataflow等云服务的使用。 总的来说,"百度文库...
学习者将了解到软件开发的生命周期,掌握敏捷开发方法,理解云服务如AWS、Azure和Google Cloud的基本原理,以及大数据分析工具如Hadoop和Spark的应用。 通过这份《大学计算机信息技术》自学资料,学习者不仅可以...