Рекуррентные нейронные сети

Ссылка на работу
Этот скрипт реализует полный пайплайн для прогнозирования временных рядов с помощью рекуррентных нейронных сетей (GRU или LSTM) на PyTorch. Вот основные этапы работы: Конфигурация: Все параметры (пути к данным, архитектура модели, параметры обучения, режим работы) задаются в dataclass Config. Загрузка и подготовка данных: Поддерживается загрузка из Excel/CSV или генерация синтетических данных. Числовые признаки очищаются и преобразуются. Формируются окна (последовательности) для обучения RNN. Масштабирование: Признаки и целевая переменная масштабируются с помощью MinMaxScaler только по обучающей выборке. Разделение на train/val/test: Данные делятся на обучающую, валидационную и тестовую выборки. Модель: Определён класс RecurrentRegressor — это GRU или LSTM с несколькими слоями и полносвязной "головой" для регрессии. Обучение: Используется AdamW, MSELoss, scheduler по валидационной ошибке. Реализован early stopping. В процессе обучения выводятся метрики. Оценка: После обучения модель тестируется, считаются метрики (MSE, RMSE, MAE). Визуализация: Если установлен matplotlib, строятся графики обучения и предсказаний. Сохранение артефактов: Сохраняются веса модели, скалеры и метаданные для последующего использования. Режим предсказания: В режиме predict скрипт загружает артефакты и делает прогноз следующего значения целевой переменной. Гибкость: Можно быстро переключаться между GRU/LSTM, train/predict, синтетическими/реальными данными.