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

How are PCA and SVD distributed in libraries like MLlib or Mahout

我知道 PCA 或 SVD 等降维技术。

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

是否有可用的伪代码或模式与公式?我想知道算法的哪些部分可能由于通信问题而导致瓶颈。

非常感谢您

Apache Mahout 实现 Distributed Stochastic Singular Value Decomposition,它直接基于 Randomized methods for computing low-rank 矩阵的近似值 作者:Nathan Halko

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

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

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