具有提前停止功能的迭代分布式交叉验证

问题描述 投票:0回答:1

具体来说,我想并行化xgboost交叉验证

[请帮助我设计这样的Dask应用程序。假设我有一个愚蠢的集群。我想对xgboost做10倍交叉验证。

假设调度程序需要跟踪作业的当前状态。它在10个不同的工作程序上(针对每个折叠)启动10个xgboost任务,每个任务最多可以重复10000次迭代。

每次迭代完成后,都有一个回调报告了当前的度量标准,例如rmse。因此,工作人员会将其发送给Scheduler并接收答案以继续还是结束。

主调度程序不断定期接收异步更新。当所有工作人员都在特定的迭代中报告度量标准时,调度程序将它们汇总(仅计算平均值)并将其推入当前结果堆栈。它还会检查结果是否在最近的50次迭代中没有得到改善,调度程序告诉所有工作人员总结(也许在下一次通信中)并报告结果(这是一个树对象)。

全部获取它们之后,它返回所有树(也许还有指标)。

python parallel-processing dask dask-distributed
1个回答
0
投票

对我来说,您似乎正在描述类似于Hyperband的内容,目前已在Dask-ML中实现。您可能需要查看以下文档:

https://ml.dask.org/modules/generated/dask_ml.model_selection.HyperbandSearchCV.html?highlight=hyperband

如果您想自己实现某些功能,那么该代码的某些部分也可能对您有用。 Dask-ML居住在https://github.com/dask/dask-ml的Github上>

© www.soinside.com 2019 - 2024. All rights reserved.