Масштаб проблемы:

Денге является потенциально смертельной инфекцией, симптомы которой варьируются от бессимптомных случаев до лихорадки, болей в теле и сыпи в легких случаях до геморрагической лихорадки денге и шока, наиболее тяжелые формы характеризуются низким количеством тромбоцитов, что приводит к спонтанным кровотечениям и низкой кровяное давление (шок). Путь передачи болезни — зараженный вид Aedes aegypti или Aedes albopictusкомара. Комары откладывают яйца и размножаются возле стоячей воды в емкостях, таких как ведра, миски, вазы и т. д.

Денге признана проблемой общественного здравоохранения Центром по контролю и профилактике заболеваний США. Заболевание встречается более чем в 100 странах мира. Ежегодная заболеваемость (количество новых случаев во всем мире) составляет 400 миллионов, из которых 100 миллионов являются симптоматическими. Приблизительно 22 000 человек умирают во всем мире от инфекции Денге.

В настоящее время лечение в основном симптоматическое, и лечение осложнений, таких как низкий уровень тромбоцитов или шок, не одобрено для лечения, нацеленного на конкретный патоген. Вакцина против лихорадки денге доступна в США и рекомендуется для путешественников в такие районы, как Пуэрто-Рико, где распространенность инфекции на территории США выше. Помимо Пуэрто-Рико, заболеваемость денге высока на Виргинских островах США и Американском Самоа. Локальные вспышки денге также недавно произошли на Гавайях (2015 г.), Флориде (2013 г.) и Техасе (2013 г.).

Прогнозирование случаев лихорадки Денге с помощью Data Science:

Этот проект по науке о данных был выполнен в рамках Lambda School, tech. академия кодирования в Силиконовой долине, финансируемая Google. Данные взяты из открытого конкурса DengAI, организованного DrivenData. Характеристики данных включают данные об окружающей среде, такие как температура, влажность, осадки, вегетационный индекс и т. Д., Для Сан-Хуана, Пуэрто-Рико и Икитоса, Перу, и были собраны различными агентствами федерального правительства США, такими как CDC, Национальное управление океанических и атмосферных исследований и Министерство торговли США. Цель проекта — предсказать число случаев лихорадки денге, регистрируемых каждую неделю. Цель проекта — понять взаимосвязь между климатическими переменными и заболеваемостью лихорадкой денге, что может помочь улучшить исследовательские инициативы и выделить ресурсы для борьбы со вспышками опасных для жизни заболеваний.

Выделение данных по Сан-Хуану, штат Пенсильвания:

Набор данных о поездах, представленный на веб-сайте DrivenData, содержит 1456 строк и 24 переменных, включая температуру, осадки, влажность и индекс растительности, собранные спутниками, а также местными метеостанциями с 1990 по 2010 годы.

Я решил сосредоточиться на прогнозировании случаев лихорадки денге в Сан-Хуане, штат Пенсильвания, на территории США, и выделил данные, собранные по Сан-Хуану. Набор данных поезда для Сан-Хуана состоял из 936 строк (с 1990 по 2008 год) и 24 переменных. Набор данных поезда был разделен на наборы данных поезда и проверки в соотношении 80/20 с использованием функции train_test_split и random=42.

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

Выбросы были удалены с помощью функции процентиля numpy.

Набор данных поезда после удаления выбросов состоял из 927 строк и 25 столбцов (с 24 переменными) и сохранил асимметричное распределение. Функция профилирования Pandas использовалась для выявления отсутствующих, нулевых и нулевых значений в наборе данных поезда. Я решил ввести отсутствующие/нулевые значения.

Анализ исходных данных:

На исходном уровне среднее число случаев денге в неделю в Сан-Хуане с 1990 по 2008 год составляло 31,58 (диапазон от 1 до 364, стандартное отклонение = 40,66) с использованием функции pandas .describe(). На исходном уровне без особенностей средняя абсолютная ошибка конечной точки проекта составила 24,94 случая денге в неделю в наборе данных поезда и 26,96 случая в неделю в наборе данных проверки.

Очистка и обработка данных.

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

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

Тепловая карта коэффициента корреляции между переменными была создана с использованием библиотеки python Seaborn.

Вывод:

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

График рассеяния:

Рисунок 1:

Фигура 2:

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

Линейная регрессия с использованием двух функций:

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

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

Я использовал SimpleImputer для вменения отсутствующих/нулевых значений, а затем использовал StandardScaler для масштабирования данных обучения и проверки перед подбором модели линейной регрессии из библиотеки python sklearn.

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

