首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark实现Scala的并行交叉验证

Spark实现Scala的并行交叉验证
EN

Stack Overflow用户
提问于 2017-01-05 07:22:44
回答 1查看 1.2K关注 0票数 3

Pyspark提供了一个很大的可能性,可以通过https://github.com/databricks/spark-sklearn将模型的交叉验证并行化,简单地用

代码语言:javascript
复制
from spark_sklearn import GridSearchCV

我如何才能实现类似的功能,斯派克的Scala CrossValidator,即并行化每一个折叠?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-05 08:30:07

自spark 2.3 :

您可以使用带有setParallelism(n) CrossValidator 的方法或在creation上这样做。即:

代码语言:javascript
复制
cv.setParallelism(2) 

代码语言:javascript
复制
cv = CrossValidator(estimator=lr, estimatorParamMaps=grid, evaluator=evaluator, \ 
                    parallelism=2)  // Evaluate up to 2 parameter settings in parallel

火花前的 2.3 :

--你不能在Scala中这样做。不能在ScalaSpark.中并行交叉验证

如果您已经很好地阅读了spark-sklearn的文档,那么GridSearchCV是并行化的,但是模型训练不是并行的,因此这在规模上是无用的。此外,您可以将Scala的交叉验证并行化,这是由于著名的SPARK-5063

RDD转换和操作只能由驱动程序调用,而不能在其他转换中调用;例如,rdd1.map(x => rdd2.values.count() * x)无效,因为值转换和计数操作不能在rdd1.map转换中执行。有关更多信息,请参见火花-5063。

摘录自 README.md

这个软件包包含了一些工具,用于将星火计算框架与流行的scikit-learn机器库集成。除其他工具外: 同时培训和评估多个科学学习模型。它是一个分布式的模拟多核实现,默认情况下包括在scikit-learn中。将Spark的Dataframes无缝地转换为numpy ndarray或稀疏矩阵。(实验)将席比的稀疏矩阵分布为稀疏向量的数据集。它的重点是有少量数据和可以并行运行的问题。 对于小型数据集,它使用Spark分发对估计器参数的搜索(GridSearchCV在scikit MLlib中),对于不适合内存的数据集,我们建议使用Spark MLlib中的分布式实现。 注意:这个包分发诸如网格搜索、交叉验证之类的简单任务。它不分发单独的学习算法(不像星火MLlib)。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41479359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档