Таблица лидеров в H2O AutoML

#machine-learning #h2o #automl

#машинное обучение #h2o #automl

Вопрос:

Я только начал учиться использовать H2O Auto ML и тестирую модель бинарной классификации.

Я пытаюсь понять, почему рейтинги модели меняются с каждым запуском.

5 лучших моделей остаются в топ-5, но модели немного смещаются на более высокий или более низкий ранг.

В то время как DRF однажды занял 2-е место, в другой раз он занял 3-е место.

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

  1. Начальное значение алгоритма меняется каждый раз
  2. Рамка таблицы лидеров не назначена
  3. RF включает случайную выборку как часть процесса, в результате чего каждый раз создаются разные деревья
  4. Таблица лидеров не изменится, за изменение отвечает какое-либо другое изменение данных / кода.

Не могли бы вы, пожалуйста, помочь мне лучше понять это.

Комментарии:

1. Вы установили начальное значение?

2. Нет, я этого не делал. Даст ли начальное значение тот же рейтинг в таблице лидеров? Каким должно быть начальное значение?

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

Ответ №1:

Похоже, вы не задаете начальное значение, поэтому вам следует начать с него. Для того, чтобы алгоритмы с присущей им случайностью (например, XGBoost, GBM, Random Forest) каждый раз выдавали один и тот же ответ, необходимо установить случайное начальное значение (как минимум). В H2O AutoML есть один seed аргумент (который передается по каналу всем отдельным алгоритмам), и если вы каждый раз устанавливаете для него одно и то же значение, большинство моделей будут одинаковыми при повторных запусках. По умолчанию AutoML также выполняет перекрестную проверку со случайными сгибами, так что это также гарантирует, что каждый раз используются одни и те же сгибы.

Есть несколько предостережений — глубокое обучение H2O не воспроизводимо (по умолчанию), даже если вы задаете начальное значение, поэтому эти модели всегда будут меняться. Поскольку совокупный ансамбль «Все модели» использует модели глубокого обучения в дополнение к множеству других моделей, конечный ансамбль также будет невоспроизводимым.

Наконец, вы должны использовать max_models вместо max_runtime_secs , чтобы контролировать, как долго должен выполняться AutoML — в противном случае вы можете получить другое количество моделей в таблице лидеров (и в совокупности всех моделей) при последующих запусках.