#machine-learning #h2o #automl
#машинное обучение #h2o #automl
Вопрос:
Я только начал учиться использовать H2O Auto ML и тестирую модель бинарной классификации.
Я пытаюсь понять, почему рейтинги модели меняются с каждым запуском.
5 лучших моделей остаются в топ-5, но модели немного смещаются на более высокий или более низкий ранг.
В то время как DRF однажды занял 2-е место, в другой раз он занял 3-е место.
Я могу предположить, что есть несколько причин, которые вызывают изменения.
- Начальное значение алгоритма меняется каждый раз
- Рамка таблицы лидеров не назначена
- RF включает случайную выборку как часть процесса, в результате чего каждый раз создаются разные деревья
- Таблица лидеров не изменится, за изменение отвечает какое-либо другое изменение данных / кода.
Не могли бы вы, пожалуйста, помочь мне лучше понять это.
Комментарии:
1. Вы установили начальное значение?
2. Нет, я этого не делал. Даст ли начальное значение тот же рейтинг в таблице лидеров? Каким должно быть начальное значение?
3. Установка начального значения должна обеспечивать одинаковые результаты при каждом запуске
Ответ №1:
Похоже, вы не задаете начальное значение, поэтому вам следует начать с него. Для того, чтобы алгоритмы с присущей им случайностью (например, XGBoost, GBM, Random Forest) каждый раз выдавали один и тот же ответ, необходимо установить случайное начальное значение (как минимум). В H2O AutoML есть один seed
аргумент (который передается по каналу всем отдельным алгоритмам), и если вы каждый раз устанавливаете для него одно и то же значение, большинство моделей будут одинаковыми при повторных запусках. По умолчанию AutoML также выполняет перекрестную проверку со случайными сгибами, так что это также гарантирует, что каждый раз используются одни и те же сгибы.
Есть несколько предостережений — глубокое обучение H2O не воспроизводимо (по умолчанию), даже если вы задаете начальное значение, поэтому эти модели всегда будут меняться. Поскольку совокупный ансамбль «Все модели» использует модели глубокого обучения в дополнение к множеству других моделей, конечный ансамбль также будет невоспроизводимым.
Наконец, вы должны использовать max_models
вместо max_runtime_secs
, чтобы контролировать, как долго должен выполняться AutoML — в противном случае вы можете получить другое количество моделей в таблице лидеров (и в совокупности всех моделей) при последующих запусках.