Используя модель линейной регрессии с двумя признаками, средняя абсолютная ошибка была снижена с 26,96 случаев в неделю до 24,34 случаев в неделю (превзойдя базовый уровень). Из графиков рассеяния, которые я показал ранее, становится очевидным, что связь между этими двумя прогнозирующими переменными и целевой переменной нелинейна, и поэтому я не ожидал, что линейная регрессия будет эффективной моделью. Выходные данные MAE с использованием линейной регрессии с двумя функциями доказывают это, и поэтому моим следующим шагом в анализе этого набора данных было тестирование моделей машинного обучения, таких как повышение градиента или модели ансамбля на основе дерева, которые могут хорошо обрабатывать нелинейные отношения.

Тестирование моделей XGBoost Regressor и RandomForestRegresser и двух вышеперечисленных функций

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

MAE с использованием модели регрессора XGboost составил 24,32 случая в неделю, что по-прежнему нежелательно, хотя и выше базового уровня. Затем я решил протестировать модель RandomForestRegressor и две функции выше. MAE с использованием модели RandomForestRegresser и настройки гиперпараметров с использованием перекрестной проверки RandomSearchCV составил 24,52 случая в неделю, что по-прежнему нежелательно, хотя и выше базового уровня.

Дальнейшие шаги:

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

MAE с использованием этих других переменных среды составил 23,82 случая в неделю с использованием регрессорной модели XGboost и 23,56 случаев в неделю с использованием модели RandomForestRegresser и настройки гиперпараметров с использованием перекрестной проверки RandomSearchCV.

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

Изучение взаимосвязей переменных времени, таких как неделя, месяц и год:

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

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

Используя модель RandomForestRegresser и настройку гиперпараметров с помощью перекрестной проверки RandomSearchCV (включая вышеуказанные временные переменные), MAE также значительно снизилась по сравнению с исходным уровнем (17,09 случаев в неделю).

Дальнейшее изучение взаимосвязей между функциями и целевой переменной:

Результаты были лучше с использованием XGBoostRegresser, поэтому я решил использовать модель для дальнейшего изучения взаимосвязей между переменными и целью, например графиков важности перестановок. MAE без логарифмического преобразования целевой переменной асимметричного распределения была выше при использовании этой модели (15,74 случая в неделю), что свидетельствует о полезности логарифмического преобразования целевой переменной асимметричного распределения в регрессии.

Из приведенного выше графика важности перестановок с использованием библиотеки Python Eli5 видно, что временные переменные, которые я добавил позже, такие как неделя года, зарегистрированный год и зарегистрированный месяц, являются тремя основными функциями с наивысшей прогностической ценностью для целевых случаев денге в неделю. Среди характеристик окружающей среды тремя основными прогностическими признаками являются средняя температура воздуха в K, характеристика стоячей воды 3 (общее количество осадков кг/м2 x средняя относительная влажность x общий спутниковый индекс растительности города) и общий спутниковый индекс растительности города.

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

Еще один шаг: превращение проблемы регрессии в проблему классификации с несбалансированными данными

Я решил провести дальнейший анализ данных, превратив приведенную выше проблему регрессии в проблему классификации с целью прогнозирования вспышек лихорадки денге (определяемой в медицинской литературе как › 2 стандартных отклонения или 95-й процентиль выше среднего). Я создал новую целевую переменную «денге_вспышка», изолировав строки из вышеприведенного исходного неразделенного набора данных о поездах, используя пороговое значение >112 случаев в неделю. В исходном состоянии целевое распределение переменных было несбалансированным (только 4,8% из 936 строк были положительными для вспышки лихорадки Денге). Целевая переменная для предыдущей задачи регрессии, общее число случаев лихорадки денге в неделю, была удалена.

Используя метрическую «точность» при настройке гиперпараметров с использованием RandomForestSearchCV и RandomForestClassifier, точность проверки составила 97,3%, а показатель ROC-AUC = 99,5%. Хотя эти результаты выглядят превосходно, матрица путаницы показала полную картину.

Таким образом, из 9 вспышек лихорадки денге модель точно предсказала 4 из них, а 5 были ложноотрицательными, как и предсказывала модель. Таким образом, это проблема несбалансированных данных, когда обычно используемые показатели в задачах машинного обучения классификации, такие как точность и оценка ROC-AUC, бесполезны. Более полезными метриками в случае несбалансированных данных в задачах классификации являются Precision (истинно положительное значение), Recall (чувствительность) и F-оценка (которая объединяет Precision и Recall в одну метрику).

Из вышеприведенных выходных данных модель имела Точность (положительное прогностическое значение) 100 %, т. е. она предсказала все 4 вспышки лихорадки денге как правильные, но пропустила 5 вспышек денге как отрицательные (ложноотрицательные), что привело к чувствительности (Вспомнить ) 44% и общий балл F1 62%.

Как еще улучшить результат F1:

Следующим моим шагом было снова запустить модель, на этот раз с использованием метрики оценки «f1» (представляющей оценку f1) во время настройки гиперпараметров в RandomForestSearchCV. Матрица путаницы из вывода приведена ниже.

Точность, отзыв и оценка f1 приведены ниже:

