Решение на основе машинного обучения для помощи людям, пострадавшим от стихийных бедствий по всему миру

Мотивация

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

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

Подход к науке о данных (CRISP-DM)

Понимание бизнеса

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

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

Понимание данных

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

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

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

Подготовка данных

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

Я создал конвейер ETL для всего процесса обработки данных. Очищенный набор данных затем сохранялся в базе данных.

После очистки данных мы готовы к следующему шагу: обработке естественного языка. Я разработал сквозной конвейер НЛП с тремя этапами: обработка текста, извлечение признаков и моделирование.

Обработка текста:

  • Токенизация. Возьмите необработанный текст сообщения и разделите его на последовательность слов или токенов.
  • Лемматизация. Для дальнейшего упрощения текстовых данных был использован метод лемматизации для приведения слов к нормализованной форме с использованием словаря в базе данных Wordnet для сопоставления различных вариантов слова с его корнем. При таком подходе мы можем свести нетривиальные флексии, такие как «есть», «было», «были», обратно к корню «быть».

Извлечение признаков:

  • Мешок слов: очищенные токены затем превращаются в вектор чисел, представляющий, сколько раз каждое слово встречается в текстах сообщений.
  • TF-IDF. Одним из ограничений подхода Bag of Words является то, что он рассматривает каждое слово как одинаково важное. В то время как интуитивно мы знаем, что некоторые слова часто встречаются в корпусе (наборе текстов сообщений). Добавляя подход TF-IDF, мы можем присваивать веса словам, которые означают их релевантность в текстах сообщений.

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

После выполнения вышеперечисленных действий суть текстов была запечатлена в форме, с которой легче работать. Теперь мы готовы перейти к заключительному этапу конвейера НЛП — моделированию. Фазовое моделирование включает разработку модели машинного обучения, подгонку ее параметров к обучающим данным, использование процедуры оптимизации, а затем ее использование для прогнозирования невидимых данных.

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

Оценка

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

Развертывание

После долгого процесса очистки данных и моделирования мы находимся на заключительном этапе CRISP-DM. Я развернул решения в облаке, разработав веб-приложение с использованием Flask для отображения результатов классификации в режиме реального времени. Вот как выглядит веб-приложение:

Обзор набора обучающих данных

Чтобы узнать больше об этом анализе, посетите мою страницу Github. Есть инструкции по запуску веб-приложения. Не стесняйтесь связаться со мной на LinkedIn.