◆技術為金融財務、行銷分析、商業趨勢預測帶來全新的變革
◆詳實的安裝設定與程式編寫說明降低學習入門門檻
◆可單機執行或以實機/虛擬機器建立多台演算陣列
◆具備大量實務案例分析與程式碼範例實作
大數據分析與機器學習人工智慧帶來資訊科技革命的第五波新浪潮
創新產業 大量商機 人才需求
一般人可能會認為大數據需要很多台機器的環境才能學習,但是本書透過虛擬機器的方法,就能在自家電腦演練建立Hadoop叢集,並且建立Spark開發環境。
以實機操作介紹Hadoop MapReduce與HDFS基本概念,以及Spark RDD與MapReduce基本觀念。
以大數據分析實務案例:MoiveLens(電影喜好推薦引擎)、StumbleUpon(網頁二元分類)、CovType(林相土地演算)、Bike Sharing(Ubike類租賃預測分析)。
配合範例程式碼來介紹各種機器學習演算法,示範如何擷取資料、訓練資料、建立模型、預測結果,由淺而深介紹Spark機器學習。
大數據對每個領域都造成影響。在商業、經濟及其他領域中,將大量資料進行分析後,就可得出許多資料關聯性。可用於預測商業趨勢、行銷研究、金融財務、疾病研究、打擊犯罪等。大數據對每一個公司的決策方式將發生變革-決策方式將基於資料和分析的結果,而不是依靠經驗和直覺。
資訊科技浪潮第一波是大型電腦,第二波是個人電腦,第三波是網路,第四波是社群媒體,第五波科技則是「大數據」。每一波的的資訊科技浪潮,總是帶來工作與生活方式的改變,創造大量商機、新的產業、大量的工作機會。像是在網路時代,創造了Google、Amazon 等大公司,以及無數.com 公司。
每一波浪潮開始時,需求的相關人才最多,但是此時也是相關人才供應最少。因此對個人而言,如果能在浪潮興起時就投入,往往成果最豐碩,並且有機會占有重要職位。像是網路剛興起時,每個公司都需要建立網站,但是相對這方面的人才不夠。那時候能撰寫網頁相關程式語言的工程師就能夠獲得高薪。但是後來投入的人越來越多,這方面的工程師就沒有那麼吃香了。
之前的科技浪潮,也許你沒有機會躬逢其盛,或是沒有機會在浪潮初期進入。但是大數據的浪潮方興未艾,正是進入的好時機。根據IBM 調查預估,大數據目前的商機是71 億美元,並將以每年增長20%速度持續成長,預計2015 年達到180 億美元。機會是給有準備的人,學會了大數據分析的相關技能,讓你有機會獲得更好的薪資與發展前景。根據美國調查機構Robert Half Technology 2016 年趨勢報告,在美國大數據工程師,薪水年成長8.9%,年薪大約13 萬至18 萬美金(約新台幣429 萬元~594 萬元)。因為人才短缺,企業不惜重金挖角。(你可以在google 搜尋Robert Half Technology 2016 就可以下載此調查報告)
本書的主題是Haddop+Spark大數據分析與機器學習。Hadoop 大家已經知道是運用最多的大數據平台,然而Spark 異軍突起,與Hadoop 相容而且執行速度更快,各大公司也開始加入Spark 開發。例如IBM 加入Apache Spark 社群打算培育百萬名資料科學家。Google 與微軟也分別應用了Spark 的功能來建置服務、發展大數據分析雲端與機器學習平臺。這些大公司的加入,也意味著未來更多公司會採用Hadoop+Spark 進行大數據資料分析。
然而目前市面上雖然很多大數據的書,但是多半偏向理論或應用層面的介紹,網路上的資訊雖然很多,但是也很雜亂。本書介紹希望能夠用淺顯易懂原理說明,再加上實機操作、範例程式,能夠降低大數據技術的學習門檻,帶領讀者進入大數據與機器學習的領域。當然整個大數據的生態系非常龐大,需要學習的東西太多。希望讀者能透過本書有了基本概念後,比較容易踏入這門領域,能繼續深入研究其他大數據的相關技術。
作者簡介:
林大貴
作者從事IT產業多年,涉獵系統設計、網站開發、數位行銷與商業智慧等多領域,具備豐富實務開發經驗。
目錄
Chapter01 大數據與機器學習
1-1 大數據定義
1-2 Hadoop 簡介
1-3 Hadoop HDFS 分散式檔案系統
1-4 Hadoop MapReduce 介紹
1-5 Spark 介紹
1-6 機器學習介紹
Chapter02 Virtual Box 虛擬機器軟體安裝
2-1 VirtualBox 下載安裝
2-2 設定Virtual Box 儲存資料夾
2-3 在VirtualBox 建立虛擬機器
Chapter03 Ubuntu Linux 作業系統安裝
3-1 下載Ubuntu 安裝光碟檔案
3-2 在Virtual Box 設定Ubuntu 虛擬光碟檔案
3-3 開始安裝Ubuntu
3-4 啟動Ubuntu
3-5 安裝Guest Additions
3-6 設定預設輸入法
3-7 設定終端機程式
3-8 設定終端機白底黑字
3-9 設定共用剪貼簿
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 介面
Chapter05 Hadoop Multi Node Cluster 安裝
5-1 複製Single Node Cluster 到data1
5-2 設定data1 伺服器
5-3 複製data1 伺服器至data2、data3、master
5-4 設定data2、data3 伺服器
5-5 設定master 伺服器
5-6 master 連線至data1、data2、data3 建立HDFS 目錄
5-7 建立與格式化NameNode HDFS 目錄
5-8 啟動Hadoop Multi Node Cluster
5-9 開啟Hadoop ResourceManager Web 介面
5-10 開啟NameNode HDFS Web 介面
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
Chapter07 Hadoop MapReduce 介紹
7-1 wordCount.java 介紹
7-2 編輯wordCount.java
7-3 編譯wordCount.java
7-4 下載測試文字檔
7-5 上傳文字檔至HDFS
7-6 執行wordCount.java
7-7 查看執行結果
7-8 Hadoop MapReduce 的缺點
Chapter08 Spark 安裝介紹
8-1 SPARK 的cluster 模式架構圖
8-2 Scala 介紹與安裝
8-3 安裝SPARK
8-4 啟動spark-shell 互動介面
8-5 設定spark-shell 顯示訊息
8-6 啟動Hadoop
8-7 本機執行Spark-shell 程式
8-8 在Hadoop YARN 執行spark-shell
8-9 建置Spark standalone cluster 執行環境
8-10 在Spark standalone 執行spark-shell
Chapter09 Spark RDD 介紹
9-1 RDD 的特性
9-2 基本RDD「轉換」運算
9-3 多個RDD「轉換」運算
9-4 基本「動作」運算
9-5 RDD Key-Value 基本「轉換」運算
9-6 多個RDD Key-Value「轉換」運算
9-7 Key-Value「動作」運算
9-8 Broadcast 廣播變數
9-9 accumulator 累加器
9-10 RDD Persistence 持久化
9-11 使用Spark 建立WordCount
9-12 Spark WordCount 詳細解說
Chapter10 Spark 整合開發環境介紹
10-1 下載與安裝Scala IDE
10-2 下載專案所需要的Library
10-3 啟動eclipse
10-4 建立新Spark 專案
10-5 設定專案程式庫
10-6 新增scala 程式
10-7 下載WordCount 測試資料
10-8 建立WordCount.scala
10-9 編譯WordCount.scala 程式
10-10 執行WordCount.scala 程式
10-11 匯出jar 檔
10-12 spark-submit 詳細介紹
10-13 在本機local 模式執行WordCount 程式
10-14 在hadoop yarn-client 執行WordCount 程式
10-15 WordCount 程式在Spark Standalone Cluster 執行
10-16 本書範例程式安裝說明
Chapter11 建立推薦引擎
11-1 推薦演算法介紹
11-2 「推薦引擎」大數據分析使用情境
11-3 ALS 推薦演算法介紹
11-4 ml-100k 推薦資料下載與介紹
11-5 使用spark-shell 匯入ml-100k 資料
11-6 查看匯入的資料
11-7 使用ALS.train 進行訓練
11-8 使用模型進行推薦
11-9 顯示推薦的電影的名稱
11-10 建立Recommend 專案
11-11 Recommend.scala 程式碼
11-12 建立PrepareData() 資料準備
11-13 recommend() 推薦程式碼
11-14 執行Recommend.scala
11-15 建立AlsEv alution.scala 調校訓練參數
11-16 建立PrepareData() 資料準備
11-17 進行訓練評估
11-18 執行AlsEv aluation
11-19 修改Recommend.scala 為最佳參數組合
Chapter12 StumbleUpon 資料集介紹
12-1 StumbleUpon 資料集
12-2 下載StumbleUpon 資料
12-3 以LibreOffice Calc 試算表查看train.tsv
12-4 二元分類演算法
Chapter13 決策樹二元分類
13-1 決策樹介紹
13-2 建立Classi fication 專案
13-3 建立RunDecisionTreeBinary.scala 程式
13-4 資料準備階段
13-5 訓練評估階段
13-6 預測階段
13-7 執行RunDecisionTreeBinary.scala
13-8 修改RunDecisionTreeBinary 調校訓練參數
13-9 RunDecisionTreeBinary 執行參數調校程式
13-10 RunDecisionTreeBinary 不執行參數調校程式
Chapter14 邏輯迴歸二元分類
14-1 邏輯迴歸分析介紹
14-2 RunLogisticRegressionWithSGDBinary.scala 程式說明
14-3 執行RunDecisionTreeRegression.scala 進行參數調校
14-4 執行RunDecisionTreeRegression.scala 不進行參數調校
Chapter15 支援向量機器SVM 二元分類
15-1 支援向量機器SVM 演算法基本概念
15-2 RunSVMWithSGDBinary.scala 程式說明
15-3 執行SVMWithSGD.scala 進行參數調校
15-4 執行SVMWithSGD.scala 不進行參數調校
Chapter16 單純貝氏二元分類
16-1 單純貝氏分析原理介紹
16-2 RunNaiveBayesBinary.scala 程式說明
16-3 執行NaiveBayes.scala 進行參數調校
16-4 執行NaiveBayes.scala 不進行參數調校
Chapter17 決策樹多元分類
17-1 「森林覆蓋樹種」大數據問題分析情境
17-2 UCI Covertype 資料集介紹
17-3 下載與查看資料
17-4 建立RunDecisionTreeMulti.scala
17-5 修改RunDecisionTreeMulti.scala 程式
17-6 執行RunDecisionTreeMulti.scala 進行參數調校
17-7 執行RunDecisionTreeMulti.scala 不進行參數調校
Chapter18 決策樹迴歸分析
18-1 Bike Sharing 大數據問題分析
18-2 Bike Sharing 資料集
18-3 下載與查看資料
18-4 建立RunDecisionTreeRegression.scala
18-5 修改RunDecisionTreeRegression.scala
18-6 執行RunDecisionTreeRegression.scala 執行參數調校
18-7 執行RunDecisionTreeRegression.scala 不執行參數調校
Chapter19 使用Apache Zeppelin 資料視覺化
19-1 Apache Zeppelin 介紹
19-2 安裝Zeppelin 前的準備
19-3 Apache Zeppelin 安裝
19-4 啟動Apache Zeppelin
19-5 建立新的Notebook
19-6 使用Zeppelin 執行Shell 命令
19-7 建立暫存資料表「UserTable」
19-8 使用Zeppelin 執行年齡統計Spark SQL
19-9 使用Zeppelin 執行性別統計Spark SQL
19-10 依照職業統計
19-11 Spark SQL 加入文字方塊輸入參數
19-12 加入選項參數
19-13 Zeppelin 在firefox 瀏覽器使用的問題
19-14 同時顯示多個統計欄位
19-15 工具列設定
19-16 設定段落標題
19-17 設定Paragraph 段落寬度
19-18 設定顯示模式
Chapter01 大數據與機器學習
1-1 大數據定義
1-2 Hadoop 簡介
1-3 Hadoop HDFS 分散式檔案系統
1-4 Hadoop MapReduce 介紹
1-5 Spark 介紹
1-6 機器學習介紹
Chapter02 Virtual Box 虛擬機器軟體安裝
2-1 VirtualBox 下載安裝
2-2 設定Virtual Box 儲存資料夾
2-3 在VirtualBox 建立虛擬機器
Chapter03 Ubuntu Linux 作業系統安裝
3-1 下載Ubuntu 安裝光碟檔案
3-2 在Virtual Box 設定Ubuntu 虛擬光碟檔案
3-3 開始安裝Ubuntu
3-4 啟動Ubuntu
3-5 安裝Guest Additions
3-6 設定預設輸入法
3-7 設...