//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
给H2O的接口。
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. modelmatrixSparse feature vectors
稀疏特征向量。
//特定领域//
38. Spatial and time-series data
K均值算法、回归算法与统计方法。
39. Twitter data
2015-09-30更新内容: 正是由于看到reddit.com上的一篇关于Spark深度学习框架Elephas 的文章进而让我动起了编辑这分类列表的念头,其实从中大多数项目都是来自于 AMPLab与 spark-packages.org,还有一对是来自于内存中。之后我会不断关注AMPLab与spark-packages.org的进展以便更新(尽管这博客只是一篇静态列表)。如果想了解如何去保持一个快速发展的Spark生态系统,那么可以来看我在2015年二月所录制的十分钟演讲。