【发布时间】:2020-03-31 19:55:49
【问题描述】:
具体来说,我想并行化 xgboost 交叉验证
请帮我设计这样的 Dask 应用程序。假设我有一个 dask 集群。我想对 xgboost 进行 10 倍交叉验证。
假设调度程序需要跟踪作业的当前状态。它在 10 个不同的工作人员(每个折叠)上启动 10 个 xgboost 任务,每个任务最多进行 10000 次迭代。
每次迭代完成后,都会有一个回调报告当前指标,如 rmse。因此,工作人员会将其发送给调度程序并收到是继续还是结束的答案。
主调度程序会定期异步接收这些更新。当所有工作人员在特定迭代中报告一个指标时,调度程序会聚合它们(仅计算平均值)并将其推送到当前结果堆栈。它还检查结果是否在最近的 50 次迭代中没有得到改善,调度程序告诉所有工作人员结束(可能在下一次通信时)并报告结果(这是一个树对象)。
获取所有数据后,它会返回所有树(可能还有指标)。
【问题讨论】:
标签: python parallel-processing dask dask-distributed