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