Python+Spark 2.0+Hadoop機器學習與大數據實戰
作者:林大貴
定價:99元
印次:1-1
ISBN:9787302490739
出版日期:2018.01.01
印刷日期:2017.12.14
印次:1-1
ISBN:9787302490739
出版日期:2018.01.01
印刷日期:2017.12.14
本書從淺顯易懂的“大數據和機器學習”原理說明入手,講述大數據和機器學習的基本概念,如分類、分析、訓練、建模、預測、機器學習(推薦引擎)、機器學習(二元分類)、機器學習(多元分類)、機器學習(回歸分析)和數據可視化套用等。
目錄
第1章PythonSpark機器學習與Hadoop大數據 1
1.1機器學習的介紹 2
1.2Spark的介紹 5
1.3Spark數據處理RDD、DataFrame、SparkSQL 7
1.4使用Python開發Spark機器學習與大數據套用 8
1.5PythonSpark機器學習 9
1.6SparkMLPipeline機器學習流程介紹 10
1.7Spark2.0的介紹 12
1.8大數據定義 13
1.9Hadoop簡介 14
1.10HadoopHDFS分散式檔案系統 14
1.11HadoopMapReduce的介紹 17
1.12結論 18
第2章VirtualBox虛擬機軟體的安裝 19
2.1VirtualBox的下載和安裝 20
2.2設定VirtualBox存儲資料夾 23
2.3在VirtualBox創建虛擬機 25
2.4結論 29
第3章UbuntuLinux作業系統的安裝 30
3.1UbuntuLinux作業系統的安裝 31
3.2在Virtual設定Ubuntu虛擬光碟檔案 33
3.3開始安裝Ubuntu 35
3.4啟動Ubuntu 40
3.5安裝增強功能 41
3.6設定默認輸入法 45
3.7設定“終端”程式 48
3.8設定“終端”程式為白底黑字 49
3.9設定共享剪貼簿 50
3.10設定最佳下載伺服器 52
3.11結論 56
第4章HadoopSingleNodeCluster的安裝 57
4.1安裝JDK 58
4.2設定SSH無密碼登錄 61
4.3下載安裝Hadoop 64
4.4設定Hadoop環境變數 67
4.5修改Hadoop配置設定檔案 69
4.6創建並格式化HDFS目錄 73
4.7啟動Hadoop 74
4.8打開HadoopResource-ManagerWeb界面 76
4.9NameNodeHDFSWeb界面 78
4.10結論 79
第5章HadoopMultiNodeCluster的安裝 80
5.1把SingleNodeCluster複製到data1 83
5.2設定VirtualBox網卡 84
5.3設定data1伺服器 87
5.4複製data1伺服器到data2、data3、master 94
5.5設定data2伺服器 97
5.6設定data3伺服器 100
5.7設定master伺服器 102
5.8master連線到data1、data2、data3創建HDFS目錄 107
5.9創建並格式化NameNodeHDFS目錄 110
5.10啟動HadoopMultiNodeCluster 112
5.11打開HadoopResourceManagerWeb界面 114
5.12打開NameNodeWeb界面 115
5.13停止HadoopMultiNodeCluster 116
5.14結論 116
第6章HadoopHDFS命令 117
6.1啟動HadoopMulti-NodeCluster 118
6.2創建與查看HDFS目錄 120
6.3從本地計算機複製檔案到HDFS 122
6.4將HDFS上的檔案複製到本地計算機 127
6.5複製與刪除HDFS檔案 129
6.6在HadoopHDFSWeb用戶界面瀏覽HDFS 131
6.7結論 134
第7章HadoopMapReduce 135
7.1簡單介紹WordCount.java 136
7.2編輯WordCount.java 137
7.3編譯WordCount.java 141
7.4創建測試文本檔案 143
7.5運行WordCount.java 145
7.6查看運行結果 146
7.7結論 147
第8章PythonSpark的介紹與安裝 148
8.1Scala的介紹與安裝 150
8.2安裝Spark 153
8.3啟動pyspark互動式界面 156
8.4設定pyspark顯示信息 157
8.5創建測試用的文本檔案 159
8.6本地運行pyspark程式 161
8.7在HadoopYARN運行pyspark 163
8.8構建SparkStandaloneCluster運行環境 165
8.9在SparkStandalone運行pyspark 171
8.10SparkWebUI界面 173
8.11結論 175
第9章在IPythonNotebook運行PythonSpark程式 176
9.1安裝Anaconda 177
9.2在IPythonNotebook使用Spark 180
9.3打開IPythonNotebook筆記本 184
9.4插入程式單元格 185
9.5加入注釋與設定程式代碼說明標題 186
9.6關閉IPythonNotebook 188
9.7使用IPythonNotebook在HadoopYARN-client模式運行 189
9.8使用IPythonNotebook在SparkStandAlone模式運行 192
9.9整理在不同的模式運行IPythonNotebook的命令 194
9.9.1在Local啟動IPythonNotebook 195
9.9.2在HadoopYARN-client模式啟動IPythonNotebook 195
9.9.3在SparkStandAlone模式啟動IPythonNotebook 195
9.10結論 196
第10章PythonSparkRDD 197
10.1RDD的特性 198
10.2開啟IPythonNotebook 199
10.3基本RDD“轉換”運算 201
10.4多個RDD“轉換”運算 206
10.5基本“動作”運算 208
10.6RDDKey-Value基本“轉換”運算 209
10.7多個RDDKey-Value“轉換”運算 212
10.8Key-Value“動作”運算 215
10.9Broadcast廣播變數 217
10.10accumulator累加器 220
10.11RDDPersistence持久化 221
10.12使用Spark創建WordCount 223
10.13SparkWordCount詳細解說 226
10.14結論 228
第11章PythonSpark的集成開發環境 229
11.1下載與安裝eclipseScalaIDE 232
11.2安裝PyDev 235
11.3設定字元串替代變數 240
11.4PyDev設定Python程式庫 243
11.5PyDev設定anaconda2程式庫路徑 245
11.6PyDev設定SparkPython程式庫 247
11.7PyDev設定環境變數 248
11.8新建PyDev項目 251
11.9加入WordCount.py程式 253
11.10輸入WordCount.py程式 254
11.11創建測試檔案並上傳至HDFS目錄 257
11.12使用spark-submit執行WordCount程式 259
11.13在HadoopYARN-client上運行WordCount程式 261
11.14在SparkStandaloneCluster上運行WordCount程式 264
11.15在eclipse外部工具運行PythonSpark程式 267
11.16在eclipse運行spark-submitYARN-client 273
11.17在eclipse運行spark-submitStandalone 277
11.18結論 280
第12章PythonSpark創建推薦引擎 281
12.1推薦算法介紹 282
12.2“推薦引擎”大數據分析使用場景 282
12.3ALS推薦算法的介紹 283
12.4如何搜尋數據 285
12.5啟動IPythonNotebook 289
12.6如何準備數據 290
12.7如何訓練模型 294
12.8如何使用模型進行推薦 295
12.9顯示推薦的電影名稱 297
12.10創建Recommend項目 299
12.11運行RecommendTrain.py推薦程式代碼 302
12.12創建Recommend.py推薦程式代碼 304
12.13在eclipse運行Recommend.py 307
12.14結論 310
第13章PythonSparkMLlib決策樹二元分類 311
13.1決策樹介紹 312
13.2“StumbleUponEvergreen”大數據問題 313
13.2.1Kaggle網站介紹 313
13.2.2“StumbleUponEvergreen”大數據問題場景分析 313
13.3決策樹二元分類機器學習 314
13.4如何蒐集數據 315
13.4.1StumbleUpon數據內容 315
13.4.2下載StumbleUpon數據 316
13.4.3用LibreOfficeCalc電子表格查看train.tsv 319
13.4.4複製到項目目錄 322
13.5使用IPythonNotebook示範 323
13.6如何進行數據準備 324
13.6.1導入並轉換數據 324
13.6.2提取feature特徵欄位 327
13.6.3提取分類特徵欄位 328
13.6.4提取數值特徵欄位 331
13.6.5返回特徵欄位 331
13.6.6提取label標籤欄位 331
13.6.7建立訓練評估所需的數據 332
13.6.8以隨機方式將數據分為3部分並返回 333
13.6.9編寫PrepareData(sc)函式 333
13.7如何訓練模型 334
13.8如何使用模型進行預測 335
13.9如何評估模型的準確率 338
13.9.1使用AUC評估二元分類模型 338
13.9.2計算AUC 339
13.10模型的訓練參數如何影響準確率 341
13.10.1建立trainEvaluateModel 341
13.10.2評估impurity參數 343
13.10.3訓練評估的結果以圖表顯示 344
13.10.4編寫evalParameter 347
13.10.5使用evalParameter評估maxDepth參數 347
13.10.6使用evalParameter評估maxBins參數 348
13.11如何找出準確率最高的參數組合 349
13.12如何確認是否過度訓練 352
13.13編寫RunDecisionTreeBinary.py程式 352
13.14開始輸入RunDecisionTreeBinary.py程式 353
13.15運行RunDecisionTreeBinary.py 355
13.15.1執行參數評估 355
13.15.2所有參數訓練評估找出最好的參數組合 355
13.15.3運行RunDecisionTreeBinary.py不要輸入參數 357
13.16查看DecisionTree的分類規則 358
13.17結論 360
第14章PythonSparkMLlib邏輯回歸二元分類 361
14.1邏輯回歸分析介紹 362
14.2RunLogisticRegressionWithSGDBinary.py程式說明 363
14.3運行RunLogisticRegressionWithSGDBinary.py進行參數評估 367
14.4找出最佳參數組合 370
14.5修改程式使用參數進行預測 370
14.6結論 372
第15章PythonSparkMLlib支持向量機SVM二元分類 373
15.1支持向量機SVM算法的基本概念 374
15.2運行SVMWithSGD.py進行參數評估 376
15.3運行SVMWithSGD.py訓練評估參數並找出最佳參數組合 378
15.4運行SVMWithSGD.py使用最佳參數進行預測 379
15.5結論 381
第16章PythonSparkMLlib樸素貝葉斯二元分類 382
16.1樸素貝葉斯分析原理的介紹 383
16.2RunNaiveBayesBinary.py程式說明 384
16.3運行NaiveBayes.py進行參數評估 386
16.4運行訓練評估並找出最好的參數組合 387
16.5修改RunNaiveBayesBinary.py直接使用最佳參數進行預測 388
16.6結論 390
第17章PythonSparkMLlib決策樹多元分類 391
17.1“森林覆蓋植被”大數據問題分析場景 392
17.2UCICovertype數據集介紹 393
17.3下載與查看數據 394
17.4修改PrepareData()數據準備 396
17.5修改trainModel訓練模型程式 398
17.6使用訓練完成的模型預測數據 399
17.7運行RunDecisionTreeMulti.py進行參數評估 401
17.8運行RunDecisionTreeMulti.py訓練評估參數並找出最好的參數組合 403
17.9運行RunDecisionTreeMulti.py不進行訓練評估 404
17.10結論 406
第18章PythonSparkMLlib決策樹回歸分析 407
18.1BikeSharing大數據問題分析 408
18.2BikeSharing數據集 409
18.3下載與查看數據 409
18.4修改PrepareData()數據準備 412
18.5修改DecisionTree.trainRegressor訓練模型 415
18.6以RMSE評估模型準確率 416
18.7訓練評估找出最好的參數組合 417
18.8使用訓練完成的模型預測數據 417
18.9運行RunDecisionTreeMulti.py進行參數評估 419
18.10運行RunDecisionTreeMulti.py訓練評估參數並找出最好的參數組合 421
18.11運行RunDecisionTreeMulti.py不進行訓練評估 422
18.12結論 424
第19章PythonSparkSQL、DataFrame、RDD數據統計與可視化 425
19.1RDD、DataFrame、SparkSQL比較 426
19.2創建RDD、DataFrame與SparkSQL 427
19.2.1在local模式運行IPythonNotebook 427
19.2.2創建RDD 427
19.2.3創建DataFrame 428
19.2.4設定IPythonNotebook字型 430
19.2.5為DataFrame創建別名 431
19.2.6開始使用SparkSQL 431
19.3SELECT顯示部分欄位 434
19.3.1使用RDD選取顯示部分欄位 434
19.3.2使用DataFrames選取顯示欄位 434
19.3.3使用SparkSQL選取顯示欄位 435
19.4增加計算欄位 436
19.4.1使用RDD增加計算欄位 436
19.4.2使用DataFrames增加計算欄位 436
19.4.3使用SparkSQL增加計算欄位 437
19.5篩選數據 438
19.5.1使用RDD篩選數據 438
19.5.2使用DataFrames篩選數據 438
19.5.3使用SparkSQL篩選數據 439
19.6按單個欄位給數據排序 439
19.6.1RDD按單個欄位給數據排序 439
19.6.2使用SparkSQL排序 440
19.6.3使用DataFrames按升序給數據排序 441
19.6.4使用DataFrames按降序給數據排序 442
19.7按多個欄位給數據排序 442
19.7.1RDD按多個欄位給數據排序 442
19.7.2SparkSQL按多個欄位給數據排序 443
19.7.3DataFrames按多個欄位給數據排序 443
19.8顯示不重複的數據 444
19.8.1RDD顯示不重複的數據 444
19.8.2SparkSQL顯示不重複的數據 445
19.8.3Dataframes顯示不重複的數據 445
19.9分組統計數據 446
19.9.1RDD分組統計數據 446
19.9.2SparkSQL分組統計數據 447
19.9.3Dataframes分組統計數據 448
19.10Join聯接數據 450
19.10.1創建ZipCode 450
19.10.2創建zipcode_tab 452
19.10.3SparkSQL聯接zipcode_table數據表 454
19.10.4DataFrameuser_df聯接zipcode_df 455
19.11使用PandasDataFrames繪圖 457
19.11.1按照不同的州統計並以直方圖顯示 457
19.11.2按照不同的職業統計人數並以圓餅圖顯示 459
19.12結論 461
第20章SparkMLPipeline機器學習流程二元分類 462
20.1數據準備 464
20.1.1在local模式執行IPythonNotebook 464
20.1.2編寫DataFramesUDF用戶自定義函式 466
20.1.3將數據分成train_df與test_df 468
20.2機器學習pipeline流程的組件 468
20.2.1StringIndexer 468
20.2.2OneHotEncoder 470
20.2.3VectorAssembler 472
20.2.4使用DecisionTreeClassi?er二元分類 474
20.3建立機器學習pipeline流程 475
20.4使用pipeline進行數據處理與訓練 476
20.5使用pipelineModel進行預測 477
20.6評估模型的準確率 478
20.7使用TrainValidation進行訓練驗證找出最佳模型 479
20.8使用crossValidation交叉驗證找出最佳模型 481
20.9使用隨機森林RandomForestClassi?er分類器 483
20.10結論 485
第21章SparkMLPipeline機器學習流程多元分類 486
21.1數據準備 487
21.1.1讀取文本檔案 488
21.1.2創建DataFrame 489
21.1.3轉換為double 490
21.2建立機器學習pipeline流程 492
21.3使用dt_pipeline進行數據處理與訓練 493
21.4使用pipelineModel進行預測 493
21.5評估模型的準確率 495
21.4使用TrainValidation進行訓練驗證找出最佳模型 496
21.7結論 498
第22章SparkMLPipeline機器學習流程回歸分析 499
22.1數據準備 501
22.1.1在local模式執行IPythonNotebook 501
22.1.2將數據分成train_df與test_df 504
22.2建立機器學習pipeline流程 504
22.3使用dt_pipeline進行數據處理與訓練 506
22.4使用pipelineModel進行預測 506
22.5評估模型的準確率 507
22.6使用TrainValidation進行訓練驗證找出最佳模型 508
22.7使用crossValidation進行交叉驗證找出最佳模型 510
22.8使用GBTRegression 511
22.9結論 513
附錄A本書範例程式下載與安裝說明 514
A.1下載範例程式 515
A.2打開本書IPythonNotebook範例程式 516
A.3打開eclipsePythonProject範例程式 518