В чем разница между h2o.ensemble и h2o.stack в пакете h2oEnsemble
Согласно описанию функции:
h2o.stack: эта функция создает ансамбль "Super Learner" (стек), используя список существующих базовых моделей H2O, указанных пользователем.
h2o.ensemble: эта функция создает ансамбль "Super Learner" (стекирование) с использованием базовых алгоритмов обучения H2O, указанных пользователем.
1 ответ
Решение
Это два разных способа построения ансамбля. У них другой интерфейс, но в конце они создают точно такой же тип объекта.
h2o.stack()
Функция принимает в качестве входных данных список уже обученных (и перекрестно проверенных) моделей H2O, поэтому все, что ей нужно сделать, - это шаг металического обучения (объединителя), который очень быстр. Это полезно, если вы хотите использовать сетку моделей H2O или коллекцию сеток моделей H2O в качестве базовых учащихся. Единственное предостережение в том, что все базовые учащиеся должны использовать одинаковые сгибы перекрестной проверки. Если вы используетеfold_assignment = "Modulo"
во всех базовых учениках (или сетке), которые обеспечат одинаковые сгибы.h2o.ensemble()
Функция позволяет пользователю указать, какие базовые модели они хотят в ансамбле, а затем выполняет все обучение и перекрестную проверку базовых моделей, а затем выполняет этап металического обучения (объединения). Это занимает гораздо больше времени, так как необходимо обучить все базовые модели.
Начиная с последней стабильной версии (H2O 3.10.3.*), Стекирование теперь доступно изначально в H2O (R, Python, Java, Scala) как метод "Stacked Ensemble". Больше информации об этом здесь. Тем не менее, пакет h2oEnsemble R (где h2o.ensemble()
а также h2o.stack()
функции в прямом эфире) будет также поддерживаться.