敏捷数据科学:用Hadoop创建数据分析应用
敏捷数据科学:用Hadoop创建数据分析应用(数据分析最佳实践入门敏捷大数据首作分步骤|全流程演示思路、工具与方法)
【美】Russell Jurney(拉塞尔·朱尔尼) 著
冯文中 朱洪波 译
ISBN 978-7-121-23619-8
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创建数据分析应用的更多相关文章
- (数据科学学习手札72)用pdpipe搭建pandas数据分析流水线
1 简介 在数据分析任务中,从原始数据读入,到最后分析结果出炉,中间绝大部分时间都是在对数据进行一步又一步的加工规整,以流水线(pipeline)的方式完成此过程更有利于梳理分析脉络,也更有利于查错改 ...
- (数据科学学习手札75)基于geopandas的空间数据分析——坐标参考系篇
本文对应代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中我们对geopandas中的数据结 ...
- discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现
discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...
- 《Python 数据科学实践指南》读书笔记
文章提纲 全书总评 C01.Python 介绍 Python 版本 Python 解释器 Python 之禅 C02.Python 基础知识 基础知识 流程控制: 函数及异常 函数: 异常 字符串 获 ...
- python和数据科学(Anaconda)
Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在这篇文章中,我会一步一步指导你怎么进入这个PyData丛林. 你可 ...
- 深入对比数据科学工具箱:Python和R之争
建议:如果只是处理(小)数据的,用R.结果更可靠,速度可以接受,上手方便,多有现成的命令.程序可以用.要自己搞个算法.处理大数据.计算量大的,用python.开发效率高,一切尽在掌握. 概述 在真实的 ...
- 译:Dataiku 白皮书之《在银行和保险行业应用数据科学》
原文链接:Data Science For Banking & Insurance 如果不能正常访问,请点击备份获取. 在银行和保险行业应用数据科学 互联网巨头和金融技术创业时代的求生和发展 ...
- 【数据科学】Python数据可视化概述
注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地 ...
- Kaggle泰坦尼克数据科学解决方案
原文地址如下: https://www.kaggle.com/startupsci/titanic-data-science-solutions --------------------------- ...
随机推荐
- Bootstrap 折叠(Collapse)插件
折叠(Collapse)插件可以很容易地让页面区域折叠起来.无论您用它来创建折叠导航还是内容面板,它都允许很多内容选项. 如果您想要单独引用该插件的功能,那么您需要引用 collapse.js.同时, ...
- Linux cp一个文件夹时提示cp: omitting directory `test/'
将一个文件夹test 复制到地址/opt/tmp下,提示出错: cp: omitting directory `test/' 原因: test 目录下还有目录,不能直接进行拷贝. 我们先找下cp 的命 ...
- 【如何在mysql 官网下载最新版本mysql 数据库】
方法/步骤 打开百度搜索,输入MySQL,第一个是MySQL官网 点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面 找到Community( ...
- How to Use Lucene.NET with Windows Azure SQL Database
http://social.technet.microsoft.com/wiki/contents/articles/2367.how-to-use-lucene-net-with-windows-a ...
- 个人博客作业week2——代码复审
1.代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范并不是从官僚制度下产生,它是为了提高项目团队开发效率而产生的一种工具,能够极大的增强代码可读 ...
- Extjs的js函数
在Extjs内部使用函数的时候,由于我本身没有真正学过原生的js,所以对于一些函数的写法及用法很生疏,所以用起来很不方便,经常给自己弄出很多莫名其妙的bug, 比如当写了一个button,然后为其添加 ...
- Bookstore project using XAMPP 详细配置 Part 1
这是学校的一个project,记录在这里,以备复习.主要是用XAMPP通过phpMyAdmin连接MySQL数据库,实现一个简单的查询功能. Outline Setup of XAMPP Implem ...
- java 上传POJO model jar
打开eclipse----找到要打包的java文件,右键----Export----选择 JAR File 然后NEXT,会让你选择打包的文件,,选择你想打包的,一个或几个.... 在文件选择框的下面 ...
- html+css实现简易下拉菜单
<!DOCTYPE html> <html> <head> <style> div { width:100px; height:40px; overfl ...
- Linux下搭建PHP环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...