XGBoost использует метод аддитивной тренировки, в котором он моделирует остатки предыдущей модели.Как XGBoost выполняет параллельные вычисления?
Это последовательный, хотя, как это делается для параллельных вычислений?
XGBoost использует метод аддитивной тренировки, в котором он моделирует остатки предыдущей модели.Как XGBoost выполняет параллельные вычисления?
Это последовательный, хотя, как это делается для параллельных вычислений?
Xgboost не запускает несколько деревьев параллельно, как вы отметили, вам нужны прогнозы после каждого дерева для обновления градиентов.
Скорее, он распараллеливает в одном дереве мое использование openMP для создания ветвей независимо.
Чтобы наблюдать это, создайте гигантский набор данных и запустите с n_rounds = 1. Вы увидите все ваши ядра, стреляющие по одному дереву. Вот почему это так быстро, хорошо спроектировано.
Для получения дополнительной информации см. Http://zhanpengfang.github.io/418home.html. –
@T. Шарф Но как это работает для нескольких узлов, то есть нескольких компьютеров, а не одного компьютера с несколькими ядрами? Количество связи для синхронизации дерева внутри дерева было бы огромным. – AbdealiJK
Да, не обойти этот факт. @AbdealiJK, но если ваши данные настолько велики, вам нужно их распространять. Это цена, которую вы платите. –
Спасибо за вопрос - у меня был тот же вопрос. – nkhuyu
Хороший блог в [здесь] (http://www.parallelr.com/parallel-comput-with-r-and-xgboost/) для покрытия параллельных и XGboost. – Patric