數(shù)據(jù)科學與大數(shù)據(jù)技術導論
定 價:59 元
叢書名:數(shù)據(jù)科學與工程技術叢書
- 作者:[美] 凱西·斯特拉
- 出版時間:2018/6/1
- ISBN:9787111600343
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書概要介紹了如何使用Hadoop和Spark處理數(shù)據(jù)科學涉及的一系列主題:數(shù)據(jù)提取、數(shù)據(jù)再加工(datamunging,通常包含數(shù)據(jù)清洗和整合)、特征提取、機器學習、預測建模、異常檢測和自然語言處理。整書側重于具體的例子,并通過不同方式來提供對商業(yè)價值的洞察,全書共分三部分,第 一部分包括第1、2、3章,第二部分包括第4、5、6章,第三部分包括第7、8、9、10、11、12章,后在附錄中提供了本書參考材料。
前 言數(shù)據(jù)科學和機器學習作為許多創(chuàng)新技術和產品的核心,預計在可預見的未來將繼續(xù)顛覆全球許多行業(yè)和商業(yè)模式。早幾年,這些創(chuàng)新大多受限于數(shù)據(jù)的可用性。
隨著Apache Hadoop的引入,所有這一切都發(fā)生了變化。 Hadoop提供了一個平臺,可以廉價且大規(guī)模地存儲、管理和處理大型數(shù)據(jù)集,從而使大數(shù)據(jù)集的數(shù)據(jù)科學分析變得實際可行。在這個大規(guī)模數(shù)據(jù)深層分析的新世界,數(shù)據(jù)科學是核心競爭力,它使公司或組織得以超越傳統(tǒng)的商業(yè)模式,并在競爭和創(chuàng)新方面保持優(yōu)勢。在Hortonworks工作期間,我們有機會看到各種公司和組織如何利用這些新的機會,幫助它們使用 Hadoop和Spark進行規(guī);瘮(shù)據(jù)科學實現(xiàn)。在本書中,我們想分享一些這樣的經驗。
另外值得強調的是,Apache Hadoop已經從早期的初始形態(tài)演變成整體強大的MapReduce引擎(Hadoop版本1),再到目前可運行在YARN上的多功能數(shù)據(jù)分析平臺(Hadoop版本2)。目前 Hadoop 不僅支持MapReduce,還支持Tez和Spark作為處理引擎。當前版本的Hadoop為許多數(shù)據(jù)科學應用程序提供了一個強大而高效的平臺,并為以前不可想象的新業(yè)務開辟了大有可為的新天地。
本書重點本書著重于在Hadoop和Spark環(huán)境中數(shù)據(jù)科學的實際應用。由于數(shù)據(jù)科學的范圍非常廣泛,而且其中的每一個主題都是深入且復雜的,所以全面闡述數(shù)據(jù)科學極其困難。為此,我們嘗試在每個用例中覆蓋理論并在實際實現(xiàn)時輔以樣例,以期在理論和實踐之間達到平衡。
本書的目的不是深入了解每個機器學習或統(tǒng)計學方法的諸多數(shù)學細節(jié),而是提供重要概念的高級描述以及在業(yè)務問題背景下踐行的指導原則。我們提供了一些參考文獻,這些參考文獻對書中技術的數(shù)學細節(jié)進行了更深入的介紹,附錄C中還提供了相關資源列表。
在學習Hadoop 時,訪問 Hadoop 集群環(huán)境可能會成為一個問題。找到一種有效的方式來“把玩”Hadoop 和 Spark對有些人來說可能是一個挑戰(zhàn)。如果要搭建最基礎的環(huán)境,建議使用 Hortonworks 虛擬機上的沙箱(sandbox),以便輕松開始使用Hadoop。沙箱是在虛擬機內部可運行的完整的單節(jié)點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中也可以找到這些信息。
誰應該讀這本書本書面向那些有興趣了解數(shù)據(jù)科學且有意涉獵大規(guī)模數(shù)據(jù)集下的應用的讀者。如果讀者想要更多地了解如何實現(xiàn)各種用例,找到最適合的工具和常見架構,本書也提供了強大的技術基礎。本書還提供了一個業(yè)務驅動的觀點,即何時何地在大型數(shù)據(jù)集上應用數(shù)據(jù)科學更有利,這可以幫助利益相關者了解自己的公司能產生什么樣的價值,以及在何處投資資源來進行大規(guī)模機器學習。
本書需要讀者有一定的經驗。對于不熟悉數(shù)據(jù)科學的人來說,需要一些基本知識以了解不同的方法,包括統(tǒng)計概念(如均值和標準差),也需要一些編程背景(主要是Python,一點點Java或 Scala)以理解書中的例子。
對于有數(shù)據(jù)科學背景的人員,可能會碰到一些如熟悉眾多Apache項目的實際問題,但是大體上應該對書中的內容游刃有余。此外,所有示例都是基于文本的,并且需要熟悉Linux命令行。需要特別注意的是,我們沒有使用(或測試)Windows環(huán)境的示例。但是,沒有理由假定它們不會在其他環(huán)境中正常運行(Hortonworks支持Windows)。
在具體的Hadoop環(huán)境方面,所有示例和代碼都是在Hortonworks HDP Linux Hadoop版本(筆記本電腦或集群都適用)下運行的。開發(fā)環(huán)境在發(fā)布版本(Cloudera、MapR、Apache Source)或操作系統(tǒng)(Windows)上可能有所不同。但是,所有這些工具在兩種環(huán)境中都可使用。
如何使用本書本書有幾種不同類型的讀者:
數(shù)據(jù)科學家開發(fā)人員/數(shù)據(jù)工程師商業(yè)利益相關者雖然這些想?yún)⑴cHadoop分析的讀者具有不同背景,但他們的目標肯定是相同的:使用Hadoop和Spark處理大規(guī)模的數(shù)據(jù)分析。為此,我們設計了后續(xù)章節(jié),以滿足所有讀者的需求。因此,對于在某領域具有良好實踐經驗的讀者,可以選擇跳過相應的章節(jié)。最后,我們也希望新手讀者將本書作為理解規(guī);臄(shù)據(jù)科學的第一步。我們相信,即使你看得一頭霧水,書中的例子也是有價值的?梢詤⒖己竺娴谋尘安牧蟻砑由罾斫狻
第一部分包括前3章。
第1章概述了數(shù)據(jù)科學及其歷史演變,闡述了常見的數(shù)據(jù)科學家成長之路。對于那些不熟悉數(shù)據(jù)科學的人,該章將幫助你了解為什么數(shù)據(jù)科學會發(fā)展成為一個強大的學科,并深入探討數(shù)據(jù)科學家是如何設計和優(yōu)化項目的。該章還會討論是什么造就了數(shù)據(jù)科學家,以及如何規(guī)劃這個方向的職業(yè)發(fā)展。
第2章概述了業(yè)務用例如何受現(xiàn)代數(shù)據(jù)流量、多樣性和速度的影響,并涵蓋了一些現(xiàn)實的數(shù)據(jù)科學用例,以幫助讀者了解其在各個行業(yè)和各種應用中的優(yōu)勢。
第3章快速概述了Hadoop及其演變歷史,以及Hadoop生態(tài)系統(tǒng)中的各種工具等。對于
目 錄
譯者序
序
前言
致謝
關于作者
第一部分 Hadoop中的數(shù)據(jù)科學概覽
第1章 數(shù)據(jù)科學概述2
1.1 數(shù)據(jù)科學究竟是什么2
1.2 示例:搜索廣告3
1.3 數(shù)據(jù)科學史一瞥4
1.3.1 統(tǒng)計學與機器學習4
1.3.2 互聯(lián)網巨頭的創(chuàng)新5
1.3.3 現(xiàn)代企業(yè)中的數(shù)據(jù)科學6
1.4 數(shù)據(jù)科學家的成長之路6
1.4.1 數(shù)據(jù)工程師7
1.4.2 應用科學家7
1.4.3 過渡到數(shù)據(jù)科學家角色8
1.4.4 數(shù)據(jù)科學家的軟技能9
1.5 數(shù)據(jù)科學團隊的組建10
1.6 數(shù)據(jù)科學項目的生命周期11
1.6.1 問正確的問題11
1.6.2 數(shù)據(jù)攝取12
1.6.3 數(shù)據(jù)清洗:注重數(shù)據(jù)質量12
1.6.4 探索數(shù)據(jù)和設計模型特征13
1.6.5 構建和調整模型13
1.6.6 部署到生產環(huán)境14
1.7 數(shù)據(jù)科學項目的管理14
1.8 小結15
第2章 數(shù)據(jù)科學用例16
2.1 大數(shù)據(jù)—變革的驅動力16
2.1.1 容量:更多可用數(shù)據(jù)17
2.1.2 多樣性:更多數(shù)據(jù)類型17
2.1.3 速度:快速數(shù)據(jù)攝取18
2.2 商業(yè)用例18
2.2.1 產品推薦18
2.2.2 客戶流失分析19
2.2.3 客戶細分19
2.2.4 銷售線索的優(yōu)先級20
2.2.5 情感分析20
2.2.6 欺詐檢測21
2.2.7 預測維護22
2.2.8 購物籃分析22
2.2.9 預測醫(yī)學診斷23
2.2.10 預測患者再入院23
2.2.11 檢測異常訪問24
2.2.12 保險風險分析24
2.2.13 預測油氣井生產水平24
2.3 小結25
第3章 Hadoop與數(shù)據(jù)科學26
3.1 Hadoop 究竟為何物26
3.1.1 分布式文件系統(tǒng)27
3.1.2 資源管理器和調度程序28
3.1.3 分布式數(shù)據(jù)處理框架29
3.2 Hadoop的演進歷史31
3.3 數(shù)據(jù)科學的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為何對數(shù)據(jù)科學家有用39
3.4.1 成本有效的存儲39
3.4.2 讀取模式40
3.4.3 非結構化和半結構化數(shù)據(jù)40
3.4.4 多語言工具41
3.4.5 強大的調度和資源管理功能41
3.4.6 分布式系統(tǒng)抽象分層42
3.4.7 可擴展的模型創(chuàng)建42
3.4.8 模型的可擴展應用43
3.5 小結43
第二部分 用Hadoop準備和可視化數(shù)據(jù)
第4章 將數(shù)據(jù)導入Hadoop46
4.1 Hadoop數(shù)據(jù)湖46
4.2 Hadoop分布式文件系統(tǒng)47
4.3 直接傳輸文件到 HDFS48
4.4 將數(shù)據(jù)從文件導入Hive表49
4.5 使用Spark將數(shù)據(jù)導入Hive表52
4.5.1 使用Spark將CSV文件導入Hive52
4.5.2 使用Spark將JSON文件導入Hive54
4.6 使用Apache Sqoop獲取關系數(shù)據(jù)55
4.6.1 使用Sqoop導入和導出數(shù)據(jù)55
4.6.2 Apache Sqoop版本更改56
4.6.3 使用Sqoop版本2:基本示例57
4.7 使用Apache Flume獲取數(shù)據(jù)流63
4.8 使用Apache Oozie管理Hadoop工作和數(shù)據(jù)流67
4.9 Apache Falcon68
4.10 數(shù)據(jù)攝取的下一步是什么69
4.11 小結70
第5章 使用 Hadoop 進行數(shù)據(jù)再加工 71
5.1 為什么選擇Hadoop做數(shù)據(jù)再加工72
5.2 數(shù)據(jù)質量72
5.2.1 什么是數(shù)據(jù)質量72
5.2.2 處理數(shù)據(jù)質量問題73
5.2.3 使用Hadoop進行數(shù)據(jù)質量控制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 來自復雜數(shù)據(jù)類型的特征84
5.3.7 特征操作85
5.3.8 降維86
5.4 小結88
第6章 探索和可視化數(shù)據(jù)89
6.1 為什么要可視化數(shù)據(jù)89
6.1.1 示例:可視化網絡吞吐量89
6.1.2 想象未曾發(fā)生的突破92
6.2 創(chuàng)建可視化93
6.2.1 對比圖94
6.2.2 組成圖96
6.2.3 分布圖98
6.2.4 關系圖99
6.3 針對數(shù)據(jù)科學使用可視化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可視化大數(shù)據(jù)103
6.6 小結104
第三部分 使用Hadoop進行數(shù)據(jù)建模
第7章 Hadoop與機器學習106
7.1 機器學習概述106
7.2 術語107
7.3 機器學習中的任務類型107
7.4 大數(shù)據(jù)和機器學習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 有監(jiān)督學習算法117
8.5 構建大數(shù)據(jù)預測模型的解決方案118
8.5.1 模型訓練118
8.5.2 批量預測120
8.5.3 實時預測120
8.6 示例:情感分析121
8.6.1 推文數(shù)據(jù)集121
8.6.2 數(shù)據(jù)準備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 距離函數(shù)129
9.3.2 相似函數(shù)129
9.4 聚類算法130
9.5 示例:聚類算法131
9.5.1 k均值聚類131
9.5.2 LDA131
9.6 評估聚類和選擇集群數(shù)量132
9.7 構建大數(shù)據(jù)集群解決方案133
9.8 示例:使用LDA進行主題建模134
9.8.1 特征生成135
9.8.2 運行 LDA136
9.9 小結137