Узнайте, как мы создаем модель машинного обучения, которая предсказывает, когда лесной пожар станет критическим.

В некоторых статьях и исследованиях, таких как Белая книга ОВОС, широко обсуждалось значительное влияние лесных пожаров на солнечное излучение и выработку солнечной энергии, а также их воздействие на качество воздуха.

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

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

Некоторые участники рынка, такие как Insight Robotics, предлагают системы раннего обнаружения лесных пожаров. Большинство этих систем оснащены искусственным интеллектом для обнаружения тепловых сигналов и дыма через несколько минут сразу после начала пожара, а также обеспечивают круглосуточную защиту от лесных пожаров.

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

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

Действительно, поскольку мы уже демонстрировали влияние лесных пожаров на солнечное излучение в предыдущей работе, представленной в предыдущей статье, мы решили использовать те же данные в нашем новом анализе.

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

Весь код доступен здесь.

Отказ от ответственности:

Обратите внимание, что здесь мы не предсказываем, произойдет ли лесной пожар, а просто сосредотачиваемся на том, чтобы предсказать, в какой степени существующий лесной пожар станет критическим в ближайшем будущем. Таким образом, давая возможность мобилизовать соответствующие ресурсы для их сдерживания.

Обзор

В этом посте мы пройдем:

  • Контекст нашего анализа
  • Как мы собираем данные
  • Наш подход к машинному обучению: как мы создали базу обучения и как мы построили и оценили нашу прогностическую модель

Контекст

Этот пост следует за предыдущей работой, посвященной недавнему увеличению активности лесных пожаров в Калифорнии, и демонстрирует влияние этих лесных пожаров на солнечное излучение. Этот новый анализ, основанный на тех же наборах данных, посвящен лесным пожарам в Калифорнии в США.

Чтобы узнать больше о лесных пожарах в Калифорнии и их влиянии, обратитесь к этой записной книжке, доступной в галерее записных книжек atoti.

Сбор данных

Как указано в базовом сообщении, мы сосредоточились на данных, отражающих солнечное излучение в Калифорнии в 2016–2020 годах. В частности, мы используем данные общего горизонтального излучения (GHI) в Калифорнии. GHI — это комбинация прямого нормального (с поправкой на солнечный угол) и рассеянного излучения (DNI и DHI соответственно).

Расположение метеостанций также указано в данных, как показано на следующем изображении:

Также мы используем данные о лесных пожарах за тот же период, полученные с сайта fire.ca.gov.

Расположение пожаров показано на следующем изображении:

Таблицы на изображениях выше показывают, что необходимо учитывать 1362 пожара и 2875 станций.

Вся информация о данных и способе их обработки приведена в этой тетради.

Подход к машинному обучению

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

В нашей модели используются следующие параметры:

  • Дескрипторы: GHI, DNI, DHI, скорость ветра, направление ветра, температура воздуха, зенитный угол солнца;
  • Цель: категория возгорания или критичность (-1: возгорание не критично; +1: критично)

Идея состоит в том, чтобы проанализировать временные ряды, определенные этими дескрипторами, и использовать их для прогнозирования временных рядов цели.

Создание базы обучения

Для этого анализа мы создали базу обучения с нуля. Эта база согласовывает станцию ​​и данные о пожаре.

Выбор пожаров и станций

Мы решили отфильтровать данные станций и оставить только те, которые расположены «близко» к местам пожаров. Другими словами, для каждого изучаемого пожара учитываются только данные, собранные со станций на определенном расстоянии. Здесь мы рассматриваем предельную площадь в 10 километров.

Кроме того, мы решили оставить пожары как минимум на двух станциях в радиусе 10 километров. Из 1362 пожаров в наборе данных только 1215 соответствовали этому критерию и были сохранены. Для каждого сохранившегося пожара учитываются только две ближайшие станции.

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

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

Создание цели

В исходном наборе данных о пожарах представлена ​​следующая информация:

  • Местоположение: широта и долгота
  • Даты начала и окончания пожаров
  • Количество сожженных гектаров

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

Таким образом, мы создали необходимые детализированные данные, интерполируя количество сгоревших акров между 0 и окончательным числом между датами начала и окончания пожаров. Для этой интерполяции мы рассматриваем скорость ветра как основной весовой фактор для изменения количества сожженных акров. Это моделирует эволюцию критичности пожаров, час за часом, и позволяет нам ее моделировать.

