Прогнозирование — это больше, чем коммерческое требование. На корпоративном уровне это хлеб с маслом, благодаря которому руководство выживает и строит долгосрочные планы.
Правительства принимают решения на национальном уровне, и очень важно учитывать каждый сценарий. Он может влиять на экономический прогресс страны. Каждый выбор, сделанный лидерами, учитывает тот или иной тип данных прогнозирования. Это помогает руководителям принимать более взвешенные решения. В ближайшие кварталы у них будет примерное представление о том, что делать с национальной резервной валютой. От этого будет зависеть, насколько компания или страна сможет увеличить или сократить продажи своей продукции и экономику.
На сельское хозяйство приходится наибольшая доля ВВП в некоторых развивающихся странах. Прогнозы засухи становятся все более важными для лучшего планирования, поскольку они могут повлиять на ВВП, затормозить экономику и оказать негативное влияние на экологию. Засухи вызываются множеством переменных, включая изменение климата, температуру океана и недостаточное количество осадков. Прогнозирование и прогнозирование всех этих вещей может помочь правительству и фермерам принять превентивные меры.
Это часто помогает предотвратить крупномасштабный ущерб урожаю, а также повысить финансовую отдачу. В результате раннее обнаружение и прогнозирование могут помочь в разработке научных стратегий для уменьшения ущерба.
Мы сравним производительность различных моделей машинного обучения и будем оценивать их с использованием различных показателей производительности.
Жизненный цикл обработки данных
Источник данных
Набор данных для этого анализа и прогноза был получен от монитора засухи США. Данные состоят из 18 метеорологических показателей, которые могут быть предикторами засухи. Извлеченные данные состоят из 10 миллионов записей, наблюдаемых в определенном месте в США на протяжении многих лет. Цель этого набора данных - помочь в анализе возможностей прогнозирования засухи только с использованием метеорологических данных, что приведет к распространению прогнозов США на другие части мира. Набор данных помечен оценками засухи в диапазоне от более высокой категории D0 — аномально сухая до D4 — исключительная засуха.
Набор данных содержит следующие функции:
• WS10M-MIN: Минимальная скорость ветра на расстоянии 10 метров (м/с)
• QV2M: Влажность на расстоянии 2 м (г/кг)
• T2M-RANGE: Температурный диапазон на расстоянии 2 метра ©
• WS10M: скорость ветра на расстоянии 10 метров (м/с)
• T2M: Температура на расстоянии 2 метров ©
• WS50M-MIN: Минимальная скорость ветра на расстоянии 50 метров (м/с)
• T2M-MAX: максимальная температура на расстоянии 2 м ©
• WS50M: скорость ветра на расстоянии 50 метров (м/с)
• TS: Температура кожи Земли ©
• WS50M-RANGE: Диапазон скорости ветра на расстоянии 50 метров (м/с)
• WS50-MAX: максимальная скорость ветра на расстоянии 50 метров (м/с)
• WS10-MAX: максимальная скорость ветра на расстоянии 10 метров (м/с)
• WS10-RANGE: Диапазон скорости ветра на расстоянии 10 метров (м/с)
• PS: поверхностное давление (кПа)
• T2MDEW: Точка росы/инея на расстоянии 2 м ©
• T2M-MIN: Минимальная температура на расстоянии 2 м ©
• T2MWET: Температура влажного термометра на расстоянии 2 м ©
• PRECTOT: Осадки (мм день-1)
Предварительная обработка данных
Первый шаг к работе с данными — убедиться, что данные чистые и непротиворечивые. Это включает в себя обеспечение надлежащей обработки любых отсутствующих записей, выбросов и т. д., обеспечение отсутствия логически неверных записей, форматирование всех столбцов, подходящее для моделирования, и анализ распределения функций, чтобы помочь выбрать лучшие алгоритмы машинного обучения.
1. Отсутствующие значения. Имеющийся набор данных содержал записи без меток, поскольку оценки засухи обновляются еженедельно, а метеорологическая статистика обновляется ежедневно. Поэтому записи без меток были удалены, поскольку целью этого проекта является выполнение моделей обучения под наблюдением. Количество данных сократилось до 2 756 796 записей. Ни в одном другом столбце не было нулевых значений.
2. Переформатирование атрибутов. Столбцы данных были переформатированы в соответствии с требуемым типом данных. Столбец «Дата» был дополнительно разделен на столбцы «День», «Месяц» и «Год» для анализа.
3. Анализ выбросов: были обнаружены выбросы в каждом атрибуте. Значения, не подпадающие под три сигма-кривые нормализации, были удалены. Это значения ≤ Mean(x) + 3(Std(x)) и значения ≥ Mean(x) − 3(Std(x))).
4. Исследовательский анализ данных. Для анализа данных был проведен одномерный и многомерный анализ, чтобы понять распределение данных, линейность и нелинейность, а также выявить скрытые закономерности в данных.
5. Исправление дисбаланса классов:
Крайне важно подавать беспристрастные входные данные для алгоритмов машинного обучения. Предоставление алгоритмам несбалансированных данных класса в качестве входных данных повлияет на способ их обучения и может не сработать при тестировании данных, которые не являются несбалансированными таким же образом. Чтобы справиться с этим, мы выполнили повышающую дискретизацию с использованием SMOTE и понижающую дискретизацию с использованием алгоритмов Near Miss.
а. Увеличение частоты дискретизации SMOTE:
Техника избыточной выборки синтетического меньшинства (SMOTE) создает новые наблюдения вдоль линий случайно выбранной точки и ее ближайших соседей, чтобы гарантировать, что все классы имеют одинаковое количество записей.
b. Понижение частоты дискретизации почти проваливается:
Этот алгоритм вычисляет расстояние между всеми точками большего класса и точками меньшего класса и исключает экземпляры большего класса, которые имеют кратчайшее расстояние с меньшим классом.
6. Выбор функций:
Важно наполнить модель функциями, которые являются наилучшими возможными предикторами целевой переменной. Возможно, что некоторые из доступных атрибутов не являются хорошими предикторами, и их добавление может только увеличить сложность модели, а иногда и внести в модель шум. Чтобы выбрать лучшие предикторы в качестве признаков, мы реализовали метод рекурсивного исключения признаков с использованием алгоритма случайного леса.
7. Извлечение признаков с использованием уменьшения размерности:
Для дальнейшего выбора только тех атрибутов, которые лучше всего объясняют цель, мы экспериментируем с двумя методами уменьшения размерности — PCA и LDA. Верхние n компонентов, которые объясняют >85% дисперсии в преобразованном пространстве, выбираются в качестве признаков.
Уменьшение размерности с помощью PCA
Уменьшение размерности с использованием LDA
Разработка модели
Целью этого проекта является определение уровня засухи на основе входных данных о погоде, что является проблемой классификации. Доступно несколько алгоритмов машинного обучения, из которых мы реализовали дерево решений, KNN, наивный байесовский алгоритм, случайный лес и SVM. Многие из этих алгоритмов реализованы на исходных, повторно выбранных и уменьшенных данных для создания нескольких адаптаций этих моделей, их сравнения и выбора наиболее эффективной модели.
1. Дерево решений
а. Алгоритм дерева решений без повторной выборки
б. Алгоритм дерева решений с повышением дискретизации SMOTE
в. Алгоритм дерева решений с понижением дискретизации на грани промаха
д. Алгоритм дерева решений с понижающей дискретизацией на грани промаха и PCA
е. Алгоритм дерева решений с SMOTE Upsampling и PCA
ф. Алгоритм дерева решений с понижающей дискретизацией на грани промаха и LDA
г. Алгоритм дерева решений с SMOTE Upsampling и LDA
2. КНН
а. Алгоритм KNN без передискретизации
б. Алгоритм KNN с повышающей дискретизацией SMOTE
в. Алгоритм KNN с понижающей дискретизацией на грани промаха
3. Наивный байесовский метод без повторной выборки
4. Случайный лес без повторной выборки
5. SVM с понижением частоты дискретизации на грани промаха
Сравнение производительности
- Случайный лес без повторной выборки и KNN без повторной выборки показывают лучшие результаты с точки зрения точности, точности, отзыва, оценки F1 и оценки Каппа.
2. Извлечение признаков с использованием линейного PCA и LDA плохо работает на нелинейных данных, поскольку приводит к снижению точности.
3. Повышение частоты дискретизации SMOTE резко увеличивает время вычислений и обеспечивает такую же точность, как и без повторной выборки.
4. Однако эффект дисбаланса классов по-прежнему отражается на всех моделях без повторной выборки, как видно на кривых ROC.
Задачи
1. Объем данных — более 2 миллионов записей, что делает обработку слишком сложной с точки зрения времени и памяти приложения.
2. Несбалансированность классов — сильно несбалансированные данные с более чем 1,7 млн записей (60 %) только для класса 0.
3. Нелинейность —нелинейные данные, из-за которых линейные PCA и LDA были неэффективны.
4. Вычисления ядра —методы ядра, такие как Kernel PCA, Kernel SVM с любым типом ядра, требуют больше вычислительных ресурсов, чем доступно в бесплатных версиях платформ кодирования.
5. Настройка гиперпараметров. Пришлось согласиться на эксперименты с ограниченными вариантами параметров из-за сложности времени и ресурсов.
Будущая работа
1. Продолжайте экспериментировать с методами нелинейного уменьшения размерности, такими как TSNE, Isomap и т. д., для извлечения признаков.
2. Создание отдельного бинарного классификатора для прогнозирования наличия засухи и, если да, создание многоклассового классификатора для дальнейшего прогнозирования уровня засухи с целью повышения точности для каждого класса.
Ссылка на полный код, опубликованный в Kaggle: https://www.kaggle.com/code/akshayasrinivasan2/drought-prediction-using-ml-algorithms