2015-12-08 2 views
12

XGBoost использует метод аддитивной тренировки, в котором он моделирует остатки предыдущей модели.Как XGBoost выполняет параллельные вычисления?

Это последовательный, хотя, как это делается для параллельных вычислений?

+0

Спасибо за вопрос - у меня был тот же вопрос. – nkhuyu

+0

Хороший блог в [здесь] (http://www.parallelr.com/parallel-comput-with-r-and-xgboost/) для покрытия параллельных и XGboost. – Patric

ответ

19

Xgboost не запускает несколько деревьев параллельно, как вы отметили, вам нужны прогнозы после каждого дерева для обновления градиентов.

Скорее, он распараллеливает в одном дереве мое использование openMP для создания ветвей независимо.

Чтобы наблюдать это, создайте гигантский набор данных и запустите с n_rounds = 1. Вы увидите все ваши ядра, стреляющие по одному дереву. Вот почему это так быстро, хорошо спроектировано.

+0

Для получения дополнительной информации см. Http://zhanpengfang.github.io/418home.html. –

+0

@T. Шарф Но как это работает для нескольких узлов, то есть нескольких компьютеров, а не одного компьютера с несколькими ядрами? Количество связи для синхронизации дерева внутри дерева было бы огромным. – AbdealiJK

+0

Да, не обойти этот факт. @AbdealiJK, но если ваши данные настолько велики, вам нужно их распространять. Это цена, которую вы платите. –

Смежные вопросы