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:多机器学习算法的并行化的主要内容,如果未能解决你的问题,请参考以下文章