1. 程式人生 > >分類解讀Spark下的39個機器學習庫

分類解讀Spark下的39個機器學習庫

轉自小象學院的文章(http://xxwenda.com/article/584),後續準備逐個試驗一下。當然有不少已經測試過的。

Apache Spark 本身
 1.MLlib
AMPLab
Spark最初誕生於伯克利 AMPLab實驗室,如今依然還是AMPLab所致力的專案,儘管這些不處於Apache Spark Foundation中,但是依然在你日常的github專案中享有相當的地位。

ML Base

Spark本身的MLLib位於三層ML Base中的最底層,MLI位於中間層,ML Optimizer則處於最為抽象的頂層。

2.MLI

3.ML Optimizer (又稱 Ghostface)

Ghostware這個專案在2014年就開始進行了,不過從未對外公佈。在這39個機器學習庫中,這是唯一一個霧件,之所以能囊括在這列表中,全憑著AMPLab與ML Base的地位支撐。



ML Base之外

4.Splash

這是近期2015年6月的一個專案,在執行隨機梯度下降(SGD)時這套隨機學習演算法聲稱在效能上比Spark MLib中快了25%-75%。這是AMPLab實驗室的sp標記專案,因此值得我們去閱讀。

5.Keystone ML

KML將端到端的機器學習管道引進到了Spark中,但在近期Spark版本中管道已經趨於成熟。同樣也承諾具有一些計算機視覺能力,我曾經在部落格中也提到過這也存在一些侷限。

6.Velox

作為一個伺服器專門負責管理大量機器學習模型的收集。

7.CoCoA

通過優化通訊模式與shuffles來實現更快的機器學習,詳情可見這篇論文的描述《高效通訊分散式雙座標上升》。

框架
GPU-based

8.DeepLearning4j

我曾經的一則部落格有進行說明 《DeepLearning4J 增加了Spark gpu的支援》。

9.Elephas

全新的概念,這也是我寫這篇部落格的初衷。它提供了一個介面給Keras。

Non-GPU-based

10.DistML

模式並行下而並非資料並行的引數伺服器(正如 Spark MLib)。

11.Aerosolve

來自Airbnb,用於他們自動化定價。

12. Zen

邏輯斯諦迴歸、隱含狄利克雷分佈(LDA)、因子分解機、神經網路、受限玻爾茲曼機。

13.Distributed Data Frame

與Spark DataFrame類似,但是引擎是不可知的(例如在未來它將執行在引擎上而不是Spark)。其中包括了交叉驗證和外部機器學習庫的介面。

其他機器學習系統的介面
14. spark-corenlp

封裝了斯坦福CoreNLP。

15. Sparkit-learn

給Python Scikit-learn的介面。

16. Sparkling Water

給 的介面。

17. hivemall-spark

封裝了Hivemall,,在Hive中的機器學習。

18. spark-pmml-exporter-validator

可匯出預測模型標記語言(PMML),一種用於傳遞機器學習模型的行業標準的XML格式。
附加元件:增強MLlib中現有的演算法。
19. MLlib-dropout

為Spark MLLib 增加dropout能力。基於以下這篇論文進行的實現,《Dropout:一個簡單的方法來防止神經網路中的過擬合》。

20.generalized-kmeans-clustering

為K-Means演算法增加任意距離函式。

21. spark-ml-streaming

視覺化的流式機器學習演算法內置於Spark MLlib。
演算法  
監督學習

22. spark-libFM

因子分解機。

23. ScalaNetwork

遞迴神經網路(RNNs)。

24. dissolve-struct

基於上文中提到的高效能Spark通訊框架CoCoA下的支援向量機(SVM)。

25. Sparkling Ferns

基於以下這篇論文進行的實現,《通過使用隨機森林與隨機蕨演算法的影象分類技術》。

26. streaming-matrix-factorization

矩陣分解推薦系統。

無監督學習

27. PatchWork

聚類的速度比Spark MLlib 中的K-Means演算法提升了40%。

28. Bisecting K-Meams Clustering 

可產生更多相同大小簇的K-Means演算法,是基於《文件分類技術對比》一文的實現。

29. spark-knn-graphs

通過使用K近鄰演算法與位置敏感雜湊函式(LSH)來建立圖。

30. TopicModeling

線上隱含狄利克雷分佈, 吉布斯取樣隱含狄利克雷分佈,線上層次狄利克雷過程(HDP)
演算法構建塊。

31. sparkboost

自適應提升演算法與MP-Boost演算法。

32. spark-tfocs

整合到Spark中的TFOCS(一階圓錐曲線求解器模板),如果你機器學習中的代價函式恰好是凸函式,那麼便可以執行TFOCS來解決問題。

33. lazy-linalg

運用Spark MLlib中的linalg包來完成線性代數操作。
特徵提取
34.spark-infotheoretic-feature-selection

特徵選擇的資訊理論基礎。基於《條件最大似然方法:一種統一的框架用於資訊理論下的特徵選擇》該文的實現。

35. spark-MDLP-discretization

對於資料標籤,對其中的一部分連續的數字維度進行“離散化”,通過這樣便可以讓每箱的資料類相對分佈均勻。這是CART與ID3演算法生成決策樹的基本想法。基於《對分類學習中連續值屬性的多區間離散化》該文的實現。

36. spark-tsne

分散式t-SNE演算法用於資料降維。

37. modelmatrix

Sparse feature vectors稀疏特徵向量。
特定領域
38. Spatial and time-series data

K均值演算法、迴歸演算法與統計方法。

39. Twitter data