预购商品
书目分类
特别推荐
◆本書淺顯易懂的原理說明 ◆Step by Step實機操作 ◆範例程式詳細解說 ◆大幅降低機器學習與大數據技術的學習門檻 機器學習正熱門 機器學習是近20多年興起的多領域學科,機器學習演算法可從大量數據中建立模型,並利用模型對未知數據進行預測。近年來各大公司google、 facebook、microsoft、IBM…等,全力投入機器學習研究與應用,以Google為例,Google早已將機器學習,運用在垃圾郵件判 斷、自動回覆、照片分類與搜尋、翻譯、語音辨識等功能。在你在不知不覺中,機器學習已經讓日常生活更便利。 「大數據」與「機器學習」相輔相成 大數據的特性: 大量資料、多樣化、速度快。因此如何從大量資料中擷取出有用的資訊,是大數據的主要課題。機器學習需要大量資料進行訓練,並且訓練過程需大量運算。正好大 數據的興起帶來大量資料,以及可儲存大量數據的分散式儲存技術,例如:Hadoop HDFS、NoSQL..。還有分散式運算可進行大量運算,例如Spark 基於記憶體內的分散式運算框架,可以大幅提升效能。 Python與Spark與Hadoop的完美結合 本書的主題是Python+Spark+Hadoop機器學習與大數據分析:使用Python開發Spark應用程式,具有多重好處,既可以享有 Python語言特性所帶來的好處:程式碼簡明、易學習、高生產力的特質。再加上Spark基於記憶體內的分散式運算框架,非常適合需多次重覆運算的機器 學習演算法,可以大幅提升效能。Spark可輕易讀取Hadoop分散式儲存技術HDFS。Spark也可以在Hadoop 新MapReduce架構YARN執行。 Python與Spark機器學習與資料視覺化 Python資料分析的相 關模組如NumPy、Matplotlib、Pandas、Scikit-learn,讓Python成為資料分析主要語言之一。使用Python開發 Spark機器學習應用時,你仍然可以繼續使用這些模組,這對於Python開發者帶來很大的方便,例如:你可以使用Spark ML Pipeline機器學習、訓練、預測。並且可以將Spark DataFrames轉換為Pandas DataFrame。轉換後你就可以運用Python豐富的資料視覺化套件,例如matplotlib、Bokeh…等,進行資料視覺化。 本書特色 實機操作建置Spark+Hadoop機器學習與大數據平台 一般人學習大數據的困難是,沒有多台機器建立分散式系統,但是透過本書介紹使用Virtual Box虛擬機器的方法,就能在自家電腦演練建立Hadoop叢集,並且建立Python Spark機器學習開發環境。 以實務範例程式學會Python+Spark機器學習與大數據 以 大數據實務案例MovieLens(電影喜好推薦引擎)、StumbleUpon (網頁二元分類)、Covtype(森林覆蓋多元分類),BikeSharing(類Ubike租借數量迴歸分析),介紹如何使用Python Spark運用機器學習演算法:決策樹、邏輯迴歸、支持向量機器SVM、單純貝氏。進行資料處理、訓練、建立模型、訓練驗證找出最佳模型、預測結果。
Chapter01 Python Spark機器學習與Hadoop大數據 1.1 機器學習介紹 1.2 Spark介紹 1.3 Spark資料處理RDD、DataFrame、Spark SQL 1.4 使用Python開發Spark機器學習與大數據應用 1.5 Python Spark 器學習 1.6 Spark ML Pipeline機器學習流程介紹 1.7 Spark 2.0介紹 1.8 大數據定義 1.9 Hadoop簡介 1.10 Hadoop HDFS分散式檔案系統 1.11 Hadoop MapReduce介紹 1.12 結論 Chapter02 Virtual Box虛擬機器軟體安裝 2.1 VirtualBox下載安裝 2.2 設定Virtual Box儲存資料夾 2.3 在VirtualBox建立虛擬機器 2.4 結論 Chapter03 Ubuntu Linux作業系統安裝 3.1 Ubuntu Linux的作業系統安裝 3.2 在Virtual Box設定Ubuntu虛擬光碟檔案 3.3 開始安裝Ubuntu 3.4 啟動Ubuntu 3.5 安裝Guest Additions 3.6 設定預設輸入法 3.7 設定終端機程式 3.8 設定終端機白底黑字 3.9 設定共用剪貼簿 3.10 設定最佳下載伺服器 3.11 結論 Chapter04 Hadoop Single Node Cluster安裝 4.1 安裝JDK 4.2 設定SSH無密碼登入 4.3 下載安裝Hadoop 4.4 設定Hadoop環境變數 4.5 修改Hadoop組態設定檔 4.6 建立與格式化HDFS目錄 4.7 啟動Hadoop 4.8 開啟Hadoop Resource Manager Web介面 4.9 NameNode HDFS Web介面 4.10 結論 Chapter05 Hadoop Multi Node Cluster安裝 5.1 複製Single Node Cluster到data1 5.2 VirtualBox介面卡設定 5.3 設定data1伺服器 5.4 複製data1伺服器至data2、data3、master 5.5 設定data2伺服器 5.6 設定data3伺服器 5.7 設定master伺服器 5.8 master連線至data1、data2、data3建立HDFS目錄 5.9 建立與格式化NameNode HDFS目錄 5.10 啟動Hadoop Multi Node Cluster 5.11 開啟Hadoop ResourceManager Web介面 5.12 開啟NameNode Web介面 5.13 停止Hadoop Multi Node Cluster 5.14 結論 Chapter06 Hadoop HDFS命令介紹 6.1 啟動Hadoop Multi-Node Cluster 6.2 建立與查看HDFS目錄 6.3 從本機複製檔案到HDFS 6.4 將HDFS 上的檔案複製到本機 6.5 複製與刪除HDFS檔案 6.6 Hadoop HDFS Web UI介面瀏覽HDFS 6.7 結論 Chapter07 Hadoop MapReduce介紹 7.1 wordCount.java介紹 7.2 編輯wordCount.java 7.3 編譯wordCount.java 7.4 建立測試文字檔 7.5 執行wordCount.java 7.6 查看執行結果 7.7 結論 Chapter08 Python Spark介紹與安裝 8.1 Scala介紹與安裝 8.2 安裝SPARK 2.0 8.3 啟動pyspark互動介面 8.4 設定pyspark顯示訊息 8.5 建立測試文字檔 8.6 本機執行pyspark程式 8.7 在Hadoop YARN執行pyspark 8.8 建置Spark standalone cluster執行環境 8.9 在Spark standalone執行pyspark 8.10 Spark Web UI介面 8.11 結論 Chapter09 在IPython Notebook 執行Python Spark程式 9.1 安裝Anaconda 9.2 在IPython Notebook使用Spark 9.3 開啟IPython Notebook筆記本 9.4 插入程式儲存格 9.5 加入註解與設定程式碼說明標題 9.6 關閉IPython Notebook 9.7 使用IPython Notebook在hadoop yarn-client模式執行 9.8 使用IPython Notebook在Spark Stand Alone模式執行 9.9 在不同的模式執行IPython Notebook指令整理 9.10 結論 Chapter10 Python Spark RDD介紹 10.1 RDD的特性 10.2 開啟IPython Notebook 10.3 基本RDD「轉換」運算 10.4 多個RDD「轉換」運算 10.5 基本「動作」運算 10.6 RDD Key-Value基本「轉換」運算 10.7 多個RDD Key-Value「轉換」運算 10.8 Key-Value「動作」運算 10.9 Broadcast廣播變數 10.10 accumulator累加器 10.11 RDD Persistence持久化 10.12 使用Spark 建立WordCount 10.13 Spark WordCount詳細解說 10.14 結論 Chapter11 Python Spark整合開發環境介紹 11.1 下載與安裝eclipse Scala IDE 11.2 安裝pyDev 11.3 設定字串替代變數 11.4 PyDev 設定Python程式庫 11.5 PyDev 設定anaconda2程式庫路徑 11.6 PyDev 設定Spark Python程式庫 11.7 PyDev 設定環境變數 11.8 新增PyDev專案 11.9 加入WordCount.py程式 11.10 輸入WordCount.py程式 11.11 建立測試檔案並上傳測試檔至HDFS目錄 11.12 使用spark-submit來執行WordCount程式 11.13 在hadoop yarn-client執行WordCount程式 11.14 在Spark Standalone Cluster 執行WordCount程式 11.15 在eclipse外部工具執行Python Spark程式 11.16 在eclipse執行spark-submit yarn-client 11.17 在eclipse執行spark-submit Standalone 11.18 結論 Chapter12 Python Spark建立推薦引擎 12.1 推薦演算法介紹 12.2 「推薦引擎」大數據分析使用情境 12.3 ALS 推薦演算法介紹 12.4 如何蒐集資料? 12.5 啟動IPython Note Book 12.6 如何資料準備? 12.7 如何訓練模型? 12.8 如何使用模型進行推薦? 12.9 顯示推薦的電影的名稱 12.10 建立Recommend 推薦系統 12.11 執行RecommendTrain.py推薦程式碼 12.12 建立Recommend.py推薦程式碼 12.13 在eclipse執行Recommend.py 12.14 結論 Chapter13 Python Spark MLlib決策樹二元分類 13.1 決策樹介紹 13.2 「StumbleUpon Evergreen」大數據問題 13.3 決策樹二元分類機器學習 13.4 如何蒐集資料? 13.5 使用iPython Note Book 示範 13.6 如何資料準備? 13.7 如何訓練模型? 13.8 如何使用模型進行預測? 13.9 如何評估模型的準確率? 13.10 模型的訓練參數如何影響準確率? 13.11 如何找出準確率最高的參數組合? 13.12 如何確認是否Overfitting(過度訓練)? 13.13 建立RunDecisionTreeBinary.py程式 13.14 開始輸入RunDecisionTreeBinary.py程式 13.15 執行RunDecisionTreeBinary.py 13.16 查看DecisionTree的分類規則 13.17 結論 Chapter14 Python Spark MLlib邏輯迴歸二元分類 14.1 邏輯迴歸分類介紹 14.2 RunLogisticRegressionWithSGDBinary.py程式說明 14.3 執行RunLogisticRegressionWithSGDBinary.py進行參數評估 14.4 執行找出最佳參數組合 14.5 修改程式使用最佳參數進行預測 14.6 結論 Chapter15 Python Spark MLlib 支援向量機器SVM二元分類 15.1 支援向量機器SVM演算法基本概念 15.2 執行SVMWithSGD.py進行參數評估 15.3 執行SVMWithSGD.py訓練評估參數,找出最佳的參數組合 15.4 執行SVMWithSGD.py使用最佳參數進行預測 15.5 結論 Chapter16 Python Spark MLlib單純貝氏二元分類 16.1 單純貝氏分析原理介紹 16.2 RunNaiveBayesBinary.py程式說明 16.3 執行RunNaiveBayesBinary.py進行參數評估 16.4 執行訓練評估參數,找出最好的參數組合 16.5 修改RunNaiveBayesBinary.py直接使用最佳參數進行預測 16.6 結論 Chapter17 Python Spark MLlib決策樹多元分類 17.1 「森林覆蓋樹種」大數據問題分析情境 17.2 UCI Covertype資料集介紹 17.3 下載與查看資料 17.4 修改PrepareData()資料準備 17.5 修改trainModel 訓練模型程式 17.6 使用訓練完成的模型預測資料 17.7 執行RunDecisionTreeMulti.py進行參數評估 17.8 執行RunDecisionTreeMulti.py訓練評估參數,找出最好的參數組合 17.9 執行RunDecisionTreeMulti.py不進行訓練評估 17.10 結論 Chapter18 Python Spark MLlib決策樹迴歸分析 18.1 Bike Sharing大數據問題分析 18.2 Bike Sharing資料集 18.3 下載與查看資料 18.4 修改PrepareData()資料準備 18.5 修改以DecisionTree.trainRegressor訓練模型 18.6 以RMSE 評估模型準確率 18.7 訓練評估找出最好的參數組合 18.8 使用訓練完成的模型預測資料 18.9 執行RunDecisionTreeMulti.py進行參數評估 18.10 執行RunDecisionTreeMulti.py訓練評估參數,找出最好的參數組合 18.11 執行RunDecisionTreeMulti.py不進行訓練評估 18.12 結論 Chapter19 Python Spark SQL、DataFrame、RDD資料統計與視覺化 19.1 RDD、DataFrame、Spark SQL比較 19.2 建立RDD、DataFrame 與Spark SQL tempTable 19.3 SELECT顯示部分欄位 19.4 增加計算欄位 19.5 篩選資料 19.6 單一欄位排序資料 19.7 多欄位排序資料 19.8 顯示不重複資料 19.9 群組統計資料 19.10 Join關聯資料 19.11 以Pandas DataFrame繪圖 19.12 結論 Chapter20 Spark ML Pipeline機器學習流程二元分類 20.1 資料準備 20.2 介紹機器學習pipeline流程的元件 20.3 建立機器學習pipeline流程 20.4 使用pipeline進行資料處理與訓練 20.5 使用pipelineModel進行預測 20.6 評估模型的準確率 20.7 使用TrainValidation進行訓練驗證找出最佳模型 20.8 使用crossValidation交叉驗證找出最佳模型 20.9 使用隨機森林RandomForestClassifier分類器 20.10 結論 Chapter21 Spark ML Pipeline機器學習流程多元分類 21.1 資料準備 21.2 建立機器學習pipeline流程 21.3 使用dt_pipeline進行資料處理與訓練 21.4 使用pipelineModel進行預測 21.5 評估模型的準確率 21.6 使用TrainValidation進行訓練驗證找出最佳模型 21.7 結論 Chapter22 Spark ML Pipeline機器學習流程迴歸分析 22.1 資料準備 22.2 建立機器學習pipeline流程 22.3 使用dt_pipeline進行資料處理與訓練 22.4 使用pipelineModel進行預測 22.5 評估模型的準確率 22.6 使用TrainValidation進行訓練驗證找出最佳模型 22.7 使用crossValidation進行交叉驗證找出最佳模型 22.8 使用GBT Regression 22.9 結論 Appendix A 本書範例程式下載與安裝說明 A.1 下載範例程式 A.2 開啟本書iPython Note Book範例程式 A.3 開啟eclipse PythonProject範例程式
作者簡介 林大貴 作者從事IT產業多年,涉獵系統設計、網站開發、數位行銷與商業智慧等多領域,具備豐富實務開發經驗。近年來,開始從事書籍創作與教學,著重在人工智慧、機器學習、大數據等領域,並著有暢銷書《Hadoop+Spark大數據巨量分析與機器學習整合開發實戰》一書。
买了这本书的人也买...
客服公告
热门活动
订阅电子报