2015-12-08 25 views
12

XGBoostは、以前のモデルの残差をモデル化する追加トレーニングの方法を使用します。XGBoostはどのように並列計算を行うのですか?

これは順次ですが、どのように並列コンピューティングに移行しますか?

+0

質問ありがとうございました - 私は同じ質問がありました。 – nkhuyu

+0

パラレルとXGboostをカバーする[ここ](http://www.parallelr.com/parallel-computation-with-r-and-xgboost/)の素晴らしいブログ。 – Patric

答えて

19

Xgboostは、注意したように複数のツリーを並行して実行しないため、各ツリーの後にグラデーションを更新する必要があります。

むしろOpenMPを使用して独立してブランチを作成することは、1つのツリー内で並列化を行います。

これを観察するには、巨大なデータセットを作成し、n_rounds = 1で実行します。あなたはすべてのコアが1つのツリーで発射されるのを見るでしょう。このため、それは非常に高速に設計されています。

+0

詳細については、http://zhanpengfang.github.io/418home.htmlを参照してください。 –

+0

@T。シャーフしかし、これは複数のノード、つまり複数のコアを持つ1台のコンピューターではなく、複数のコンピューターでどのように機能しますか?ツリー内でツリーを同期させるための通信量は非常に大きいでしょう – AbdealiJK

+0

この事実を回避することはできません。@AbdealiJKしかし、あなたのデータが非常に大きい場合、これを配布する必要があります。これはあなたが支払う価格です –

関連する問題