Решение хакатона по почасовому прогнозу выработки ветропарка на Ейском полуострове. Две задачи:
- Q1 2026 - почасовой прогноз за январь-март (2126 строк).
- 18.05.2026 - почасовой прогноз на один день (24 строки, оцениваемое окно 00:00-08:00 МСК).
Метрика: nMAE = MAE / 90.09 МВт * 100%. 90.09 МВт - суммарная установленная мощность станции (26 турбин Siemens Gamesa SG 3.4-132 по 3.465 МВт, высота ступицы 84 м).
pipeline/q1_task/- код для прогноза первого квартала: физическая базовая модель, эмпирическая кривая мощности, четыре модели LightGBM и калибровка по бинам скорости.pipeline/day18_task/- код для прогноза на 18 мая: та же схема плюс лаги выработки (для Q1 они недоступны).pipeline/common/- общие признаки (физика турбины, плотность воздуха, сдвиг ветра).experiments/active/,experiments/archive/- журнал попыток с весами моделей и метаданными.model/q1/,model/day18/- артефакты финальных моделей и веса смешивания.data/raw/- исходные данные.data/processed/- подготовленные parquet с физическими признаками.data/openmeteo_cache/- кеш погодных прогнозов.submissions/q1/q1_final.csv,submissions/day18/day18_final.csv- итоговые CSV.REGISTRY.md- журнал экспериментов.tests/,scripts/- тесты и вспомогательные утилиты.
make install
Команда создаёт .venv/ и ставит зависимости из requirements.txt. Подходит для Linux, macOS, Windows. Нужен Python 3.10 или новее. Подробности в INSTALL.md.
Оба прогноза одной командой:
python run.py
По отдельности:
python run_q1.py # Q1 2026
python run_day18.py # 18 мая 2026 (вариант org по умолчанию)
Альтернативный источник погоды для 18 мая (консенсус Open-Meteo):
python run_day18.py --variant om
Итоговые CSV окажутся в submissions/q1/q1_final.csv и submissions/day18/day18_final.csv.
Q1: одна модель LightGBM с минимизацией средней абсолютной ошибки. Около 500 признаков: физические (скорости ветра на 10/80/120/180 м, плотность воздуха, сдвиг ветра, направление, эмпирическая кривая мощности, ремонт) плюс согласование с пятью сторонними прогнозами погоды (GFS, ICON, ARPEGE, KNMI, DMI) с временными лагами от -48 до +48 часов. Обучение через k-fold по 12 группам месяцев. После - кусочно-постоянная поправка по бинам скорости ветра, посчитанная на проверочной части за 2023-2025.
18 мая: одна модель LightGBM на всей доступной истории (с 2022 по 17 мая 2026). Дополнительно - лаги выработки на 1 и 7 суток, скользящие средние со сдвигом, чтобы не подсматривать будущее. В варианте om погодные колонки на 18 мая заменяются согласованным средним нескольких моделей Open-Meteo (по локальному кешу).
Подробное описание - в POYASNITELNAYA_ZAPISKA.md. По дню 18 - отдельная записка docs/EXPLANATION_day18.md.