數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)導(dǎo)論
定 價(jià):59 元
叢書名:數(shù)據(jù)科學(xué)與工程技術(shù)叢書
- 作者:[美] 凱西·斯特拉
- 出版時(shí)間:2018/6/1
- ISBN:9787111600343
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書概要介紹了如何使用Hadoop和Spark處理數(shù)據(jù)科學(xué)涉及的一系列主題:數(shù)據(jù)提取、數(shù)據(jù)再加工(datamunging,通常包含數(shù)據(jù)清洗和整合)、特征提取、機(jī)器學(xué)習(xí)、預(yù)測建模、異常檢測和自然語言處理。整書側(cè)重于具體的例子,并通過不同方式來提供對(duì)商業(yè)價(jià)值的洞察,全書共分三部分,第 一部分包括第1、2、3章,第二部分包括第4、5、6章,第三部分包括第7、8、9、10、11、12章,后在附錄中提供了本書參考材料。
前 言數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)作為許多創(chuàng)新技術(shù)和產(chǎn)品的核心,預(yù)計(jì)在可預(yù)見的未來將繼續(xù)顛覆全球許多行業(yè)和商業(yè)模式。早幾年,這些創(chuàng)新大多受限于數(shù)據(jù)的可用性。
隨著Apache Hadoop的引入,所有這一切都發(fā)生了變化。 Hadoop提供了一個(gè)平臺(tái),可以廉價(jià)且大規(guī)模地存儲(chǔ)、管理和處理大型數(shù)據(jù)集,從而使大數(shù)據(jù)集的數(shù)據(jù)科學(xué)分析變得實(shí)際可行。在這個(gè)大規(guī)模數(shù)據(jù)深層分析的新世界,數(shù)據(jù)科學(xué)是核心競爭力,它使公司或組織得以超越傳統(tǒng)的商業(yè)模式,并在競爭和創(chuàng)新方面保持優(yōu)勢。在Hortonworks工作期間,我們有機(jī)會(huì)看到各種公司和組織如何利用這些新的機(jī)會(huì),幫助它們使用 Hadoop和Spark進(jìn)行規(guī)模化數(shù)據(jù)科學(xué)實(shí)現(xiàn)。在本書中,我們想分享一些這樣的經(jīng)驗(yàn)。
另外值得強(qiáng)調(diào)的是,Apache Hadoop已經(jīng)從早期的初始形態(tài)演變成整體強(qiáng)大的MapReduce引擎(Hadoop版本1),再到目前可運(yùn)行在YARN上的多功能數(shù)據(jù)分析平臺(tái)(Hadoop版本2)。目前 Hadoop 不僅支持MapReduce,還支持Tez和Spark作為處理引擎。當(dāng)前版本的Hadoop為許多數(shù)據(jù)科學(xué)應(yīng)用程序提供了一個(gè)強(qiáng)大而高效的平臺(tái),并為以前不可想象的新業(yè)務(wù)開辟了大有可為的新天地。
本書重點(diǎn)本書著重于在Hadoop和Spark環(huán)境中數(shù)據(jù)科學(xué)的實(shí)際應(yīng)用。由于數(shù)據(jù)科學(xué)的范圍非常廣泛,而且其中的每一個(gè)主題都是深入且復(fù)雜的,所以全面闡述數(shù)據(jù)科學(xué)極其困難。為此,我們嘗試在每個(gè)用例中覆蓋理論并在實(shí)際實(shí)現(xiàn)時(shí)輔以樣例,以期在理論和實(shí)踐之間達(dá)到平衡。
本書的目的不是深入了解每個(gè)機(jī)器學(xué)習(xí)或統(tǒng)計(jì)學(xué)方法的諸多數(shù)學(xué)細(xì)節(jié),而是提供重要概念的高級(jí)描述以及在業(yè)務(wù)問題背景下踐行的指導(dǎo)原則。我們提供了一些參考文獻(xiàn),這些參考文獻(xiàn)對(duì)書中技術(shù)的數(shù)學(xué)細(xì)節(jié)進(jìn)行了更深入的介紹,附錄C中還提供了相關(guān)資源列表。
在學(xué)習(xí)Hadoop 時(shí),訪問 Hadoop 集群環(huán)境可能會(huì)成為一個(gè)問題。找到一種有效的方式來“把玩”Hadoop 和 Spark對(duì)有些人來說可能是一個(gè)挑戰(zhàn)。如果要搭建最基礎(chǔ)的環(huán)境,建議使用 Hortonworks 虛擬機(jī)上的沙箱(sandbox),以便輕松開始使用Hadoop。沙箱是在虛擬機(jī)內(nèi)部可運(yùn)行的完整的單節(jié)點(diǎn)Hadoop。虛擬機(jī)可以在 Windows、Mac OS 和 Linux 下運(yùn)行。有關(guān)如何下載和安裝沙箱的更多信息,請(qǐng)參閱http://hortonworks.com/products/sandbox。有關(guān)Hadoop的進(jìn)一步幫助信息,建議閱讀《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)用的讀者。如果讀者想要更多地了解如何實(shí)現(xiàn)各種用例,找到最適合的工具和常見架構(gòu),本書也提供了強(qiáng)大的技術(shù)基礎(chǔ)。本書還提供了一個(gè)業(yè)務(wù)驅(qū)動(dòng)的觀點(diǎn),即何時(shí)何地在大型數(shù)據(jù)集上應(yīng)用數(shù)據(jù)科學(xué)更有利,這可以幫助利益相關(guān)者了解自己的公司能產(chǎn)生什么樣的價(jià)值,以及在何處投資資源來進(jìn)行大規(guī)模機(jī)器學(xué)習(xí)。
本書需要讀者有一定的經(jīng)驗(yàn)。對(duì)于不熟悉數(shù)據(jù)科學(xué)的人來說,需要一些基本知識(shí)以了解不同的方法,包括統(tǒng)計(jì)概念(如均值和標(biāo)準(zhǔn)差),也需要一些編程背景(主要是Python,一點(diǎn)點(diǎn)Java或 Scala)以理解書中的例子。
對(duì)于有數(shù)據(jù)科學(xué)背景的人員,可能會(huì)碰到一些如熟悉眾多Apache項(xiàng)目的實(shí)際問題,但是大體上應(yīng)該對(duì)書中的內(nèi)容游刃有余。此外,所有示例都是基于文本的,并且需要熟悉Linux命令行。需要特別注意的是,我們沒有使用(或測試)Windows環(huán)境的示例。但是,沒有理由假定它們不會(huì)在其他環(huán)境中正常運(yùn)行(Hortonworks支持Windows)。
在具體的Hadoop環(huán)境方面,所有示例和代碼都是在Hortonworks HDP Linux Hadoop版本(筆記本電腦或集群都適用)下運(yùn)行的。開發(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ù)分析。為此,我們?cè)O(shè)計(jì)了后續(xù)章節(jié),以滿足所有讀者的需求。因此,對(duì)于在某領(lǐng)域具有良好實(shí)踐經(jīng)驗(yàn)的讀者,可以選擇跳過相應(yīng)的章節(jié)。最后,我們也希望新手讀者將本書作為理解規(guī);臄(shù)據(jù)科學(xué)的第一步。我們相信,即使你看得一頭霧水,書中的例子也是有價(jià)值的?梢詤⒖己竺娴谋尘安牧蟻砑由罾斫狻
第一部分包括前3章。
第1章概述了數(shù)據(jù)科學(xué)及其歷史演變,闡述了常見的數(shù)據(jù)科學(xué)家成長之路。對(duì)于那些不熟悉數(shù)據(jù)科學(xué)的人,該章將幫助你了解為什么數(shù)據(jù)科學(xué)會(huì)發(fā)展成為一個(gè)強(qiáng)大的學(xué)科,并深入探討數(shù)據(jù)科學(xué)家是如何設(shè)計(jì)和優(yōu)化項(xiàng)目的。該章還會(huì)討論是什么造就了數(shù)據(jù)科學(xué)家,以及如何規(guī)劃這個(gè)方向的職業(yè)發(fā)展。
第2章概述了業(yè)務(wù)用例如何受現(xiàn)代數(shù)據(jù)流量、多樣性和速度的影響,并涵蓋了一些現(xiàn)實(shí)的數(shù)據(jù)科學(xué)用例,以幫助讀者了解其在各個(gè)行業(yè)和各種應(yīng)用中的優(yōu)勢。
第3章快速概述了Hadoop及其演變歷史,以及Hadoop生態(tài)系統(tǒng)中的各種工具等。對(duì)于
目 錄
譯者序
序
前言
致謝
關(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)計(jì)學(xué)與機(jī)器學(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é)團(tuán)隊(duì)的組建10
1.6 數(shù)據(jù)科學(xué)項(xiàng)目的生命周期11
1.6.1 問正確的問題11
1.6.2 數(shù)據(jù)攝取12
1.6.3 數(shù)據(jù)清洗:注重?cái)?shù)據(jù)質(zhì)量12
1.6.4 探索數(shù)據(jù)和設(shè)計(jì)模型特征13
1.6.5 構(gòu)建和調(diào)整模型13
1.6.6 部署到生產(chǎn)環(huán)境14
1.7 數(shù)據(jù)科學(xué)項(xiàng)目的管理14
1.8 小結(jié)15
第2章 數(shù)據(jù)科學(xué)用例16
2.1 大數(shù)據(jù)—變革的驅(qū)動(dòng)力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 客戶細(xì)分19
2.2.4 銷售線索的優(yōu)先級(jí)20
2.2.5 情感分析20
2.2.6 欺詐檢測21
2.2.7 預(yù)測維護(hù)22
2.2.8 購物籃分析22
2.2.9 預(yù)測醫(yī)學(xué)診斷23
2.2.10 預(yù)測患者再入院23
2.2.11 檢測異常訪問24
2.2.12 保險(xiǎn)風(fēng)險(xiǎn)分析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的演進(jìn)歷史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機(jī)器學(xué)習(xí)軟件包39
3.4 Hadoop為何對(duì)數(shù)據(jù)科學(xué)家有用39
3.4.1 成本有效的存儲(chǔ)39
3.4.2 讀取模式40
3.4.3 非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)40
3.4.4 多語言工具41
3.4.5 強(qiáng)大的調(diào)度和資源管理功能41
3.4.6 分布式系統(tǒng)抽象分層42
3.4.7 可擴(kuò)展的模型創(chuàng)建42
3.4.8 模型的可擴(kuò)展應(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 進(jìn)行數(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進(jìn)行數(shù)據(jù)質(zhì)量控制76
5.3 特征矩陣78
5.3.1 選擇“正確”的特征78
5.3.2 抽樣:選擇實(shí)例79
5.3.3 生成特征80
5.3.4 文本特征81
5.3.5 時(shí)間序列特征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 對(duì)比圖94
6.2.2 組成圖96
6.2.3 分布圖98
6.2.4 關(guān)系圖99
6.3 針對(duì)數(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進(jìn)行數(shù)據(jù)建模
第7章 Hadoop與機(jī)器學(xué)習(xí)106
7.1 機(jī)器學(xué)習(xí)概述106
7.2 術(shù)語107
7.3 機(jī)器學(xué)習(xí)中的任務(wù)類型107
7.4 大數(shù)據(jù)和機(jī)器學(xué)習(xí)108
7.5 機(jī)器學(xué)習(xí)工具109
7.6 機(jī)器學(xué)習(xí)和人工智能的未來110
7.7 小結(jié)110
第8章 預(yù)測建模111
8.1 預(yù)測建模概述111
8.2 分類與回歸112
8.3 評(píng)估預(yù)測模型113
8.3.1 評(píng)估分類器114
8.3.2 評(píng)估回歸模型116
8.3.3 交叉驗(yàn)證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 實(shí)時(shí)預(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 建立一個(gè)分類器125
8.7 小結(jié)126
第9章 聚類127
9.1 聚類概述127
9.2 聚類的使用128
9.3 設(shè)計(jì)相似性度量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 評(píng)估聚類和選擇集群數(shù)量132
9.7 構(gòu)建大數(shù)據(jù)集群解決方案133
9.8 示例:使用LDA進(jìn)行主題建模134
9.8.1 特征生成135
9.8.2 運(yùn)行 LDA136
9.9 小結(jié)137