如何在MLlib或Mahout等库中分发PCA和SVD

时间:2016-12-06 14:56:11

标签: machine-learning apache-spark-mllib pca svd bigdata

我知道降低维数的技术,如PCA或SVD。

我想知道这些技术是如何在Apache Spark等分布式大数据平台中实现的。

配方中是否有伪代码或模式?我想知道算法的哪些部分可能会因通信问题而导致瓶颈。

非常感谢您提前

1 个答案:

答案 0 :(得分:1)

Apache Mahout实施Distributed Stochastic Singular Value Decomposition,直接基于Nathan Halko的Randomized methods for computing low-rank approximations of matrices

请注意,dssvd适用于Apache-Mahout Samsara,它是一个将在Spark上运行的库。所以从本质上讲,这是一种基于Spark的svd方法,实际上是分布式的。

关于分布式PCA,Mahout还公开了分布式随机PCA-最近有一些网站改组,但dspca(分布式随机主成分分析)作为示例here给出了算法和实现。

Halko我相信(参见上面的参考资料)也讨论了分布式PCA。我无法告诉你瓶颈在哪里,但我希望这些信息可以帮助你开始研究。