Каждую весну Ишим (Есиль) и соседние реки разливаются, когда тает зимний снег. Паводки 2024 года стали одними из сильнейших за десятилетия, людей массово эвакуировали по всему Северному Казахстану. А ведь сигнал есть заранее: это снег, который выпал за несколько месяцев до паводка. Tasqyn читает его и предупреждает, пока ещё есть время подготовиться.
Проблема
Когда на этих реках начнётся паводок, во многом понятно уже за месяцы: всё решает, сколько снега выпало за зиму. Этот сигнал есть задолго до самой опасности. Но официальные предупреждения часто приходят, только когда вода уже поднимается. А лишний месяц в запасе сильно меняет то, что успеют сделать семьи и спасатели.
Мы делаем Tasqyn для людей, которые живут вдоль этих рек. Им нужна понятная вероятность паводка на ближайшие месяцы, а не отчёт задним числом.
Наблюдательная сеть
Шесть бассейнов снеготаяния по Северному Казахстану. Каждая точка на карте это гидропост, а его цвет показывает уровень воды относительно сезонной нормы. Выберите станцию, чтобы увидеть наблюдения и гидрограф.
Что показывает ряд наблюдений
Непрерывный месячный ряд уровня Ишима у Петропавла с 1995 по 2022 год. Именно на этих данных училась модель. Каждую весну виден пик от снеготаяния, а в крупные годы наводнения сразу бросаются в глаза.
Как работает Tasqyn
Это классификатор XGBoost на 47 признаках без утечек: лаги, скользящие статистики, разности, циклическая сезонность. Скользящие окна сдвинуты на месяц, чтобы текущий месяц не подсматривал сам себя, и это закреплено отдельным тестом. Гиперпараметры подобраны через RandomizedSearchCV на TimeSeriesSplit. Дисбаланс классов (паводков всего около 6%) учтён явно.
Теперь про честность. На наивном сплите модель показывает ROC-AUC 1.00, и это подозрительно. Мы не выдаём такую цифру за результат. Вместо этого считаем по схеме leave-one-year-out: модель заново обучается для каждого тестового года и ни разу не видит будущее.
12 тестовых месяцев и всего 2 события. Статистически это ничего не значит. Оставили как наглядный пример того, чему верить не стоит.
- PR-AUC 0.72
- F1 (опт. порог) 0.80
- Recall 10 / 14 паводков
- Ложные тревоги 1 / 70 месяцев
(снегозапас за 4 месяца до паводка)
Вот что нас по-настоящему убедило. Мы не зашивали в модель никакой гидрологии, но она сама вышла на главное: сильнее всего на весенний паводок влияет снег, выпавший примерно за четыре месяца до него. Это и есть известный механизм снеготаяния. Значит, модель ухватила реальную причину, а не случайный шум в данных.
Результаты как есть
Реальные графики из проекта (docs/figures/). Переключайте вкладки, а чтобы рассмотреть поближе, нажмите на сам график.
Когда река выходит из берегов
Реки Северного Казахстана разливаются почти каждую весну, когда тает зимний снег. Ниже видно, что говорят данные наблюдений и какие в регионе были крупные паводки.
лет с половодьем выше порога за 1995–2022
Весна 2024: сильнейшее за десятилетия
Тогда разлились Ишим, Жабай у Атбасара, Тобол и Урал. Людей массово эвакуировали по всему Северному Казахстану. Сильнее всего досталось Уралу у Орала и Жабаю у Атбасара.
Дело в снеготаянии
Сила и сроки паводка зависят от того, сколько за зиму накопилось снега. В данных уровень реки резко идёт вверх в марте–мае, как раз когда сходит снег. То же самое показывает и важность признаков в модели.
Доступность и честные ограничения
Всё открыто
Есть FastAPI-сервис (/predict, /forecast/live, /basins) и приложение Tasqyn. Свежую погоду берём из открытого архива Open-Meteo ERA5, без всякого API-ключа.
Калибровка и границы
Изотоническая калибровка на out-of-sample оценках и бутстрап из 15 моделей дают 90% интервал. Если входные данные выходят за обучающий диапазон, прогноз помечается как ориентировочный.
Чего мы не утверждаем
Малый положительный класс, шум в метках и обучение на одном опорном бассейне: остальные посты оцениваются переносом и помечаются ориентировочными. Мы приводим честное число, а не идеальное.