Наконец, мы определяем порог в 10 000 акров для выявления критических пожаров. Этот порог соответствует 95-му квантилю распределения количества выгоревших акров, что эквивалентно рассмотрению первых 5 процентов пожаров как критических, а остальных пожаров как некритических.

На следующих табличных изображениях показано распределение количества сожженных акров:

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

Моделирование

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

Мы произвольно выбрали горизонт прогнозирования в 6 часов как достаточную минимальную задержку, необходимую для оповещения.

Наша проблема — бинарная классификация временных рядов:

  • Класс -1: пожар останется некритическим в течение следующих 6 часов;
  • Класс +1: огонь выжжет критическое количество акров в ближайшие 6 часов.

Мы применили следующие шаги для машинного обучения. Мы:

  • Прокрутил временной ряд дескрипторных переменных;
  • Извлеченные признаки из этих свернутых временных рядов;
  • Примените алгоритм классификации к этим специально разработанным данным.

Разработка функций

В отличие от распространенных подходов, заключающихся в использовании моделей, предназначенных для прогнозирования временных рядов, таких как векторная авторегрессия (VAR) или рекуррентные нейронные сети (RNN), здесь мы используем другой подход: мы суммируем временные ряды дескрипторных переменных в течение последних 4-х лет. 12 часов с использованием рассчитанных синтетических признаков, а затем мы применяем модель прогнозирования к этим извлеченным признакам, чтобы предсказать, какой будет критичность пожаров в следующие 6 часов.

Мы используем библиотеку tsfresh для подготовки данных и извлечения синтетических признаков временных рядов. tsfresh — это пакет Python, который автоматически вычисляет большое количество характеристик временных рядов — так называемых признаков — путем объединения установленных алгоритмов из статистики, анализа временных рядов, обработки сигналов и нелинейной динамики с надежным алгоритмом выбора признаков.

На следующем изображении показан свернутый набор данных:

А ниже показан набор данных, содержащий извлеченные и отфильтрованные функции:

С помощью tsfresh мы извлекли более 11 000 признаков. Используя функцию select_features из этой библиотеки, мы получили более 1100 функций. В приведенной выше таблице мы просто показываем некоторые извлеченные функции.

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

Создание и оценка классификатора

После того, как мы извлекли синтетические данные из временных рядов, теперь мы можем использовать их для прогнозирования эволюции критичности пожаров.

Мы решили использовать Дискриминантный анализ ортогональных частичных наименьших квадратов (OPLS-DA) для решения нашей проблемы классификации. OPLS-DA был введен как усовершенствование подхода PLS-DA для различения двух или более групп (классов) с использованием многомерных данных. В OPLS-DA модель регрессии строится между многомерными данными и переменной ответа, которая содержит только информацию о классе. Очевидным преимуществом OPLS-DA по сравнению с PLS-DA является то, что один компонент служит дескриптором класса, в то время как другие компоненты описывают вариацию, ортогональную первому прогнозирующему компоненту.

Для выполнения OPLS-DA мы используем библиотеку Python pyopls. Этот пакет предоставляет преобразователь в стиле scikit-learn для выполнения OPLS. OPLS — это метод предварительной обработки для удаления изменений из переменных дескриптора, которые ортогональны целевой переменной (1).

Мы используем перекрестную проверку, чтобы определить оптимальное количество компонентов, которые будут использоваться с моделью OPLS, а затем мы используем это число, чтобы соответствовать окончательной модели OPLS.

Мы отображаем кривую ROC и рассчитанную AUC:

Отображенные результаты показывают AUC 0,65, что означает, что в дескрипторах мало информации по отношению к целевой переменной. Это приводит к слабой предсказательной силе модели.

Это, безусловно, связано с приближением при создании целевой переменной, которое кажется слишком неточным для достижения удовлетворительных результатов относительно нашей первоначальной цели.

Заключение

В этом посте мы увидели:

  • Как согласовать различные источники данных и дополнить данные для создания базы обучения;
  • Как выполнить проектирование признаков на основе временных рядов с помощью Python;
  • Как создать прототип и оценить простую модель для прогнозирования временного ряда.

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

Наконец, мы могли бы улучшить модель, собрав исторические данные о развитии пожаров, например, о количестве акров, сжигаемых каждый час.