分類解讀Spark下的39個機器學習庫
阿新 • • 發佈:2019-01-10
轉自小象學院的文章(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