【電子書】實戰機器學習:使用Spark
活動訊息
用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看
內容簡介
學習熱門的機器學習演算法
本書介紹熱門的機器學習演算法及其實作方式。你將會了解如何在Spark ML這套開發框架之內,實作各種機器學習概念。首先,我們會帶你在單一節點與多重節點的運算叢集上,完成Spark的安裝工作;接著,說明如何執行以Scala和Python語言撰寫的Spark ML程式;然後以幾套資料集為範例,深入探索分群、分類與迴歸;最後,利用Spark ML來處理文字資料。
打造可以應用於工作中的機器學習程式
弄懂概念之後,便可運用來實作演算法,可能是從頭開始,或是將既有的系統轉移到這個新平台,像是從Mahout或Scikit轉移到Spark ML。當你讀完本書之時,應該能夠善加運用Spark,打造可以應用於工作中的機器學習程式。
本書將帶您:
.實際動手嘗試最新版的Spark ML
.以Scala與Python語言撰寫Spark程式
.在本機以及Amazon ECS雲端平台上,安裝並設置Spark開發環境
.取用公開的機器學習資料集,使用Spark進行資料的載入、處理、清理與轉換等動作
.處理巨量的文字資料,包括特徵萃取,並使用文字資料作為輸入餵給機器學習模型
.撰寫Spark函式,評估機器學習模型的表現能力
本書介紹熱門的機器學習演算法及其實作方式。你將會了解如何在Spark ML這套開發框架之內,實作各種機器學習概念。首先,我們會帶你在單一節點與多重節點的運算叢集上,完成Spark的安裝工作;接著,說明如何執行以Scala和Python語言撰寫的Spark ML程式;然後以幾套資料集為範例,深入探索分群、分類與迴歸;最後,利用Spark ML來處理文字資料。
打造可以應用於工作中的機器學習程式
弄懂概念之後,便可運用來實作演算法,可能是從頭開始,或是將既有的系統轉移到這個新平台,像是從Mahout或Scikit轉移到Spark ML。當你讀完本書之時,應該能夠善加運用Spark,打造可以應用於工作中的機器學習程式。
本書將帶您:
.實際動手嘗試最新版的Spark ML
.以Scala與Python語言撰寫Spark程式
.在本機以及Amazon ECS雲端平台上,安裝並設置Spark開發環境
.取用公開的機器學習資料集,使用Spark進行資料的載入、處理、清理與轉換等動作
.處理巨量的文字資料,包括特徵萃取,並使用文字資料作為輸入餵給機器學習模型
.撰寫Spark函式,評估機器學習模型的表現能力
目錄
第1章|與Spark一起奔跑
介紹如何為Spark框架設置本地端的開發環境,以及如何使用Amazon EC2在雲端上建立Spark叢集。將以一支簡單的Spark應用程式作為範例,使用Scala、Java與Python語言實作,介紹Spark的程式設計模型與API。
第2章|機器學習需要的數學知識
本章提供機器學習領域所需要的數學基礎,了解數學與各項技術,非常重要,方能深入搞懂演算法的裡裡外外,得到最佳結果。
第3章|設計機器學習系統
以真實世界的使用案例作為範本,介紹機器學習系統的設計過程,將會以這個頗富教學意味的例子,採用Spark來設計智慧型系統的高階架構。
第4章|Spark取得資料並進行處理準備
詳細介紹如何取得用於機器學習系統的資料,特別是各種免費的公開資源,將會學習如何對原始資料進行處理並清理,轉換成或可用於機器學習模型的特徵,運用各種工具、程式庫、以及Spark的功能。
第5章|使用Spark建構推薦引擎
以協同過濾方式來建立一套推薦模型,可用於推薦項目給某客戶,根據給定項目產生出相似物品的清單;衡量推薦模型表現能力的標準指標和評估法,也會在此章介紹。
第6章|使用Spark建構分類模型
詳細介紹如何建立二元分類模型,以及如何利用標準的表現能力評估指標、用來評估分類任務。
第7章|使用Spark建構迴歸模型
示範如何建立迴歸模型,延續自第6章所建立的分類模型。迴歸模型表現能力的評估指標,也會詳細說明。
第8章|使用Spark建構分群模型
探索如何建立分群模型、以及使用相關的評估方法,你將學會如何分析產生出來的群,並且加以視覺化。
第9章|Spark與維度縮減
說明如何從資料抽取出底層結構,並且降低維度。本章將介紹一些常見的維度縮減技術,說明如何運用並分析,內容將介紹如何使用處理後得到的資料表現形式,作為輸入餵給別的機器學習模型。
第10章|Spark與進階文字處理
介紹處理大規模文字資料的作法,包括從文字資料萃取出特徵,以及處理非常大維度的文字特徵。
第11章|Spark串流程式庫與即時機器學習
介紹Spark串流程式庫如何用於線上與漸進式學習方法。
第12章|Spark ML的工作流程API
以DataFrames為基礎,在其上提供一致性的API,幫助我們建立與調校機器學習工作流程。
介紹如何為Spark框架設置本地端的開發環境,以及如何使用Amazon EC2在雲端上建立Spark叢集。將以一支簡單的Spark應用程式作為範例,使用Scala、Java與Python語言實作,介紹Spark的程式設計模型與API。
第2章|機器學習需要的數學知識
本章提供機器學習領域所需要的數學基礎,了解數學與各項技術,非常重要,方能深入搞懂演算法的裡裡外外,得到最佳結果。
第3章|設計機器學習系統
以真實世界的使用案例作為範本,介紹機器學習系統的設計過程,將會以這個頗富教學意味的例子,採用Spark來設計智慧型系統的高階架構。
第4章|Spark取得資料並進行處理準備
詳細介紹如何取得用於機器學習系統的資料,特別是各種免費的公開資源,將會學習如何對原始資料進行處理並清理,轉換成或可用於機器學習模型的特徵,運用各種工具、程式庫、以及Spark的功能。
第5章|使用Spark建構推薦引擎
以協同過濾方式來建立一套推薦模型,可用於推薦項目給某客戶,根據給定項目產生出相似物品的清單;衡量推薦模型表現能力的標準指標和評估法,也會在此章介紹。
第6章|使用Spark建構分類模型
詳細介紹如何建立二元分類模型,以及如何利用標準的表現能力評估指標、用來評估分類任務。
第7章|使用Spark建構迴歸模型
示範如何建立迴歸模型,延續自第6章所建立的分類模型。迴歸模型表現能力的評估指標,也會詳細說明。
第8章|使用Spark建構分群模型
探索如何建立分群模型、以及使用相關的評估方法,你將學會如何分析產生出來的群,並且加以視覺化。
第9章|Spark與維度縮減
說明如何從資料抽取出底層結構,並且降低維度。本章將介紹一些常見的維度縮減技術,說明如何運用並分析,內容將介紹如何使用處理後得到的資料表現形式,作為輸入餵給別的機器學習模型。
第10章|Spark與進階文字處理
介紹處理大規模文字資料的作法,包括從文字資料萃取出特徵,以及處理非常大維度的文字特徵。
第11章|Spark串流程式庫與即時機器學習
介紹Spark串流程式庫如何用於線上與漸進式學習方法。
第12章|Spark ML的工作流程API
以DataFrames為基礎,在其上提供一致性的API,幫助我們建立與調校機器學習工作流程。
序/導讀
序
近年來,被收集、儲存、分析的資料數量,呈現爆炸性成長,特別是與網站和行動裝置相關的活動,以及經由感測器網路取得、來自真實世界的資料;大規模的資料儲存、處理、分析與模型建立,在過去只有Google、Yahoo!、Facebook、Twitter與Salesforce這類大型機構使用,然而隨著時間演進,許多組織也開始要面對大數據,面對如何處理巨量資料的挑戰。
資料越來越多,成長速度越來越快,關於如何處理大數據的艱困挑戰,Google、Yahoo!、Faceboo之類的企業組織,都提出相對應的開源技術,藉由把資料儲存與運算的功能,分散到電腦叢集之中,降低處理海量資料的難度。
其中最被廣為採用的技術是Apache Hadoop,能夠輕易且廉價地儲存大規模資料(經由Hadoop分散式檔案系統,也就是HDFS),並且在這些資料上進行運算(經由Hadoop MapReduce這套框架,在電腦叢集中的諸多節點上,以平行方式進行運算任務)。
然而,MapReduce有幾項致命的缺點,包括啟動任務的花費太高、必須把中間資料與運算結果儲存到磁碟,這兩點導致Hadoop不適合用於迭代形式或低延遲的使用案例。Apache Spark是套分散式運算的框架,特別針對低延遲任務而全新設計,會把中間資料與結果儲存在記憶體裡,因此可避開Hadoop的許多重大缺點。Spark提供了乾淨且易於了解的函數式API,供開發人員撰寫應用程式,而且與Hadoop生態系統完全相容。
不僅如此,Spark還為Scala、Java、Python與R語言提供了原生API。Scala與Python的API,分別允許我們充分利用Scala與Python的長處與優勢,直接用於Spark應用程式之內,包括即時互動探索形式的直譯器。Spark本身現在開始提供分散式機器學習和資料探勘的工具箱(Spark 1.6版的MLlib、2.0版的ML),並且投入大量人力資源進行開發,對於許多常見的機器學習任務來說,已經擁有高品質、可規模擴展、效率高的演算法,本書將會深入介紹。
把機器學習技術、套用到巨量資料身上,難度相當高,主因是大部分知名的機器學習演算法,都沒有考量平行架構。就許多情況而言,設計平行演算法絕非簡單的事情,一般來說,機器學習模型在本質上屬於迭代處理形式,因此使得吾人樂於採用Spark。在平行運算領域,雖然存在著眾多競爭的開發框架,在這當中,Spark是少數幾個之一能夠結合速度、規模擴展性、在記憶體中進行處理、容錯能力、以及程式設計的容易性,並且提供有彈性、表達能力強的優質API設計。
本書將會聚焦在機器學習技術的真實運用案例,雖然可能會在某些篇幅,短暫深入介紹機器學習演算法的理論面向,以及所需要的數學知識,但本書主要還是採用實務可行的教學法,把重心放在範例與實際的程式碼,闡釋如何充分運用Spark與MLlib的功能特色,以及其他知名免費的機器學習與資料分析套件,建構出有用的機器學習系統。
近年來,被收集、儲存、分析的資料數量,呈現爆炸性成長,特別是與網站和行動裝置相關的活動,以及經由感測器網路取得、來自真實世界的資料;大規模的資料儲存、處理、分析與模型建立,在過去只有Google、Yahoo!、Facebook、Twitter與Salesforce這類大型機構使用,然而隨著時間演進,許多組織也開始要面對大數據,面對如何處理巨量資料的挑戰。
資料越來越多,成長速度越來越快,關於如何處理大數據的艱困挑戰,Google、Yahoo!、Faceboo之類的企業組織,都提出相對應的開源技術,藉由把資料儲存與運算的功能,分散到電腦叢集之中,降低處理海量資料的難度。
其中最被廣為採用的技術是Apache Hadoop,能夠輕易且廉價地儲存大規模資料(經由Hadoop分散式檔案系統,也就是HDFS),並且在這些資料上進行運算(經由Hadoop MapReduce這套框架,在電腦叢集中的諸多節點上,以平行方式進行運算任務)。
然而,MapReduce有幾項致命的缺點,包括啟動任務的花費太高、必須把中間資料與運算結果儲存到磁碟,這兩點導致Hadoop不適合用於迭代形式或低延遲的使用案例。Apache Spark是套分散式運算的框架,特別針對低延遲任務而全新設計,會把中間資料與結果儲存在記憶體裡,因此可避開Hadoop的許多重大缺點。Spark提供了乾淨且易於了解的函數式API,供開發人員撰寫應用程式,而且與Hadoop生態系統完全相容。
不僅如此,Spark還為Scala、Java、Python與R語言提供了原生API。Scala與Python的API,分別允許我們充分利用Scala與Python的長處與優勢,直接用於Spark應用程式之內,包括即時互動探索形式的直譯器。Spark本身現在開始提供分散式機器學習和資料探勘的工具箱(Spark 1.6版的MLlib、2.0版的ML),並且投入大量人力資源進行開發,對於許多常見的機器學習任務來說,已經擁有高品質、可規模擴展、效率高的演算法,本書將會深入介紹。
把機器學習技術、套用到巨量資料身上,難度相當高,主因是大部分知名的機器學習演算法,都沒有考量平行架構。就許多情況而言,設計平行演算法絕非簡單的事情,一般來說,機器學習模型在本質上屬於迭代處理形式,因此使得吾人樂於採用Spark。在平行運算領域,雖然存在著眾多競爭的開發框架,在這當中,Spark是少數幾個之一能夠結合速度、規模擴展性、在記憶體中進行處理、容錯能力、以及程式設計的容易性,並且提供有彈性、表達能力強的優質API設計。
本書將會聚焦在機器學習技術的真實運用案例,雖然可能會在某些篇幅,短暫深入介紹機器學習演算法的理論面向,以及所需要的數學知識,但本書主要還是採用實務可行的教學法,把重心放在範例與實際的程式碼,闡釋如何充分運用Spark與MLlib的功能特色,以及其他知名免費的機器學習與資料分析套件,建構出有用的機器學習系統。
訂購/退換貨須知
購買須知:
使用金石堂電子書服務即為同意金石堂電子書服務條款。
電子書分為「金石堂(線上閱讀+APP)」及「Readmoo(兌換碼)」兩種:


- 請至會員中心→電子書服務「我的e書櫃」領取複製『兌換碼』至電子書服務商Readmoo進行兌換。
退換貨須知:
- 因版權保護,您在金石堂所購買的電子書僅能以金石堂專屬的閱讀軟體開啟閱讀,無法以其他閱讀器或直接下載檔案。
- 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等),不受「網購服務需提供七日鑑賞期」的限制。為維護您的權益,建議您先使用「試閱」功能後再付款購買。
商品評價