具体来说,我想并行化xgboost交叉验证
请帮助我设计这样的Dask应用程序。假设我有一个愚蠢的集群。我想对xgboost做10倍交叉验证。
比方说,调度程序需要跟踪作业的当前状态。它在10个不同的工作程序上(针对每个折叠)启动10个xgboost任务,每个任务最多可以重复10000次迭代。
每次迭代完成后,都有一个回调报告了当前的度量,如rmse。因此,工作人员会将其发送给Scheduler,并接收答案以继续还是结束。
主调度程序不断定期接收异步更新。当所有工作人员在特定迭代中报告度量时,调度程序将它们聚合(仅计算均值)并将其推入当前结果堆栈。它还会检查结果是否在最近的50次迭代中没有得到改善,调度程序告诉所有工作人员总结(也许在下一次通信中)并报告结果(这是一个树对象)。
获取所有树后,它返回所有树(也许还有度量)。
答案 0 :(得分:1)
在我看来,您所描述的内容与目前在Dask-ML中实现的Hyperband类似。您可能需要查看以下文档:
如果您想自己实现某些功能,那么该代码的某些部分也可能对您有用。 Dask-ML住在https://github.com/dask/dask-ml
的Github上