本書從大數(shù)據(jù)分析的原理、技術和應用的角度,圍繞著大數(shù)據(jù)分析的基礎知識、大數(shù)據(jù)分析平臺的核心原理、大數(shù)據(jù)分析的關鍵技術、大數(shù)據(jù)分析的應用四個方面進行講述,使學生能掌握大數(shù)據(jù)分析的基本原理和核心技術,同時通過大數(shù)據(jù)分析在上市公司信用風險預測研究中的應用案例使學生熟悉大數(shù)據(jù)分析的原理和技術的實際應用,并能搭建大數(shù)據(jù)分析平臺分析大規(guī)模數(shù)據(jù)集。其中,大數(shù)據(jù)分析的基礎知識包括:大數(shù)據(jù)產生的背景、大數(shù)據(jù)的概念、特點、價值、大數(shù)據(jù)帶來的思維變革;大數(shù)據(jù)分析平臺的核心原理包括:兩種常用開源大數(shù)據(jù)分析平臺——Hadoop和Spark的起源、發(fā)展及應用現(xiàn)狀,理解兩種平臺各自的體系架構、基本運行機制及適用范圍,掌握其安裝部署過程及基本使用方法,為大數(shù)據(jù)分析的應用打下基礎;大數(shù)據(jù)分析的關鍵技術包括:Hadoop分布式文件系統(tǒng)、MapReduce并行編程模型、Hadoop 2.0的資源管理調度框架——YARN、大數(shù)據(jù)的獲取和預處理、大數(shù)據(jù)的聚類和分類算法。
海沫,博士。中央財經(jīng)大學信息學院副教授,碩士生導師,校級精品慕課《大數(shù)據(jù)分析原理與應用》負責人,CCF高級會員。2008年7月畢業(yè)于中科院計算所,獲工學博士學位。2013年獲北京市青年英才計劃資助。2017年9月至2018年9月在美國加州大學爾灣分校Donald Bren School of Information and Computer Science訪學。主要從事對等網(wǎng)絡、分布式算法、大數(shù)據(jù)處理、社交網(wǎng)絡分析、區(qū)塊鏈網(wǎng)絡和機器學習等領域的研究,在國內外核心期刊和國際會議上發(fā)表學術論文60余篇。近年來積極探索教學改革,主持或參與教改項目5項,發(fā)表教改論文5篇,參編教材3部。
第4章 MapReduce并行編程模型 83
4.1 MapReduce的概述 83
4.1.1 分布式并行編程 83
4.1.2 MapReduce的簡介 84
4.1.3 Map函數(shù)和Reduce函數(shù) 86
4.2 MapReduce的體系結構 87
4.2.1 MapReduce 1.0體系結構的總體框架 87
4.2.2 Hadoop 2.0的體系結構 88
4.2.3 MapReduce的容錯性 89
4.3 MapReduce的工作流程 89
4.3.1 MapReduce工作流程的概述 89
4.3.2 MapReduce的執(zhí)行過程 90
4.3.3 Shuffle過程詳解 93
4.4 MapReduce的實例分析 99
4.4.1 WordCount 99
4.4.2 倒排索引 102
4.4.3 Top-K 106
4.5 MapReduce的編程實踐 107
4.5.1 任務要求 107
4.5.2 編寫Map處理邏輯 107
4.5.3 編寫Reduce處理邏輯 108
4.5.4 編寫main方法 109
4.5.5 實驗過程 109
4.6 MapReduce的優(yōu)缺點分析 113
4.6.1 MapReduce的優(yōu)點 113
4.6.2 MapReduce的缺點 113
4.7 本章小結 114
4.8 本章習題 114
第5章 Hadoop 2.0的資源管理調度框架——YARN 117
5.1 YARN的產生背景 117
5.1.1 MapReduce 1.0中存在的問題 117
5.1.2 YARN的產生 118
5.2 YARN的設計思路 119
5.3 YARN的體系結構 120
5.3.1 YARN的體系結構總體框架 120
5.3.2 YARN各組件功能的介紹 121
5.3.3 YARN的容錯性 122
5.4 YARN的工作流程 123
5.5 YARN的優(yōu)缺點分析 124
5.5.1 YARN的優(yōu)點 124
5.5.2 YARN的缺點 126
5.6 本章小結 126
5.7 本章習題 127
第6章 大數(shù)據(jù)的獲取和預處理 130
6.1 大數(shù)據(jù)的獲取 130
6.1.1 爬蟲的基礎知識 130
6.1.2 Scrapy爬蟲的原理與流程 139
6.1.3 Scrapy的爬蟲實例 141
6.2 數(shù)據(jù)清洗 146
6.2.1 數(shù)據(jù)清洗的概述 146
6.2.2 數(shù)據(jù)清洗的原理 146
6.2.3 數(shù)據(jù)清洗的流程 147
6.2.4 Pandas數(shù)據(jù)清洗的實例 148
6.3 數(shù)據(jù)歸約 153
6.3.1 維歸約 154
6.3.2 屬性選擇 154
6.3.3 離散化方法 155
6.3.4 PCA的實例 155
6.4 數(shù)據(jù)標準化 158
6.4.1 數(shù)據(jù)標準化的概念 158
6.4.2 數(shù)據(jù)標準化的方法 158
6.4.3 數(shù)據(jù)標準化的實例 159
6.5 本章小結 161
6.6 習題 162
第7章 大數(shù)據(jù)分析算法 163
7.1 聚類算法 163
7.1.1 經(jīng)典聚類算法 163
7.1.2 大數(shù)據(jù)聚類算法的應用 184
7.2 分類算法 188
7.2.1 經(jīng)典分類算法 188
7.2.2 大數(shù)據(jù)分類算法的應用 215
7.3 本章小結 219
7.4 習題 220
第8章 大數(shù)據(jù)分析的應用案例 221
8.1 案例背景 221
8.2 數(shù)據(jù)獲取和預處理 222
8.2.1 獲取來源 222
8.2.2 數(shù)據(jù)說明 222
8.2.3 數(shù)據(jù)預處理 223
8.3 評價指標說明 226
8.4 基于Python的實現(xiàn) 227
8.4.1 基于Python的邏輯回歸 227
8.4.2 基于Python的SVM 229
8.4.3 基于Python的樸素貝葉斯 231
8.4.4 基于Python的決策樹 232
8.4.5 基于Python的隨機森林 234
8.5 基于Spark的實現(xiàn) 236
8.5.1 基于Spark的邏輯回歸 236
8.5.2 基于Spark的SVM 237
8.6 實驗結果分析 238
8.7 本章小結 239
8.8 習題 239