您現在的位置是:首頁 > 網頁遊戲首頁網頁遊戲

工業大資料探勘的利器——Spark MLlib

簡介具體主要包含以下內容:>>>>迴歸(Regression)線性迴歸(Linear)廣義線性迴歸(Generalized Linear)決策樹(Decision Tree)隨機森林(Random Forest)梯度提升

大資料探勘的模式怎麼用

格物匯之前刊發的《工業大資料處理領域的“網紅”——Apache Spark》中提到,在“中國製造2025”的技術路線圖中,工業大資料是作為重要突破點來規劃的,而在未來的十年,以資料為核心構建的智慧化體系會成為支撐智慧製造和工業網際網路的核心動力。Apache Spark 作為新一代輕量級大資料快速處理平臺,集成了大資料相關的各種能力,是理解大資料的首選。

Spark有一個機器學習元件是專門用於解決海量資料如何進行高效資料探勘的問題,那就是SparkMLlib元件。

今天的格物匯就給大家詳細介紹一下Spark MLlib。

Spark MLlip 天生適合迭代計算

在介紹Spark MLlib 這個元件前,我們先了解一下

機器學習的定義

。在維基百科中對機器學習給出如下定義:

機器學習是一門人工智慧的科學,該領域的主要研究物件是人工智慧,特別是如何在經驗學習中改善具體演算法的效能。

機器學習是對能透過經驗自動改進的計算機演算法的研究。

機器學習是用資料或以往的經驗,以此最佳化計算機程式的效能標準。

很明顯,

機器學習的重點之一就是“經驗”

,對於計算機而言,經驗就是需要進行多次迭代計算得到的,Spark 的基於記憶體的計算模式天生就擅長迭代計算,多個步驟計算直接在記憶體中完成,只有在必要時才會操作磁碟和網路,所以說

Spark正是機器學習的理想的平臺。

在Spark官方首頁中展示了Logistic Regression演算法在Spark和Hadoop中執行的效能比較,如圖下圖所示。

工業大資料探勘的利器——Spark MLlib

Spark MLlib 演算法以及功能

MLlib由一些通用的學習演算法以及工具組成

,其中包括分類、迴歸、聚類、協同過濾、降維等,同時還包括底層的最佳化原語和高層的管道API。具體主要包含以下內容:

>>>>

迴歸(Regression)

線性迴歸(Linear)

廣義線性迴歸(Generalized Linear)

決策樹(Decision Tree)

隨機森林(Random Forest)

梯度提升樹(Gradient-boosted Tree)

Survival

Isotonic

>>>>

分類(Classification)

邏輯迴歸(Logistic,二分類和多酚類)

決策樹(Decision Tree)

隨機森林(Random Forest)

梯度提升樹(Gradient-boosted Tree)

多層反饋(Multilayer Perceptron)

支援向量機(Linear support vector machine)

One-vs-All

樸素貝葉斯(Naive Bayes)

>>>>

聚類(Clustering)

K-means

隱含狄利克雷分佈(LDA)

BisectingK-means

高斯混合模型(Gaussian Mixture Model)

協同過濾(Collaborative Filtering)

>>>>

特徵工程(Featurization)

特徵工程(Featurization)

特徵提取

轉換

降維(Dimensionality reduction)

篩選(Selection)

>>>>

管道(Pipelines)

組合管道(Composing Pipelines)

構建、評估和調優(Tuning)機器學習管道

>>>>

持久化(Persistence)

儲存演算法,模型和管道到持久化儲存器,以備後續使用

從持久化儲存器載入演算法、模型和管道

>>>>

實用工具(Utilities)

線性代數(Linear algebra)

統計

資料處理

其他

綜上可見,

Spark在機器學習上發展還是比較快的,目前已經支援了主流的統計和機器學習演算法

Spark MLlib API 變遷

Spark MLlib 元件從Spark 1。2版本以後就出現了

兩套機器學習API:

spark。mllib基於RDD的機器學習API,是Spark最開始的機器學習API,在Spark1。0以前的版本就已經存在的了。

spark。ml提供了基於DataFrame 高層次的API,引入了PipLine,可以向用戶提供一個基於DataFrame的機器學習流式API套件。

Spark 2.0 版本開始,spark mllib就進入了維護模式,不再進行更新

,後續等spark。ml API 足夠成熟並足以取代spark。mllib 的時候就棄用。

那為什麼Spark要將基於RDD的API 切換成基於DataFrame的API呢?

原因有以下三點

首先相比spark。mllib,spark。ml的API更加通用和靈活,對使用者更加友好,並且spark。ml在DataFrame上的抽象級別更高,資料與操作的耦合度更低;

spark。ml中無論是什麼模型,都提供了統一的演算法操作介面,例如模型訓練就呼叫fit方法,不行spark。mllib中不同模型會有各種各樣的trainXXX;

受scikit-learn 的Pipline概念啟發,spark。ml引入pipeline, 跟sklearn,這樣可以把很多操作(演算法/特徵提取/特徵轉換)以管道的形式串起來,使得工作流變得更加容易。

如今工業網際網路飛速發展,企業內部往往儲存著TB級別甚至更大的資料,面對海量資料的難以進行有效快速的進行資料探勘等難題,

Spark提供了MLlib 這個元件

,透過利用了Spark 的記憶體計算和適合迭代型計算的優勢,並且提供使用者友好的API,

使使用者能夠輕鬆快速的應對海量資料探勘的問題

,加快工業大資料的價值變現。作為TCL集團孵化的創新型科技公司,

格創東智正在致力於深度融合包括Spark在內的大資料、人工智慧、雲計算等前沿技術與製造行業經驗,

打造行業領先的“製造x”工業網際網路平臺。隨著未來Spark社群在AI領域的不斷髮力,相信Spark MLlib元件的表現會越來越出色。

本文作者:格創東智大資料工程師黃歡(轉載請註明作者及來源

Top