Разбираемся в послойном подходе TensorFlow к наращиванию деревьев

#python #tensorflow

#python #tensorflow

Вопрос:

Я читал статью, связанную с реализацией расширенных деревьев в TensorFlow в документе, где обсуждается послойный подход

… и новое послойное повышение, которое позволяет создавать более сильные деревья (что приводит к более быстрой конвергенции) и более глубокие модели.

Хотя нигде в статье этот подход не обсуждается. Я почти уверен, что n_batches_per_layer параметр, переданный в BosstedTreesClassifier / Regressor, связан с этой концепцией.

Мои вопросы

  1. Что это за подход? Есть какой-нибудь источник, чтобы узнать больше об этом?
  2. Что означает n_batches_per_layer параметр?
  3. Какой n_batches_per_layer параметр я должен установить, чтобы следовать стандартной схеме обучения расширенных деревьев?

Ответ №1:

n_batches_per_layer — это количество пакетов, которые вы хотите использовать для обучения для каждого слоя (т. Е. заданной глубины в вашем дереве). По сути, это часть данных для построения 1 слоя, измеряемая пакетами. Например, если вы зададите свои batch size = len(train_set) и n_batches_per_layer = 1 , то вы будете использовать весь набор последовательностей для каждого слоя.

Поэтому я бы рекомендовал, если их набор данных помещается в память, затем установить batch_size = len(train_set), количество n_batches_per_layer = 1 . В противном случае установите для него значение int(len(train_data)/batch_size) — хотя вы могли бы попробовать поэкспериментировать с меньшим числом для более быстрого обучения.