【问题标题】:How does XGBoost do parallel computation?XGBoost 是如何进行并行计算的?
【发布时间】:2015-12-08 08:21:00
【问题描述】:

XGBoost 使用附加训练的方法,在该方法中对先前模型的残差进行建模。

虽然这是顺序的,那么它是如何进行并行计算的呢?

【问题讨论】:

  • 感谢您的提问——我也有同样的问题。
  • here 的一个不错的博客,涵盖并行和 XGboost。

标签: xgboost


【解决方案1】:

Xgboost 不会像您提到的那样并行运行多棵树,您需要在每棵树之后进行预测以更新梯度。

而是在单个树中进行并行化,我使用 openMP 独立创建分支。

要观察这一点,构建一个巨大的数据集并使用 n_rounds=1 运行。你会看到你所有的核心都在一棵树上开火。这就是为什么它如此快速且设计精良的原因。

【讨论】:

  • @T. Scharf 但是这对多个节点是如何工作的,即多台计算机而不是一台具有多核的计算机?在树中同步树的通信量将是巨大的
  • 是的,不能绕过这个事实。@AbdealiJK 但是如果你的数据太大,你需要分发它,这就是你付出的代价
  • @AbdealiJK ^^ 是的,我同意你的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多