Эта статья основана на прогнозе типа лесного пожара, обнаруженного MODIS в Индии (2021 год) с использованием алгоритмов классификации.

Оформить код здесь (не забудьте поставить лайк!)

  • МОДИС (или спектрорадиометр с визуализацией среднего разрешения) является ключевым инструментом на борту Терра а также Аква спутники.
  • Это помогает ученым определять количество водяного пара в столбе атмосферы и температуру, что помогает обнаруживать лесные пожары.

С помощью Данные об активных пожарах предоставлены НАСА..

Вы можете найти все наборы данных здесь

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



Об используемом наборе данных:

Часть фрейма данных

Данные об активных пожарах MODIS в Индии за 2021 год:

Это состоит из:

  • широта: Широта пикселя пожара, обнаруженного спутником (градусы)
  • долгота: Долгота пикселя пожара, обнаруженного спутником (градусы)
  • яркость: Яркостная температура огненного пикселя (в K)
  • сканирование: Площадь пикселя MODIS на поверхности Земли (вдоль сканирования: ΔS)
  • отслеживать: Площадь пикселя MODIS на поверхности Земли (вдоль трека: ΔT)
  • acq_time: Время обнаружения возгорания
  • спутник: спутник, используемый для обнаружения пожара. Либо Terra(T), либо Aqua(A)
  • инструмент: MODIS (используется для обнаружения лесного пожара)
  • уверенность: Достоверность обнаружения (диапазон 0-100)
  • яркий_t31: Полоса 31 яркостная температура пикселя (в K)
  • фрп: Мощность излучения огня (в МВт-мегаваттах)
  • день Ночь: Обнаружено днем ​​или ночью. Либо День(D), либо Ночь(N)
  • тип: предполагаемый тип горячей точки:

    • 0 = предполагаемый растительный пожар
    • 1 = действующий вулкан
    • 2= ​​другой статический источник земли
    • 3= офшор

Мы будем прогнозировать Type Функция с использованием нескольких моделей классификации.



Анализ классов:

Количество классов и их распределение

  • Поскольку у типа 3 очень мало данных для работы, мы можем отбросить его, чтобы он не влиял на нашу модель.
  • Для типов 0 и 1 существует небольшой дисбаланс, с которым нам приходится иметь дело. Мы можем использовать StratifiedShuffleSplit библиотека sklearn для того же.

StratifiedShuffleSplit помогает равномерно распределить классы между данными обучения и тестирования

Соотношение между признаками:

Диаграмма корреляции

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



Алгоритмы машинного обучения

Мы используем 3 алгоритма машинного обучения:

  • Логистическая регрессия
  • КНН (Классификатор)
  • XG Boost (классификатор)

1. Логистическая регрессия:

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

Вы можете узнать больше об этом здесь.

Матрица путаницы:

Матрица путаницы для логистической регрессии

Матрица путаницы для логистической регрессии изображает следующее:

  • Ни один тип 0 не предсказывается неправильно.
  • 167 типов 2 предсказаны как 0, что означает, что почти 20% типов 2 предсказаны неправильно.

Общий классификационный отчет:

Отчет о классификации

Окончательная точность модели логистической регрессии составляет 93%.

  • Можно отметить, что отзыв для типа 0 для логистической регрессии равен 1,0, то есть 100% типов 0 предсказаны правильно, в то время как только 80% типов 2 предсказаны правильно.
  • Это может произойти из-за того, что число типов 0 в наборе данных значительно больше, чем типов 2.

2. K ближайших соседей:

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

диаграмма KNN

  • На этом графике показано, что K=2 дает нам максимальную точность, после чего точность остается неизменной. Следовательно, мы используем K = 2, чтобы соответствовать нашей модели.

Общий классификационный отчет:

Отчет о классификации

Окончательная точность для KNN составляет 95%

Давайте посмотрим на матрицу путаницы:

Матрица путаницы

Количество типов 0, предсказанных для KNN неправильно, выше, чем у логистической регрессии, которая имеет полноту 1,0 для типа 0, но поскольку полнота для типа 2 выше (87%), чем у логистической регрессии (81%), следовательно оценка f1 для KNN увеличивается.

3. Повышение XG:

  • Я подумал о выборе алгоритма Boosting вместо Bagging, глядя на производительность первых двух алгоритмов, мне нужно было уменьшить смещение.
  • Поскольку в наборе данных около 12 000 строк, переобучение не является проблемой. Следовательно, алгоритм Бэггинга не сильно помог бы.
  • Для XG Boost, чтобы найти лучшую оценку, как мы сделали для KNN, мы сначала переберем список количества деревьев для нашей модели повышения и нанесем его на график с ошибкой.

График повышения XG

  • Как показано на графике выше, для n_estimators = 200 отображается наименьшая ошибка.

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

Узнать больше- GridSearchCV

Лучший оценщик

  • Мы получаем max_features=4 а также n_оценщиков = 200 (Как рассчитано нами выше)
  • Поэтому мы используем эти параметры, чтобы получить точность нашей модели.

Общий классификационный отчет:

отчет о классификации

Отчет о классификации для XG Boost показывает нам наилучшие результаты с точностью 98% и более высокой точностью и полнотой.

Матрица путаницы для XG Boost:

Матрица путаницы

Менее 2% или показания были рассчитаны неправильно.
Окончательная точность для XG Boost составляет 98%.



Анализ

  • Логистическая регрессия имела 100% отзыв для типа 0, она не могла хорошо предсказать класс типа 2 с частотой ошибок почти 20%.
  • KNN преодолел недостатки логистической регрессии, обеспечив более высокий отзыв, но все еще страдал от высокого смещения, поэтому точность увеличилась, но в меньшей степени.
  • Поскольку распределение признаков очень близко друг к другу, трудно сделать более сильные предположения для нашего прогноза.
  • С другой стороны, XG Boost, несомненно, продемонстрировал в целом самые высокие результаты, с хорошей оценкой f1 и точностью 98%, это можно предположить из-за ансамблевых методов XG Boost, природа которых позволяет исправить ошибки более слабой модели. , делает его сильнее, чем логистическая регрессия и KNN.



Вывод:

Очевидно, что производительность XG Boost намного выше, чем у логистической регрессии и KNN. Это будет наиболее подходящий алгоритм с точностью 98% для нашего прогноза в наборе данных MODIS Forest Fire.

Блокнот Kaggle

Набор данных