Apache Spark:多机器学习算法的并行化

Posted

技术标签:

【中文标题】Apache Spark:多机器学习算法的并行化【英文标题】:Apache Spark: Parallelization of Multiple Machine Learning ALgorithm 【发布时间】:2017-09-03 21:54:56 【问题描述】:

有没有办法在 Spark 中并行化多个 ML 算法。我的用例是这样的: A) 并行运行多种机器学习算法(朴素贝叶斯、人工神经网络、随机森林等)。 1) 使用 10 折交叉验证来验证每个算法 B) 在第二层机器学习算法中输入步骤 A) 的输出。 我的问题是: 我们可以在步骤 A 中并行运行多个机器学习算法吗? 我们可以并行进行交叉验证吗?比如,并行运行 10 次朴素贝叶斯训练迭代?

我无法找到并行运行不同算法的任何方法。而且似乎交叉验证也不能并行完成。 我感谢任何并行化此用例的建议。

【问题讨论】:

【参考方案1】:

我通常发现人们对分布式这个词感到困惑。任何编程语言或 ML 算法都不是分布式的。它取决于执行引擎的集合(数据结构)。例如,Scala 不是分布式的,或者更具体地说,Scala 的集合不是分布式的。像 Spark 这样的大数据工具使集合成为分布式的,这些集合被包装在自己的数据结构中,是的,我说的是 RDD、Dataframes、LableledPoints、Vectors。这些结构使计算并行化,这又取决于分区。

回答您的问题 - 是的,我们可以在并行模式下运行机器学习,因为任何机器学习都将调整的数据分布在某个 n 大小集群中的节点之间。

【讨论】:

以上是关于Apache Spark:多机器学习算法的并行化的主要内容,如果未能解决你的问题,请参考以下文章

学习参考《深度实践Spark机器学习》PDF+吴茂贵

14.spark mllib之快速入门

Spark常用机器学习算法(scala+java)

JVM 是不是有能力检测并行化机会?

地铁译:Spark for python developers ---Spark与数据的机器学习

Java应用XIV使用Apache Spark MLlib构建机器学习模型下