Spark 在英文中是火花的意思,創作者希望它能夠像火花一樣點燃大數據
時代的序幕。它,做到了。
大數據時代是一個充滿著機會和挑戰的時代。就像一座未經開發的金山,任何人都有資格去獲得其中寶藏,僅需要的就是有一個得心應手的工具——MLlib 就是這個工具。
本書目的
本書的主要目的是介紹如何使用MLlib 進行資料採擷。MLlib 是Spark 中最核心的部分,它是Spark 機器學習函數庫,經過無數創造者卓越的工作,MLlib 已經成為一個優雅的、可以執行在分散式叢集上的資料採擷工具。
MLlib 充分利用了現有資料採擷的技術與方法,將隱藏在資料中不為人知,但又包含價值的資訊從中分析出來,並透過對應的電腦程式,無須人工操作自動地在系統中進行計算,以發現其中的規律。通常來說,資料採擷的困難和重點於在於兩個方面:分別是演算法的學習和程式的設計。還有的是需要使用者有些對應的背景知識,例如統計學、人工智慧、網路技術等。本書在寫作上以工程實作為主,重點介紹其與資料採擷密切相關的演算法與概念,並且使用淺顯容易的語言將其中有關的演算法進行綜合性描述,可以幫助使用者更進一步地採擷了解和掌握資料採擷的原理。
作者在寫作本書的時候有一個基本原則,這本書應該表現工程實作與理論之間的平衡。資料採擷的目的是為了解決現實中的問題,並提供一個結果,而非去理論比較哪個演算法更高深,看起來更能唬人。本書對演算法的基本理論和演算法也做了描述,如果讀者閱讀起來覺得困難,建議找出對應的教材深入複習一下,相信大多數的讀者都能瞭解相關的內容。
本書內容
本書主要介紹MLlib 資料採擷演算法,撰寫的內容可以分成三部分:第一部分是MLlib 最基本的介紹以及RDD 的用法,包含第1~4 章;第二部分是MLlib 演算法的應用介紹,包含第5~12 章;第三部分透過一個經典的實例向讀者示範了如何使用MLlib 去進行資料採擷工作,即第13 章。各章節內容如下:
■第1 章主要介紹了大數據時代帶給社會與個人的影響,並由此產生的各種意義。介紹了大數據如何深入到每個人的生活之中。MLlib 是大數據分析的利器,能夠幫助使用者更進一步地完成資料分析。
■第2 章介紹Spark 設定的單機版安裝方法和開發環境設定。MLlib 是Spark 資料處理架構的主要元件,因此其執行必須要有Spark 的支援。
■第3 章是對彈性資料集(RDD)進行了說明,包含彈性資料集的基本組成原理和使用,以及彈性資料集在資料處理時產生的相互相依關係,並對主要方法逐一進行範例示範。
■第4 章介紹了MLlib 在資料處理時所用到的基本資料型態。MLlib 對資料進行處理時,需要將資料轉變成對應的資料類型。
■第5 章介紹了MLlib 中協作過濾演算法的基本原理和應用,並據此介紹了相似度計算和最小平方法的原理和應用。
■第6~12 章每章是一個MLlib 分支部分,其將MLlib 各個資料採擷演算法分別做了應用描述,介紹了其基本原理和學科背景,示範了使用方法和範例,對每個資料做了詳細的分析。並且在一些較為重要的程式碼上,作者深入MLlib 原始程式,研究了其建置方法和參數設計,進一步幫助讀者更深入地瞭解MLlib,也為將來讀者撰寫自有的MLlib 程式奠定了基礎。
■第13 章是本文的最後一章,透過經典的鳶尾花資料集向讀者示範了一個資料採擷的詳細步驟。從資料的前置處理開始,去除有相關性的重複資料,採用多種演算法對資料進行分析計算,對資料進行分類回歸,最後獲得隱藏在資料中的結果,並為讀者示範了資料採擷的基本步驟與方法。
本書特點
■ 本書儘量避免純粹的理論知識介紹和高深技術研討,完全從應用實作出發,用最簡單的、典型的範例引伸出核心知識,最後還指出了通往「高精尖」進一步深入學習的道路;
■ 本書全面介紹了MLlib 有關的資料採擷的基本結構和上層程式設計,藉此能夠系統地看到MLlib 的全貌,讓讀者在學習的過程中不至於迷失方向;
■ 本書在寫作上淺顯容易,沒有深奧的數學知識,採用了較為簡潔的形式描述了應用的理論知識,讓讀者透過輕鬆愉悅地閱讀掌握相關內容;
■ 本書旨在引導讀者進行更多技術上的創新,每章都會用範例描述的形式幫助讀者更進一步地學習內容;
■ 本書程式遵循重構原理,避免程式污染,引導讀者寫出優秀的、簡潔的、可維護的程式。
讀者與作者
■ 準備從事或已從事大數據採擷、大數據分析的工作人員。
■ Spark MLlib 初學者。
■ 大專院校和補教單位資料分析和處理相關專業的師生。
本書由王曉華主編,其他參與創作的作者還有李陽、張學軍、陳士領、陳麗、殷龍、張鑫、趙海波、張興瑜、毛聰、王琳、陳宇、生暉、張喆、王健,排名不分先後。
範例程式下載
本書範例程式可以從本公司官網(http://www.topteam.cc) 對應到本書的地方下載。