本書介紹了大數據分析的多種模型、所涉及的算法和技術、實現(xiàn)大數據分析系統(tǒng)所需的工具以及大數據分析的具體應用。本書共16章。第1章為緒論,就大數據、大數據分析等概念進行了闡釋,并對本書內容進行了概述;第2~7章介紹了關聯(lián)分析模型、分類分析模型、聚類分析模型、結構分析模型和文本分析模型;第8章介紹大數據分析的數據預處理問題;第9章介紹降維方法;第10章介紹了數據倉庫的概念、內涵、組成、體系結構和建立方法,還介紹了分布式數據倉庫系統(tǒng)和內存數據倉庫系統(tǒng)。第11章介紹大數據分析算法中的回歸算法、關聯(lián)規(guī)則挖掘算法、分類算法以及聚類算法的實現(xiàn)。第12~14章介紹了三種用于實現(xiàn)大數據分析算法的平臺,即并行計算平臺、流式計算平臺和大圖分析平臺。第15章和第16章介紹兩類大數據分析的具體應用,分別講述了社會網絡分析和推薦系統(tǒng)。本書可作為高等院校大數據相關專業(yè)的教學用書,也可以作為從事大數據相關工作的工程技術人員的參考用書。
本書的緣起與成書過程大數據經過分析能夠產生高價值,這無疑已在大數據火爆的今天成為共識,從而使得大數據分析在“大數據+”涉及的領域(如工業(yè)、醫(yī)療、農業(yè)、教育等)有了廣泛的應用。大數據分析的相關知識不僅是大數據行業(yè)的從業(yè)人員應該必備的,也是和大數據相關的各行各業(yè)的從業(yè)者需要了解的。
然而,人們對大數據分析的解讀有多個不同方面。從“分析”的角度解讀,大數據分析可以看作統(tǒng)計分析的延伸;從 “數據”的角度解讀,大數據分析可以看作數據管理與挖掘的擴展;從“大”的角度解讀,大數據分析可以看作數據密集高性能計算的具體化。
而大數據分析的有效實施也需要多個方面的知識。從分析的角度來講,需要統(tǒng)計學、數據分析、機器學習等方面的知識;從數據處理的角度來講,需要數據庫、數據挖掘等方面的知識;從計算平臺的角度來講,需要并行系統(tǒng)和并行計算的知識。
上述多樣化造成了目前大數據分析的教材和參考書的多樣化:有些書重點介紹統(tǒng)計學或者機器學習知識,突出“分析”;有些書重點介紹實現(xiàn)平臺和技術,突出“大”;有些書重點介紹數據挖掘知識及其應用,突出“數據”。筆者認為,這三類知識對大數據分析都是必不可少的,于是試圖編寫一本教材來融合這三類知識,給讀者展示一個相對廣闊的大數據分析圖景。
也正是因為解讀的角度和所需知識的多樣化,本書的成書過程也比較曲折。在成書的過程中,筆者對大數據分析的認識也在不斷加深,因而在編寫過程中幾次變換結構和體例。由于筆者主要從事數據相關工作,所以起初以大數據分析算法和相關技術為主,對數據分析模型方面的知識只是一筆帶過。在和業(yè)內人士的交流中發(fā)現(xiàn),對于很多讀者來說,了解分析模型可能更重要,因為很多分析算法和大數據分析所需的技術都有平臺實現(xiàn),分析模型卻需要了解業(yè)務的人來建立,于是筆者增加了較多數據分析模型方面的內容。而后通過和阿里云的合作,筆者又進一步了解了大數據分析的需求,于是增加了數據預處理等內容,并基于阿里云的技術和平臺對書中的一些內容做了實現(xiàn)。這就是本書現(xiàn)在的版本。
本書的內容本書力求系統(tǒng)地介紹大數據分析過程中的模型、技術、實現(xiàn)平臺和應用?紤]到不同部分的側重不同,故采取了不同的寫作方法,盡可能使本書的內容適合更多的讀者閱讀。
模型部分主要突出了大數據分析模型的描述方法。通過這一部分的學習,讀者可以在不考慮實現(xiàn)的情況下,針對應用需求建立大數據分析模型,即使不了解實現(xiàn)平臺和具體技術,讀者也可以獨立學習這部分內容。在實踐中,可以將分析模型表達為R語言,甚至像阿里云提供的可視化工具中那樣分析流程,即使不掌握算法等方面的技術,同樣可以進行大數據分析。
當然,如果對大數據分析相關技術有深入了解,會更加快速有效地進行分析,因而技術部分介紹了大數據分析所涉及的技術,重點在于解決大數據分析的效率和可擴展性問題。
“工欲善其事,必先利其器”,有了好的開發(fā)平臺,就可以有效地實現(xiàn)相關的技術,因而實現(xiàn)平臺部分介紹了多種開發(fā)大數據分析系統(tǒng)的實現(xiàn)平臺。
最后兩章針對“推薦系統(tǒng)”和“社交網絡”這兩個大數據分析的典型應用涉及的一些模型和技術進行了介紹,也是前面內容在應用中的具體體現(xiàn)。
“大數據”是一個比較寬泛的概念,本書圍繞著分析過程進行講解,突出大數據的特點,與大數據算法、大數據系統(tǒng)、大數據程序的編程實現(xiàn)、機器學習、統(tǒng)計學等書籍具有互補性,讀者可以相互參考。
為方便讀者的學習,筆者總結了一些大數據分析常用系統(tǒng)和工具的安裝與配置方法,讀者可登錄華章網站(www.hzbook.com)在本書網頁中下載文檔。
本書沒講什么由于大數據分析涉及的內容過于寬泛,盡管筆者試圖從多個角度介紹大數據分析,但是限于本書的寫作周期和篇幅,有一些讀者關心的內容并沒有包括在本書之中,比如:
數據流分析算法神經網絡/深度學習大數據可視化大圖分析算法大數據分析技術在醫(yī)療、社會安全、教育、工業(yè)等多個領域的應用一方面,讀者可以閱讀相關的書籍了解這些領域的內容;另一方面,筆者也正在籌劃,期望能夠在本書的再版中列入上述內容。
致使用本書的教師本書涉及多方面內容,對于教學而言,本書適用于多門課程的教學,除了直接用于“大數據分析”或者“數據科學”課程的教學之外,還可以作為“數理統(tǒng)計”“數據挖掘”“機器學習”等課程的補充教材。
針對不同專業(yè)的教學,教師可以選擇不同的內容。針對計算機科學專業(yè)的本科生或者研究生,可以全面講授本書的內容,但深度和側重點上可以有所差別。針對培養(yǎng)數據科學家的“數據科學”專業(yè)的學生,如果培養(yǎng)方案中沒有計算機系統(tǒng)和算法相關的課程,可以重點講授第1~7章的內容,第8~11章可以著重講解技術的選用而不是原理,第15~16章著重講解背景和模型,其中的算法部分可以略去。針對培養(yǎng)工程師的技術類課程或者培訓,可以重點講授第8~14章,第1~7章中對模型的介紹可以略去,僅通過例子
序當前,一場科技革命浪潮正席卷全球,這一次,IT技術是主角之一。云計算、大數據、人工智能、物聯(lián)網,這些新技術正加速走向應用。很快,它們將滲透至我們生產、生活中的每個角落,并將深刻改變我們的世界。
在這些新技術當中,云計算作為基礎設施,將全面支撐各類新技術、新應用。我認為:云計算,特別是公共云,將成為這場科技革命的承載平臺,全面支撐各類技術創(chuàng)新、應用創(chuàng)新和模式創(chuàng)新。
作為一種普惠的公共計算資源與服務,云計算與傳統(tǒng)IT計算資源相比有以下幾個方面的優(yōu)勢:一是硬件的集約化;二是人才的集約化;三是安全的集約化;四是服務的普惠化。
公共云計算的快速發(fā)展將帶動云計算產業(yè)進入一個新的階段,我們可以稱之為“云計算2.0時代”,云計算對行業(yè)演進發(fā)展的支撐作用將更加凸顯。
云計算是“數據在線”的主要承載!霸诰”是我們這個時代最重要的本能,它讓互聯(lián)網變成了最具滲透力的基礎設施,數據變成了最具共享性的生產資料,計算變成了隨時隨地的公共服務。云計算不僅承載數據本身,同時也承載數據應用所需的計算資源。
云計算是“智能”與“智慧”的重要支撐。智慧有兩大支撐,即網絡與大數據。包括互聯(lián)網、移動互聯(lián)網、物聯(lián)網在內的各種網絡,負責搜集和共享數據;大數據作為“原材料”,是各類智慧應用的基礎。云計算是支撐網絡和大數據的平臺,所以,幾乎所有智慧應用都離不開云計算。
云計算是企業(yè)享受平等IT應用與創(chuàng)新環(huán)境的有力保障。當前,企業(yè)創(chuàng)新,特別是小微企業(yè)和創(chuàng)業(yè)企業(yè)的創(chuàng)新面臨IT技術和IT成本方面的壁壘。云計算的出現(xiàn)打破了這一壁壘,IT成為唾手可得的基礎性資源,企業(yè)無須把重點放在IT支撐與實現(xiàn)上,可以更加聚焦于擅長的領域進行創(chuàng)新,這對提升全行業(yè)的信息化水平以及激發(fā)創(chuàng)新創(chuàng)業(yè)熱情將起到至關重要的作用。
除了發(fā)揮基礎設施平臺的支撐作用外,2.0時代的云計算,特別是公共云計算對產業(yè)的影響將從量變到質變。我認為,公共云將全面重塑整個ICT生態(tài),向下定義數據中心、IT設備,甚至是CPU等核心器件,向上定義軟件與應用,橫向承載數據與安全,縱向支撐人工智能的技術演進與應用創(chuàng)新。
對我國來說,發(fā)展云計算產業(yè)的戰(zhàn)略意義重大。我認為,云計算已不僅僅是“IT基礎設施”,它將像電網、移動通信網、互聯(lián)網、交通網絡一樣,成為“國家基礎設施”,全面服務國家多項重大戰(zhàn)略的實施與落地。
云計算是網絡強國建設的重要基石。發(fā)展云計算產業(yè),有利于我國實現(xiàn)IT全產業(yè)鏈的自主可控,提高信息安全保障水平,并推動大數據、人工智能的發(fā)展。
云計算是提升國家治理能力的重要工具。隨著大數據、人工智能、物聯(lián)網等技術應用到智慧城市、智慧政務建設中,國家及各城市的治理水平和服務能力大幅提升,這背后,云計算平臺功不可沒。
云計算將全面推動國家產業(yè)轉型升級。云計算將支撐“中國制造2025”“互聯(lián)網+”戰(zhàn)略,全面推動“兩化”深度融合。同時,云計算也為創(chuàng)新創(chuàng)業(yè)提供了優(yōu)質土壤,在“雙創(chuàng)”領域,云計算已真正成為基礎設施。
在DT時代,我認為計算及計算的能力是衡量一個國家科技實力和創(chuàng)新能力的重要標準。只有掌握計算能力,才具備全面支撐創(chuàng)新的基礎,才有能力挖掘數據的價值,才能在重塑ICT生態(tài)過程中掌握主導權。
接下來的幾年,云計算將成為全球科技和產業(yè)競爭的焦點。目前,我國的云計算產業(yè)具備和發(fā)達國家抗衡的能力,而我們對數據的認知、駕馭能力及對資源的利用開發(fā)和人力也是與發(fā)達國家等同的。因此,我們正處在一個“黃金窗口期”。
我一直認為,支撐技術進步和產業(yè)發(fā)展的最主要力量是人才,未來世界各國在云計算、大數據、AI等領域的競爭,在某種程度上會轉變?yōu)槿瞬胖疇帯R虼,加強專業(yè)人才培養(yǎng)將是推動云計算、大數據產業(yè)發(fā)展的重要抓手。
由于是新興產業(yè),我國云計算、大數據領域的人才相對短缺。作為中國最大的云計算服務企業(yè),阿里云希望能在云計算、大數據領域的人才培養(yǎng)方面做出努力,將我們在云計算、大數據領域的實踐經驗貢獻到高校的教育中,為高校的課程建設提供支持。
與傳統(tǒng)IT基礎技術理論相比,云計算和大數據更偏向應用,而這方面恰恰是阿里云的優(yōu)勢。因此,我們與高校合作,優(yōu)勢互補,將計算機科學的理論和阿里云的產業(yè)實踐融合起來,讓大家從實戰(zhàn)的角度認識、掌握云計算和大數據。
我們希望通過這套教材,把阿里云一些經過檢驗的經驗與成果分享給全社會,讓眾多計算機相關專業(yè)學生、技術開發(fā)者及所有對云計算、大數據感興趣的企業(yè)和個人,可以與我們一起推動中國云計算、大數據產業(yè)的健康快速發(fā)展!
胡曉明阿里云總裁
王宏志,博士,博士生導師,哈爾濱工業(yè)大學計算機科學與技術學院副教授,中國計算機學會高級會員,YOCSEF黑龍江省分論壇AC。2008年7月在哈爾濱工業(yè)大學計算機軟件與理論學科獲得博士學位,博士論文獲得“中國計算機學博士論文”和“哈爾濱工業(yè)大學博士論文”。研究方向包括XML數據管理、圖數據管理、數據質量、信息集成等。先后被評為“微軟學者”、“中國數據庫工程師”和“IBM博士英才”。曾先后擔任全國數據庫會議等多個學術會議的程序委員會委員和IEEE TKDE等多個重要國際期刊的審稿人。
目 錄
序
前言
教學建議
第1章 緒論 1
1.1 什么是大數據 1
1.2 哪里有大數據 3
1.3 什么是大數據分析 4
1.4 大數據分析的過程、技術與難點 5
1.5 全書概覽 8
小結 10
習題 10
第2章 大數據分析模型 11
2.1 大數據分析模型建立方法 11
2.2 基本統(tǒng)計量 13
2.2.1 全表統(tǒng)計量 14
2.2.2 皮爾森相關系數 15
2.3 推斷統(tǒng)計 16
2.3.1 參數估計 16
2.3.2 假設檢驗 20
2.3.3 假設檢驗的阿里云實現(xiàn) 23
小結 28
習題 28
第3章 關聯(lián)分析模型 30
3.1 回歸分析 31
3.1.1 回歸分析概述 31
3.1.2 回歸模型的拓展 35
3.1.3 回歸的阿里云實現(xiàn) 43
3.2 關聯(lián)規(guī)則分析 52
3.3 相關分析 54
小結 57
習題 58
第4章 分類分析模型 60
4.1 分類分析的定義 60
4.2 判別分析的原理和方法 61
4.2.1 距離判別法 61
4.2.2 Fisher判別法 64
4.2.3 貝葉斯判別法 67
4.3 基于機器學習分類的模型 71
4.3.1 支持向量機 72
4.3.2 邏輯回歸 74
4.3.3 決策樹與回歸樹 75
4.3.4 k近鄰 78
4.3.5 隨機森林 78
4.3.6 樸素貝葉斯 81
4.4 分類分析實例 82
4.4.1 二分類實例 82
4.4.2 多分類實例 94
小結 101
習題 102
第5章 聚類分析模型 105
5.1 聚類分析的定義 105
5.1.1 基于距離的親疏關系度量 105
5.1.2 基于相似系數的相似性度量 108
5.1.3 個體與類以及類間的親疏關系度量 110
5.1.4 變量的選擇與處理 111
5.2 聚類分析的分類 111
5.3 聚類有效性的評價 112
5.4 聚類分析方法概述 112
5.5 聚類分析的應用 113
5.6 聚類分析的阿里云實現(xiàn) 114
小結 119
習題 119
第6章 結構分析模型 122
6.1 最短路徑 122
6.2 鏈接排名 123
6.3 結構計數 125
6.4 結構聚類 126
6.5 社團發(fā)現(xiàn) 128
6.5.1 社團的定義 128
6.5.2 社團的分類 128
6.5.3 社團的用途 128
6.5.4 社團的數學定義 128
6.5.5 基于阿里云的社團發(fā)現(xiàn) 130
小結 132
習題 133
第7章 文本分析模型 135
7.1 文本分析模型概述 135
7.2 文本分析方法概述 136
7.2.1 SplitWord 136
7.2.2 詞頻統(tǒng)計 137
7.2.3 TF-IDF 138
7.2.4 PLDA 140
7.2.5 Word2Vec 147
小結 148
習題 149
第8章 大數據分析的數據預處理 150
8.1 數據抽樣和過濾 150
8.1.1 數據抽樣 150
8.1.2 數據過濾 154
8.1.3 基于阿里云的抽樣和過濾實現(xiàn) 154
8.2 數據標準化與歸一化 157
8.3 數據清洗 159
8.3.1 數據質量概述 159
8.3.2 缺失值填充 160
8.3.3 實體識別與真值發(fā)現(xiàn) 162
8.3.4 錯誤發(fā)現(xiàn)與修復 169
小結 171
習題 171
第9章 降維 173
9.1 特征工程 173
9.1.1 特征工程概述 173
9.1.2 特征變換 175
9.1.3 特征選擇 178
9.1.4 特征重要性評估 183
9.2 主成分分析 191
9.2.1 什么是主成分分析 191
9.2.2 主成分分析的計算過程 192
9.2.3 基于阿里云的主成分分析 194
9.2.4 主成分的表現(xiàn)度量 195
9.3 因子分析 196
9.3.1 因子分析概述 196
9.3.2 因子分析的主要分析指標 196
9.3.3 因子分析的計算方法 197
9.4 壓縮感知 203
9.4.1 什么是壓縮感知 203
9.4.2 壓縮感知的具體模型 204
9.5 面向神經網絡的降維 205
9.5.1 面向神經網絡的降維方法概述 205
9.5.2 如何利用神經網絡降維 206
9.6 基于特征散列的維度縮減 207
9.6.1 特征散列方法概述 207
9.6.2 特征散列算法 207
9.7 基于Lasso算法的降維 208
9.7.1 Lasso方法簡介 208
9.7.2 Lasso方法 209
9.7.3 Lasso算法的適用情景 211
小結 211
習題 212
第10章 面向大數據的數據倉庫系統(tǒng) 214
10.1 數據倉庫概述 214
10.1.1 數據倉庫的基本概念 214
10.1.2 數據倉庫的內涵 215
10.1.3 數據倉庫的基本組成 215
10.1.4 數據倉庫系統(tǒng)的體系結構 216
10.1.5 數據倉庫的建立 217
10.2 分布式數據倉庫系統(tǒng) 221
10.2.1 基于Hadoop的數據倉庫系統(tǒng) 221
10.2.2 Shark:基于Spark的數據倉庫系統(tǒng) 227
10.2.3 Mesa 228
10.3 內存數據倉庫系統(tǒng) 231
10.3.1 SAP HANA 231
10.3.2 HyPer 234
10.4 阿里云數據倉庫簡介 236
小結 238
習題 239
第11章 大數據分析算法 240
11.1 大數據分析算法概述 240
11.2 回歸算法 242
11.3 關聯(lián)規(guī)則挖掘算法 248
11.4 分類算法 255
11.4.1 二分類算法 256
11.4.2 多分類算法 273
11.5 聚類算法 283
11.5.1 k-means算法 283
11.5.2 CLARANS算法 291
小結 293
習題 293
第12章 大數據計算平臺 295
12.1 Spark 295
12.1.1 Spark簡介 295
12.1.2 基于Spark的大數據分析實例 296
12.2 Hyracks 299
12.2.1 Hyracks簡介 299
12.2.2 基于Hyracks的大數據分析實例 299
12.3 DPark