В этом посте мы рассмотрим, как создать прогноз погоды с улучшенным машинным обучением. Но сначала, что мы подразумеваем под этим, и почему вы вообще хотите совмещать машинное обучение с прогнозированием погоды?

Обычно, когда мы думаем о прогнозах погоды, мы имеем в виду прогнозы, публикуемые крупными метеорологическими агентствами, поддерживаемыми государством, такими как NOAA, ECMWF и UK Met Office. Эти организации разрабатывают и запускают огромные компьютерные модели земной атмосферы и океанов, а также выводят массивные наборы данных, содержащие прогнозы температуры, давления, скорости ветра и многих других переменных по всему земному шару.

Эти наборы данных — фантастический ресурс, которым часто пренебрегают: как мы уже отмечали, погодные переменные могут повысить прогностическую силу моделей во многих приложениях для прогнозирования.

Но мы также часто слышим жалобы, например, на то, что модель выдает недостаточно локальные данные или что она не включает определенную переменную прогноза, такую ​​как туман или видимость. Здесь на помощь может прийти машинное обучение: используя исторические данные прогноза, мы можем обучить систему предоставлять индивидуальный прогноз погоды, улучшенный с помощью машинного обучения, который может быть намного более точным и полезным, чем простое использование модели погоды.

Для этого обзора мы создадим улучшенный прогноз температуры на метеостанции в Германии, используя прогноз на 24 часа вперед, предоставленный моделью Глобальной системы прогнозирования (GFS) NOAA. Если вы хотите попробовать это сами, взгляните на наш код или запустите его в блокноте Google Colab.

Начнем со сравнения необработанных прогнозов модели с фактическими данными метеостанции и построения графика ошибок. GFS предоставляет прогнозы как на уровне земли/поверхности, так и на высоте 2 м. Прогноз на 2 м явно лучше, что логично, ведь метеостанция находится на крыше.

Но, нанеся на график данные о температуре за несколько дней, мы также можем увидеть некоторые проблемы: например, GFS предсказывает, что температура во второй половине дня должна падать намного быстрее, чем обычно. Это может быть связано с тем, что тепло имеет тенденцию накапливаться внутри близлежащих зданий и оказывает сдерживающее влияние на регистрируемую температуру.

Машинное обучение отлично справляется с такими проблемами. Мы можем использовать его для изучения предсказуемых температурных режимов, специфичных для этого местоположения, а затем применять эти знания для улучшения исходного прогноза погоды от GFS.

В этом примере мы просто использовали простую линейную регрессию, и нам удалось уменьшить ошибку прогнозирования почти на 14 % по сравнению с простым использованием прогноза GFS 2 м.

Мы действительно только что поцарапали поверхность того, что здесь возможно. Линейная регрессия — очень простой метод машинного обучения. Более сложные модели, построенные с использованием таких инструментов, как XGBoost, Tensorflow или PyTorch, могут еще больше улучшить прогнозы. И нам также не нужно ограничиваться прогнозированием погоды: модель машинного обучения может принимать входные данные о погоде вместе с другой информацией и напрямую решать бизнес-задачу, например, путем прогнозирования ежедневных пассажиров в транспортной системе, заказов клиентов на веб-сайте. , или спрос на энергию в конкретном регионе.

Код для этой демонстрации и Блокнот Google Colab.

В ByteHub AI мы создаем инструменты, упрощающие интеграцию данных о погоде с вашими приложениями машинного обучения и аналитикой. Свяжитесь с нами, если вы хотите узнать больше о том, как мы подготовили исторические данные прогноза для этой демонстрации, или хотите узнать больше о прогнозировании с помощью машинного обучения.