Обсуждение статьи "Архитектура машинного обучения для MetaTrader 5 (Часть 9): Интеграция байесовской оптимизации гиперпараметров в производственный пайплайн"

 

Опубликована статья Архитектура машинного обучения для MetaTrader 5 (Часть 9): Интеграция байесовской оптимизации гиперпараметров в производственный пайплайн:

В этой статье бэкенд оптимизации гиперпараметров Optuna (HPO) интегрируется в единый ModelDevelopmentPipeline. Добавлены совместная настройка гиперпараметров модели и схем весов выборки, раннее отсечение с Hyperband и отказоустойчивое SQLite-хранилище исследований. Пайплайн автоматически определяет первичные и вторичные модели, добавляет перед моделью обученный препроцессор удаления столбцов, обеспечивающий безопасный инференс, поддерживает последовательный бутстрэппинг, формирует отчет Optuna и интегрируется с bid/ask-пайплайном и LearnedStrategy. Читатели получают более быстрые, возобновляемые запуски и развертываемые самодостаточные модели.

Исходный метод ModelDevelopmentPipeline.train_model вызывает clf_hyper_fit, который оборачивает GridSearchCV или RandomizedSearchCV. Веса выборки передаются как заранее вычисленный массив, оценка использует те же веса, а лучший пайплайн возвращается напрямую. Это работает, но имеет три ограничения, которые устраняет интеграция Optuna.

Ограничение 1: схема весов фиксируется до HPO. In the sklearn path, get_optimal_sample_weight выбирает лучшую схему взвешивания до начала HPO. Поэтому схема весов и гиперпараметры модели оптимизируются последовательно, а не совместно. Конфигурация, которая хорошо работает только с весами return-attribution, может быть исключена лишь потому, что сначала была выбрана uniqueness.

Ограничение 2: нет раннего отсечения. GridSearchCV и RandomizedSearchCV оценивают каждый фолд для каждой итерации. With expensive PurgedKFold оценках на нескольких годах тиковых данных это расходует вычисления на конфигурации, которые явно хуже уже после fold 1.

Ограничение 3: нет постоянного хранилища исследования. При сбое запуска все завершенные исследования теряются.

Путь Optuna решает все три проблемы: схема весов, decay и linearity сэмплируются совместно с гиперпараметрами модели внутри _WeightedEstimator; HyperbandPruner отсекает неперспективные попытки после первого фолда; а хранилище SQLite позволяет при повторном запуске продолжить с последней завершенной итерации.


Автор: Patrick Murimi Njoroge

 
Спасибо.
 
Kittamet Sirinyamas #:
Спасибо.
Не за что. Но, пожалуйста, обратите внимание на генерацию имени исследования. Я исправил проблему с его генерацией, которая была вызвана тем, что некоторые конфигурации не были добавлены в хэш, что означало, что исследование будет запускаться с использованием одной и той же базы данных независимо от различных настроек конфигурации - я буду обновлять статью и файлы, но это простое исправление.