Сбор знаний в предметной области

Что такое патогенные бактерии?

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

Патогенные бактерии, которые составляют лишь небольшую часть от общего числа бактерий в окружающей среде, можно разделить на две основные группы в зависимости от структуры их клеточной стенки, которая влияет на их реакцию окрашивания по Граму: грамположительные и грамотрицательные. После окрашивания по Граму грамположительные бактерии выглядят пурпурно-фиолетовыми, а грамотрицательные - розовыми. Большинство бактерий, вызывающих заболевания, передающиеся через воду, являются грамотрицательными, включая Aeromonas, Arcobacter, Campylobacter, патогенные E. coli, Shigella, Helicobacter pylori, Leptospiria, Salmonella, Vibrio cholerae и Yersinia (см. Часть 3, Раздел II. Бактерии). (Примечание: примерами патогенных грамположительных бактерий являются Bacillus и Staphylococcus aureus, однако они не являются фекально-оральными и не считаются патогенами, передающимися через воду). Заболевания описаны в таблице ниже.

Факторы, влияющие на передачу патогенов в окружающей среде

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

Стойкость в окружающей среде

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

ПОСТАНОВКА ЗАДАЧИ

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

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

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

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

ПОЛУЧЕНИЕ ДАННЫХ

Это конкурс Хакер по следу чумы. Загрузите набор данных с Hackearth или Kaggle.

Реальный мир / бизнес-цели и ограничения

Цели:

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

2. Свести к минимуму разницу между прогнозируемым и фактическим рейтингом (RMSE / MSE)

Ограничения:

  1. Некоторая форма интерпретируемости.

Обзор данных

О данных:

1. Количество точек данных в данных поезда: 40000

2. Количество функций в данных поезда: 37.

3. Количество точек в тестовых данных: 22446.

4. Количество функций в тестовых данных: 30.

Сопоставление проблемы реального мира с проблемой машинного обучения

Нам необходимо спрогнозировать количество людей, затронутых патогенами (PA, PB, PC, PD, PE, PF, PG). Это проблема регрессии.

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

КРИТЕРИИ ОЦЕНКИ

Представленные материалы будут оцениваться по среднеквадратической ошибке (RMSE). Рейтинг лидеров рассчитывается по следующей формуле:

Исследовательский анализ данных:

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

Проверка значения NaN или Null

обучающий набор не имеет нулевых значений.

Немного статистики выходных переменных сейчас

Выходная переменная выглядит с перекосом вправо.

Решение асимметрии:

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

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

Выводы:

  1. «THWIndex» сильно коррелирует с HeatIndex (ρ = 0,99897), поэтому мы можем отклонить любую 1 строку
  2. «WindChill» сильно коррелирует с LowTemp (ρ = 0,99687).
  3. «HiTemp» сильно коррелирует с TempOut (ρ = 0,99902).
  4. «AcrInt» имеет постоянное значение 15. Итак, мы можем его отклонить.
  5. WindTx имеет постоянное значение 1
  6. Дождь имеет 39022 / 97,6% нулей
  7. RainRate имеет 39295 / 98,2% нулей

Графики распределения / гистограммы / гистограммы

Давайте проверим распределение нескольких функций с помощью гистограмм / гистограмм.

Проверка корреляции с выходными характеристиками:

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

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

Мультиколлинеарность:

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

Выводы:

  1. Мы видим высокую корреляцию между TWHIndex, WindChill и HeatIndex.
  2. Мы видим высокую корреляцию между TempOut, HighTemp и LowTemp.
  3. Мы видим высокую корреляцию между WindSpeed, WindRun и HiSpeed.
  4. Мы также видим, что выходные переменные сильно коррелированы друг с другом.
  5. Значение, близкое к 0, означает более слабую корреляцию (точное значение 0 означает отсутствие корреляции)
  6. Значение, близкое к 1, означает более сильную положительную корреляцию.
  7. Значение, близкое к -1, означает более сильную отрицательную корреляцию.

Предварительная обработка данных

Многие реальные наборы данных могут содержать пропущенные значения по разным причинам. Они часто кодируются как NaN, пробелы или любые другие заполнители. Обучение модели с набором данных, в котором много пропущенных значений, может существенно повлиять на качество модели машинного обучения. Некоторые алгоритмы, такие как оценщики scikit-learn, предполагают, что все значения являются числовыми и имеют и удерживают значимое значение. Один из способов решения этой проблемы - избавиться от наблюдений, в которых отсутствуют данные. Однако вы рискуете потерять точки данных с ценной информацией. Лучшей стратегией было бы вменять недостающие значения.

К счастью, у нас нет функций с нулевыми значениями или значениями Nan.

Преобразование в формат даты и времени Python

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

Векторизация категориальных объектов

У нас есть две категориальные функции: WindDir и HiDir.

Векторизация числовых признаков

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

Данные после векторизации

Модели машинного обучения:

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

Поскольку Random Forest Regressor и XGBoost Regressor поддерживают регрессию с несколькими выходами, мы можем их использовать.

АЛГОРИТМ 1: «Модель случайного регрессора леса»:

Сначала я попробовал Регрессор случайного леса Модель, и гиперпараметр настроил модель с помощью max_depth и n_estimators.

РЕЗУЛЬТАТ: Оценка в таблице лидеров: 86,7

АЛГОРИТМ 2: «Модель регрессора XGBoost»:

Сначала я попробовал XGBoost Regressor Model, и гиперпараметр настроил модель, используя max_depth, learning_rate и n_estimators.

РЕЗУЛЬТАТ: Оценка в таблице лидеров: 88,19 (69 место).

АЛГОРИТМ 3: «XGBoost with Multi Output Regresor Model»:

Сначала я попробовал XGBoost with Multi-Output Regressor Model, и гиперпараметр настроил модель, используя max_depth, learning_rate и n_estimators.

РЕЗУЛЬТАТ: Рейтинг в таблице лидеров: 88,08

СРАВНЕНИЕ РАЗЛИЧНЫХ МОДЕЛЕЙ

Заключение:

После подачи заявки на конкурс HackerEarth здесь находятся таблица лидеров и код. Определенно можно сделать больше.

Спасибо за прочтение!

Где найти мой код?

GITHUB: https://github.com/SubhamIO/HackerEarth-Challenge-On-the-Plague-Trail

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА: