Python+Spark 2.0+Hadoop機器學習與大數據實戰 ( 簡體 字) |
作者:林大貴 | 類別:1. -> 程式設計 -> Python 2. -> 程式設計 -> Spark |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 48356 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:1/1/2018 |
頁數:519 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302490739 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:機器學習是近二十來年興起的多領域學科,機器學習算法可從數據中建立模型,并利用模型對未知數據進行預測。機器學習技術不斷進步,應用相當廣泛,例如推薦引擎、定向廣告、需求預測、垃圾郵件過濾、醫學診斷、自然語言處理、搜索引擎、詐騙偵測、證券分析、視覺辨識、語音識別、手寫識別等。 近年來Google、Facebook、Microsoft、IBM等大公司全力投入機器學習研究與應用。以Google 為例,Google 已經將機器學習運用到垃圾郵件判斷、自動回復、照片分類與搜索、翻譯、語音識別等功能上。同時,各大主流Hadoop發行版公司加強了對機器學習的投入,比如Cloudera對spark ml的完整支持、星環科技基于Spark自主研發的機器學習產品Discover。在不知不覺中,機器學習已經讓日常生活更為便利。 為什么近年來機器學習變得如此熱門,各大公司都爭相投入?因為機器學習需要大量數據進行訓練。大數據的興起帶來了大量的數據以及可存儲大量數據的分布式存儲技術,例如Hadoop HDFS、NoSQL……還有分布式計算可進行大量運算,例如 Spark 基于內存的分布式計算框架/架構,可以大幅提升性能。 本書的主題是Python+Spark+Hadoop 機器學習與大數據分析。使用Python 開發Spark 應用程序,具有多重優勢:不僅可以享有Python 語言特性所帶來的好處,即程序代碼簡明、較易學習、高生產力等,再加上Spark 基于內存的分布式計算框架/架構,還可以大幅提升性能,非常適合需要多次重復運算的機器學習算法,并且Spark 還可以存取 Hadoop HDFS 分布式存儲的大量數據。 本書希望能夠用淺顯易懂的原理介紹和說明以及上機實踐操作、范例程序來降低機器學習與大數據技術的學習門檻,帶領讀者進入機器學習和大數據的領域。當然,整個機器學習與大數據的生態系統非常龐大,需要學習的東西很多。讀者通過本書學習,對機器學習和數據有了基本的概念后就比較容易踏入這個領域了,以便深入研究其他的相關技術。
林大貴
|
內容簡介:本書從淺顯易懂的“大數據和機器學習”原理說明入手,講述大數據和機器學習的基本概念,如分類、分析、訓練、建模、預測、機器學習(推薦引擎)、機器學習(二元分類)、機器學習(多元分類)、機器學習(回歸分析)和數據可視化應用等。書中不僅加入了新近的大數據技術,還豐富了“機器學習”內容。 為降低讀者學習大數據技術的門檻,書中提供了豐富的上機實踐操作和范例程序詳解,展示了如何在單機Windows系統上通過Virtual Box虛擬機安裝多機Linux虛擬機,如何建立Hadoop集群,再建立Spark開發環境。書中介紹搭建的上機實踐平臺并不限制于單臺實體計算機。對于有條件的公司和學校,參照書中介紹的搭建過程,同樣可以實現將自己的平臺搭建在多臺實體計算機上,以便更加接近于大數據和機器學習真實的運行環境。 本書非常適合于學習大數據基礎知識的初學者閱讀,更適合正在學習大數據理論和技術的人員作為上機實踐用的教材。 |
目錄:第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
|
序: |