敏捷資料科學:用Hadoop建立資料分析應用

broadviewbj發表於2014-07-30

敏捷資料科學:用Hadoop建立資料分析應用(資料分析最佳實踐入門 敏捷大資料首作 分步驟|全流程演示思路、工具與方法

【美】Russell Jurney(拉塞爾·朱爾尼)   

馮文中 朱洪波 譯

ISBN 978-7-121-23619-8

20147月出版

定價:49.00

184

16

編輯推薦

對大資料的挖掘需要投入大量的人力和時間。怎麼才能確保構建的是一個正確的模型?透過這本實踐指南,你可以學到一套靈活的工具和方法論,在Hadoop上構建資料分析應用。

使用諸如PythonApache PigD3.js等輕量級工具,你的團隊能夠建立一個敏捷環境來探索資料。我們會開發一個樣例應用程式,挖掘你自己的電子郵箱資料。你也會學習到一種迭代式的開發方法,使得你能根據資料中的資訊快速切換,進行不同型別的資料分析。書中所有的程式碼樣例都可以在 Heroku 中以 App 形式執行。

■ 用敏捷式大資料開發方法論建立分析應用

■ 用資料-價值棧,在一系列敏捷週期中建立價值

■ 用多種資料結構從單個資料集中提取特徵,獲取洞察

■ 用圖表視覺化資料,透過互動性報表從不同角度展示資料

■ 用歷史資料進行預測,將預測轉化為行動

■ 在每個迭代週期過後獲取使用者反饋,確保專案方向正確

內容提要

《敏捷資料科學:用Hadoop建立資料分析應用》面向大資料探勘,以敏捷視角呈現高效構建資料模型的全程實踐和思路。在一組以一個真實電子郵箱資料探勘為例的資料-價值金字塔進階模式中,你將學到:一整套實用工具及其方法論,可快速實現在Hadoop 上構建資料分析應用;用PythonApache 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

使用PigElasticSearch 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 映象,可以從這()獲取。讀者可以透過這個工具在VirtualBox 裡面快速啟動一臺Linux 機器。

本書如何組織

這本書包含兩部分。第一部分介紹資料以及將在本書第二部分用到的工具集。我特意將第一部分寫得比較簡短,只用了較少的篇幅來介紹這些工具。假如感覺第一部分內容太過簡略,也不要擔心,本書第二部分將會深入地探索這些工具的用法。下面的章節組成了本書的第一部分:

第一章  理論

介紹敏捷大資料的工作方法。

第二章  資料

介紹本書中將要使用的資料,以及簡單的預測方法。

第三章  敏捷開發工具

介紹工具集,並幫助讀者將它們在機器上安裝好。

第四章  在雲端

帶領讀者將第三章中介紹的工具集擴充套件到雲端,以支援PB 級的資料規模。

本書第二部分是一個利用敏捷大資料的方式來構建資料分析應用的教程。這是一個筆記本形式的指南。在資料- 價值金字塔的每一次上升都遵循著敏捷的原則。我會闡述如何在小的敏捷開發週期裡面逐步創造價值。第二部分包含如下的章節:

第五章  收集和展示資料

幫助讀者下載電子郵件收件箱資料並將郵件連線到一個web 程式上。

第六章  使用圖表視覺化資料

讓讀者逐步在web 程式中建立簡單的圖表來操縱資料。

第七章 利用報表探索資料

展示如何從資料裡面提取實體,並將它們連線在一起,建立可互動的資料包告。

第八章 預測

幫助讀者利用之前的成果預測郵件收到回覆的機率。

第九章 驅動行動

介紹如何將已有的預測功能擴充套件成一個完整的實時分類器,來幫助使用者寫出會被回覆的郵件。

本書所使用的約定

以下是本書所使用的排版約定:

斜體(Italic

表示新的條目、網址、電子郵件地址、檔名和副檔名。

等寬字型(Constant width

在程式程式碼中使用,同時也會出現在段落內的那些引用程式元素如函式名、資料庫、

資料型別、環境變數、宣告和關鍵字等,還會在API、元件及模組名裡遇到。

等寬粗字型(Constant with bold

表示命令或由使用者輸入的文字。

等寬斜體字(Constant with italic

表示應該由使用者提供的值來代替上下文決定的值的那些文字。

這個圖示標誌是提示、建議或一般說明。

這個圖示表示警告或告示。

使用程式碼例項

補充材料( 程式碼示例, 練習等) 請登入 自行下載。

本書就是要幫讀者完成工作的。通常,如果本書包含了程式碼示例,你可以在你的程式和文件中使用本書中的程式碼。除非你複製了大段的程式碼,否則你無須聯絡我們來取得許可。舉個例子,在編寫程式時使用了本書中的數塊程式碼是不需要經過許可的。出售或分發來自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()是一個釋出來自全球技術和商業領域的頂尖作者寫的書和影片等優質內容的按需數字化圖書館。技術專業人士、軟體開發者、網站設計師及商業和創意專業都用Safari Books Online 作為他們的主要研究、解決問題、學習和認證培訓資源。

Safari Books Online 提供了一系列產品及針對組織、政府和個人不同的定價方案,訂閱者可以訪問到成千上萬的圖書、培訓影片及出版前的手稿,這些內容都可以從出版社,如OReilly MediaPrentice Hall ProfessionalAddison-Wesley ProfessionalMicrosoftPressSamsQuePeachpit PressFocal PressCisco PressJohn Wiley & SonsSyngressMorgan KaufmannIBM RedbooksPacktAdobe PressFT PressApressManningNew RidersMcGraw-HillJones & BartlettCourse Technology 等資料庫中搜尋而得到,想了解更多關於Safari Books Online 的資訊,請線上訪問我們。聯絡我們

對於本書的評論或問題請聯絡出版商:

美國:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中國:

北京市西城區西直門南大街2 號成銘大廈C 807 室(100035

奧萊利技術諮詢(北京)有限公司

我們為本書製作了一個Web 頁面,頁面中包含了簡介、樣章,以及其他資訊。可以從這裡訪問這個頁面:

如果要留言或者提交關於本書的技術問題的反饋,請發郵件至:

bookquestions@oreilly.com。

本書的更多資訊、資源、參考文獻和新聞,請登入出版社官網:

Facebook:

Twitter:

YouTube:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-1242596/,如需轉載,請註明出處,否則將追究法律責任。

相關文章