Таким образом, произошло дальнейшее улучшение показателя f1 с 62% до 71%, а припоминание улучшилось с 44% до 56%.

Следующим моим шагом была оценка весов признаков с использованием графиков важности перестановок.

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

Результаты значительно улучшились. Матрица путаницы, использующая только 4 основные функции, приведена ниже.

Точность, отзыв и оценка f1 показаны в таблице ниже.

Таким образом, модель оказалась более эффективной в прогнозировании вспышек лихорадки денге с использованием только четырех основных признаков (неделя года, месяц года, зарегистрированный год и юго-западный вегетационный индекс). Используя эти 4 функции, модель правильно предсказала 7 из 9 вспышек лихорадки денге и пропустила только 2 из них, в результате чего точность составила 100 %, полнота — 78 %, а показатель f1 — 88 %. Передискретизация, недостаточная выборка и синтетические данные (алгоритм SMOTE) — это шаги, которые могут еще больше улучшить отзыв и показатель F1, но результаты меня удовлетворили.

Окончательные графики важности перестановок для четырех основных признаков, предсказывающих вспышки лихорадки денге в Сан-Хуане, штат Пенсильвания, показаны на графике ниже.

Информация, полученная в ходе проекта:

  • Очевидные отношения из карты коэффициентов корреляции могут вводить в заблуждение, поскольку отношения могут быть нелинейными или даже отрицательными. Средняя удельная влажность и средняя температура точки росы в K, две характеристики, которые, казалось, имели самую сильную связь на тепловой карте коэффициента корреляции, фактически имели отрицательные веса после использования регрессора XGboost и графика важности перестановок. Средняя относительная влажность также имела отрицательный вес. Таким образом, влажность, характеристика окружающей среды, которая, как ожидается, увеличит размножение комаров, по-видимому, оказывает обратное влияние на прогнозирование случаев денге в неделю в Сан-Хуане.
  • Даже некоторые другие экологические переменные, такие как общее количество осадков, кг/м2 (больше осадков), имели отрицательный вес. Сумма осадков в мм имела незначительно положительный вес. Увеличение количества осадков, по-видимому, не является существенной экологической характеристикой, предсказывающей случаи лихорадки денге в Сан-Хуане.
  • Характеристика стоячей воды 3, произведение общего вегетационного индекса, общего количества осадков и средней относительной влажности, имела положительную прогностическую ценность. Таким образом, хотя влажность и осадки по отдельности не имеют прогностического значения для случаев денге, когда влажность, обильные осадки и увеличение растительности существуют вместе, это является фактором риска стоячей воды, который имеет положительную прогностическую связь со случаями денге. Теоретически это имеет смысл, так как комары размножаются в районах с большим количеством осадков. Высокая влажность и растительность препятствуют поглощению дождевой воды почвой и создают условия, благоприятствующие стоячей воде в районах с высокой растительностью, таких как лесные массивы вокруг Сан-Хуана, что способствует размножению комаров и повышает риск заболевания лихорадкой Денге.
  • Почему неделя в году может иметь прогностическое значение в случаях денге:

Случаи лихорадки денге (по оси Y) начинают увеличиваться в конце года, особенно с 32-й по 48-ю неделю. Резкий рост числа случаев денге с 32-й по 36-ю неделю совпадает с августом, который является месяцем с самым тяжелым количество осадков в Сан-Хуане, PR. Сезон дождей в Сан-Хуане длится с августа по ноябрь, что, по-видимому, совпадает с увеличением числа случаев лихорадки денге на приведенном выше графике PDP. Это понятно, поскольку комары размножаются в стоячей воде, а проливные дожди увеличивают риск стоячей воды, особенно в сочетании с густой растительностью и влажностью, как мы видели выше из стоячей воды.

Предлагаемые действия:

Органы здравоохранения проявляют повышенную бдительность в сезон дождей, особенно в августе, самом дождливом месяце, уделяя особое внимание предотвращению скопления воды в районах с густой растительностью. Например, в тропическом лесу EL Yunque недалеко от Сан-Хуана есть участки, где вода скапливается во время сильных дождей. Веб-сайт путешествий по Сан-Хуану также предупреждает посетителей, что посещение этого леса может увеличить риск передачи лихорадки Денге. Активное вмешательство по отводу скопившейся воды в этих районах с густой растительностью в месяцы с сильными дождями может помочь снизить заболеваемость лихорадкой Денге. Активное просвещение населения с использованием средств массовой информации, информирующих их о факторах риска передачи лихорадки Денге, таких как допущение густой растительности вокруг их домов, скопление воды в сезон дождей и т. д., может помочь населению предпринять такие шаги, как дренаж и предотвращение скопления воды вокруг своих домов в тяжелые времена года. сезон дождей может помочь уменьшить передачу лихорадки Денге и количество вспышек пандемии.

Контактная информация: bs2537 (в) nyu.edu