【问题标题】:Iterative Distributed Cross-Validation with Early Stopping具有提前停止的迭代分布式交叉验证
【发布时间】:2020-03-31 19:55:49
【问题描述】:

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

请帮我设计这样的 Dask 应用程序。假设我有一个 dask 集群。我想对 xgboost 进行 10 倍交叉验证。

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

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

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

获取所有数据后,它会返回所有树(可能还有指标)。

【问题讨论】:

    标签: python parallel-processing dask dask-distributed


    【解决方案1】:

    在我看来,您所描述的内容类似于目前在 Dask-ML 中实现的 Hyperband。您可能想查看这些文档:

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

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

    【讨论】:

    • Hyperband 在与 tensorflow 模型混合时变得非常棘手,尤其是那些不支持部分拟合的模型。还有其他补救措施吗?
    猜你喜欢
    • 2018-05-17
    • 2016-03-29
    • 2021-05-08
    • 2020-02-06
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多