本書從淺顯易懂的“大數據和機器學習”原理介紹和說明入手,講述大數據和機器學習的基本概念,如:分類、分析、訓練、建模、預測、機器學習(推薦引擎)、機器學習(二元分類)、機器學習(多元分類)、機器學習(回歸分析)和數據可視化應用。為降低讀者學習大數據技術的門檻,書中提供了豐富的上機實踐操作和范例程序詳解,展示了如何在單臺Windows系統上通過Virtual Box虛擬機安裝多臺Linux虛擬機,如何建立Hadoop集群,再建立Spark開發環境。書中介紹搭建的上機實踐平臺并不限制于單臺實體計算機。對于有條件的公司和學校,參照書中介紹的搭建過程,同樣可以將實踐平臺搭建在多臺實體計算機上,以便更加接近于大數據和機器學習真實的運行環境。
本書非常適合于學習大數據基礎知識的初學者閱讀,更適合正在學習大數據理論和技術的人員作為上機實踐用的教材。
大數據技術為金融財務、營銷分析、商業趨勢預測帶來全新變革,詳實的安裝設置與程序解析,降低學習門檻,可單機運行/實機/虛擬機建立多臺運算集群。提供大量實際案例詳解與程序代碼范例。
目錄
第1章 大數據與機器學習 1
1.1 大數據定義 2
1.2 Hadoop簡介 2
1.3 Hadoop HDFS分布式文件系統 3
1.4 Hadoop MapReduce的介紹 5
1.5 Spark的介紹 6
1.6 機器學習的介紹 8
第2章 VirtualBox虛擬機軟件的安裝 11
2.1 VirtualBox的下載和安裝 12
2.2 設置VirtualBox語言版本 16
2.3 設置VirtualBox存儲文件夾 17
2.4 在VirtualBox創建虛擬機 18
第3章 Ubuntu Linux操作系統的安裝 23
3.1 下載安裝Ubuntu的光盤文件 24
3.2 在Virtual設置Ubuntu虛擬光盤文件 26
3.3 開始安裝Ubuntu 28
3.4 啟動Ubuntu 33
3.5 安裝增強功能 34
3.6 設置默認輸入法 38
3.7 設置“終端”程序 40
3.8 設置“終端”程序為白底黑字 42
3.9 設置共享剪貼板 43
第4章 Hadoop Single Node Cluster的安裝 46
4.1 安裝JDK 47
4.2 設置SSH無密碼登錄 50
4.3 下載安裝Hadoop 53
4.4 設置Hadoop環境變量 56
4.5 修改Hadoop配置設置文件 58
4.6 創建并格式化HDFS目錄 62
4.7 啟動Hadoop 63
4.8 打開Hadoop ResourceManager Web界面 66
4.9 NameNode HDFS Web界面 67
第5章 Hadoop Multi Node Cluster的安裝 69
5.1 把Single Node Cluster復制到data1 71
5.2 設置VirtualBox網卡 73
5.3 設置data1服務器 76
5.4 復制data1服務器到data2、data3、master 84
5.5 設置data2、data3服務器 87
5.6 設置master服務器 91
5.7 master連接到data1、data2、data3創建HDFS目錄 94
5.8 創建并格式化NameNode HDFS目錄 98
5.9 啟動Hadoop Multi Node Cluster 99
5.10 打開Hadoop ResourceManager Web界面 102
5.11 打開NameNode Web界面 103
第6章 Hadoop HDFS命令 104
6.1 啟動Hadoop Multi-Node Cluster 105
6.2 創建與查看HDFS目錄 107
6.3 從本地計算機復制文件到HDFS 109
6.4 將HDFS上的文件復制到本地計算機 114
6.5 復制與刪除HDFS文件 116
6.6 在Hadoop HDFS Web用戶界面瀏覽HDFS 118
第7章 Hadoop MapReduce 122
7.1 介紹wordCount.Java 123
7.2 編輯wordCount.Java 124
7.3 編譯wordCount.Java 127
7.4 創建測試文本文件 129
7.5 運行wordCount.Java 130
7.6 查看運行結果 131
7.7 Hadoop MapReduce的缺點 132
第8章 Spark的安裝與介紹 133
8.1 Spark的Cluster模式架構圖 134
8.2 Scala的介紹與安裝 135
8.3 安裝Spark 138
8.4 啟動spark-shell交互界面 141
8.5 設置spark-shell顯示信息 142
8.6 啟動Hadoop 144
8.7 本地運行spark-shell程序 145
8.8 在Hadoop YARN運行spark-shell 147
8.9 構建Spark Standalone Cluster執行環境 149
8.10 在Spark Standalone運行spark-shell 155
第9章 Spark RDD 159
9.1 RDD的特性 160
9.2 基本RDD“轉換”運算 161
9.3 多個RDD“轉換”運算 167
9.4 基本“動作”運算 169
9.5 RDD Key-Value 基本“轉換”運算 171
9.6 多個RDD Key-Value“轉換”運算 175
9.7 Key-Value“動作”運算 178
9.8 Broadcast廣播變量 181
9.9 accumulator累加器 184
9.10 RDD Persistence持久化 186
9.11 使用Spark創建WordCount 188
9.12 Spark WordCount詳細解說 191
第10章 Spark的集成開發環境 195
10.1 下載與安裝eclipse Scala IDE 197
10.2 下載項目所需要的Library 201
10.3 啟動eclipse 205
10.4 創建新的Spark項目 206
10.5 設置項目鏈接庫 210
10.6 新建scala程序 211
10.7 創建WordCount測試文本文件 213
10.8 創建WordCount.scala 213
10.9 編譯WordCount.scala程序 215
10.10 運行WordCount.scala程序 217
10.11 導出jar文件 220
10.12 spark-submit的詳細介紹 223
10.13 在本地local模式運行WordCount程序 224
10.14 在Hadoop yarn-client運行WordCount程序 226
10.15 在Spark Standalone Cluster上運行WordCount程序 230
10.16 本書范例程序的安裝說明 231
第11章 創建推薦引擎 236
11.1 推薦算法介紹 237
11.2 “推薦引擎”大數據分析使用場景 237
11.3 ALS推薦算法的介紹 238
11.4 ml-100k推薦數據的下載與介紹 240
11.5 使用spark-shell導入ml-100k數據 242
11.6 查看導入的數據 244
11.7 使用ALS.train進行訓練 247
11.8 使用模型進行推薦 250
11.9 顯示推薦的電影名稱 252
11.10 創建Recommend項目 255
11.11 Recommend.scala程序代碼 257
11.12 創建PrepareData()數據準備 259
11.13 recommend()推薦程序代碼 261
11.14 運行Recommend.scala 263
11.15 創建AlsEvaluation.scala調校推薦引擎參數 266
11.16 創建PrepareData()數據準備 269
11.17 進行訓練評估 270
11.18 運行AlsEvaluation 279
11.19 修改Recommend.scala為佳參數組合 281
第12章 StumbleUpon數據集 282
12.1 StumbleUpon數據集簡介 283
12.2 下載StumbleUpon數據 285
12.3 用LibreOffice Calc 電子表格查看train.tsv 288
12.4 二元分類算法 291
第13章 決策樹二元分類 292
13.1 決策樹的介紹 293
13.2 創建Classification項目 294
13.3 開始輸入RunDecisionTreeBinary.scala程序 296
13.4 數據準備階段 298
13.5 訓練評估階段 303
13.6 預測階段 308
13.7 運行RunDecisionTreeBinary.scala 311
13.6 修改RunDecisionTreeBinary調校訓練參數 313
13.7 運行RunDecisionTreeBinary進行參數調校 320
13.8 運行RunDecisionTreeBinary不進行參數調校 323
第14章 邏輯回歸二元分類 326
14.1 邏輯回歸分析介紹 327
14.2 RunLogisticRegression WithSGDBinary.scala程序說明 328
14.3 運行RunLogisticRegression WithSGDBinary.scala進行參數調校 331
14.4 運行RunLogisticRegression WithSGDBinary.scala不進行參數調校 335
第15章 支持向量機SVM二元分類 337
15.1 支持向量機SVM算法的基本概念 338
15.2 RunSVMWithSGDBinary.scala 程序說明 338
15.3 運行SVMWithSGD.scala進行參數調校 341
15.4 運行SVMWithSGD.scala不進行參數調校 344
第16章 樸素貝葉斯二元分類 346
16.1 樸素貝葉斯分析原理的介紹 347
16.2 RunNaiveBayesBinary.scala程序說明 348
16.3 運行NaiveBayes.scala進行參數調校 351
16.4 運行NaiveBayes.scala不進行參數調校 353
第17章 決策樹多元分類 355
17.1 “森林覆蓋植被”大數據問題分析場景 356
17.2 UCI Covertype數據集介紹 357
17.3 下載與查看數據 359
17.4 創建RunDecisionTreeMulti.scala 361
17.5 修改RunDecisionTreeMulti.scala程序 362
17.6 運行RunDecisionTreeMulti.scala進行參數調校 367
17.7 運行RunDecisionTreeMulti.scala不進行參數調校 371
第18章 決策樹回歸分析 373
18.1 Bike Sharing大數據問題分析 374
18.2 Bike Sharing數據集 375
18.3 下載與查看數據 375
18.4 創建RunDecisionTreeRegression.scala 378
18.5 修改RunDecisionTreeRegression.scala 380
18.6 運行RunDecisionTreeRegression. scala進行參數調校 389
18.7 運行RunDecisionTreeRegression. scala不進行參數調校 392
第19章 使用Apache Zeppelin 數據可視化 394
19.1 Apache Zeppelin簡介 395
19.2 安裝Apache Zeppelin 395
19.3 啟動Apache Zeppelin 399
19.4 創建新的Notebook 402
19.5 使用Zeppelin運行Shell 命令 403
19.6 創建臨時表UserTable 406
19.7 使用Zeppelin運行年齡統計Spark SQL 407
19.8 使用Zeppelin運行性別統計Spark SQL 409
19.9 按照職業統計 410
19.10 Spark SQL加入文本框輸入參數 412
19.11 加入選項參數 414
19.12 同時顯示多個統計字段 416
19.13 設置工具欄 419
19.14 設置段落標題 420
19.15 設置Paragraph段落的寬度 422
19.16 設置顯示模式 423