Проект Udacity Nanograde Capstone

Раздел I: Определение проекта

Обзор проекта

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

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

Постановка задачи

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

Показатели

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

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

2. Матрица путаницы помогает лучше понять поведение нашего классификатора и способы его дальнейшего улучшения.

Интерпретация этикеток следующая:

  • True Negatives (TN): содержит примеры, которые были правильно классифицированы как отрицательные.
  • Истинные положительные результаты (TP): содержит примеры, которые были правильно классифицированы как положительные.
  • False Negatives (FN): содержит примеры, которые были ошибочно классифицированы как отрицательные и поэтому на самом деле являются положительными.
  • Ложные срабатывания (FP): содержит примеры, которые были ошибочно классифицированы как положительные и поэтому на самом деле являются отрицательными.

3. Точность – это просто точность, рассчитанная для положительных классов. Метрика говорит нам, как часто мы оказываемся правы, когда классифицируем класс как положительный.

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

5. F-1 Score объединяет точность и полноту в один показатель:

Это гармоническое среднее точности и полноты, и, вероятно, это наиболее часто используемый показатель для оценки моделей бинарной классификации. Если наша оценка F1 увеличивается, это означает, что наша модель улучшила точность, полноту или и то, и другое.

6. Показатель ROC-AUC основан на графическом представлении кривой рабочей характеристики приемника. Википедияопределяет это следующим образом:кривые ROC представляют собой графические схемы для модели бинарной классификации. Чувствительность и (1-специфичность) могут быть представлены по двум осям, соответственно представленным процентом истинных положительных результатов (TPR, доля истинно положительных результатов) и показателем ложноположительных результатов (FPR, доля ложноположительных результатов). Другими словами, кривая ROC показывает взаимосвязь между истинными тревогами (доля совпадений) и ложными тревогами.

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

Раздел 2. Анализ

Исследование и визуализация данных

MIMIC-IV — это клиническая база данных пациентов, поступивших в Медицинский центр Бет Исраэль Диаконисс. Доступ к MIMIC-IV ограничен авторизованными пользователями. Однако PhysioNet предоставляет открытую демо-версию MIMIC-IV, содержащую подгруппу из 100 пациентов. Набор данных включает контент, аналогичный MIMIC-IV, но не включает клинические заметки с произвольным текстом. Полная документация базы данных доступна здесь.

Демонстрационная база данных содержит 3 разных каталога:

  • Основной
  • Хосп
  • ОИТ
  1. Основной:

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

2. Хосп:

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

3. ОИТ:

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

3 Основные таблицы: «Пациенты», «Поступления» и «Пребывание в отделении интенсивной терапии», которые используются при обучении модели в этом исследовании.

Следующие функции из трех упомянутых выше таблиц были выбраны для модели поезда на основе:

admission_type, admission_location, insurance, marital_status, ethnicity, gender, anchor_age, los (Length of Stay in ICU)

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

Распределение данных в нашем случае с демонстрационной базой данных очень несбалансированное. Демо-версия содержит 100 записей только с 20 смертями. Ниже указано количество записей в каждой выбранной таблице.

Далее мы рассмотрим вышеупомянутые функции:

первая проверка нулевых значений:

Большинство отсутствующих значений наблюдается во время смерти, что объясняется значением 95% из-за количества смертей. В этой базе данных имеется 20 смертей из 100 записей пациентов, что составляет около 5% записей, содержащих время смерти, а остальные 95% не имеют времени смерти.

Единственная выбранная функция с отсутствующими значениями — это семейное положение, которое составляет всего 4% записей — 2 из 20 смертей, которые у нас есть. Однако из-за ограниченного числа пациентов никакой ликвидации не проводилось.

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

Здесь мы более подробно рассмотрим особенности среди записей о смерти:

Только пациенты, которые были госпитализированы в ОИТ, имеют LOS, из 275 госпитализаций 128 были переведены в ОИТ в какой-то момент во время их поступления. только 3 пациента были переведены в отделение интенсивной терапии более одного раза, и только 1 пациент (Subject_id: 10002428) был переведен в отделение интенсивной терапии дважды при одной и той же госпитализации.

Раздел III: Методология

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

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

Реализация

В этом случае у нас есть проблема бинарной классификации. Наши записи могут быть классифицированы только как 0 или не умер и 1 или умер. Столбец, соответствующий этому значению, называется «hospital_expire_flag», который указывает, умер ли пациент или нет. Для решения этой проблемы двоичной классификации мы будем использовать классификатор логистической регрессии для обучения нашей модели.

Во-первых, мы разделим данные с помощью train_test_split с размером поезда, равным 70 %, что, несомненно, улучшит работу модели, если значение размера поезда установлено на любое значение выше, например 75 % или 80 %, из-за наличия несбалансированной базы данных между две группы, модель обычно работает очень плохо, так как было мало смертей, из которых можно извлечь уроки.

Уточнение

Перекрестная проверка поиска по сетке используется для оптимизации гиперпараметров классификатора. Алгоритмы C, fit_intercept и решатель были только протестированы. Количество заданий (n_jobs) в поиске по сетке должно быть больше 1, иначе будет возвращено ConvergenceWarning: «Достигнут максимальный iter, что означает, что коэффициент не сходится».

Раздел IV: Результаты

Оценка и проверка модели

Логистическая регрессия со следующими значениями была оптимизирована и установлена ​​для данной базы данных. Однако в различных симуляциях разделения и обучения соответствующие значения также изменятся из-за наличия несбалансированной базы данных.

LogisticRegression(C=0.001, solver='newton-cg', fit_intercept=True)

Обоснование

Алгоритм решателя, использованный здесь, был «newton-cg». Хотя алгоритм по умолчанию «lbfgs» каждый раз работает почти так же хорошо, как и newton-cg. Ниже приводится оценка решателей:

Алгоритмы провисания и саги больше подходят для больших наборов данных. В нашем случае с небольшим набором данных наиболее подходящими являются остальные 3.

C, и параметры штрафа также были оптимизированы. Высокое значение C говорит модели о том, что следует придавать больший вес обучающим данным и меньший вес штрафу за сложность. Низкое значение говорит модели о том, что следует придавать больший вес этому штрафу за сложность за счет подгонки к обучающим данным. Значения C различаются в большинстве симуляций, но числа меньше 1 обычно позволяют модели работать лучше. Штраф по умолчанию — «L2», и в каждой симуляции это был лучший проверенный параметр.

Наиболее важные измерения, которые нас будут интересовать, — это вычисление площади под кривой ROC (AUC), поэтому нам нужно вычислить прогнозируемую вероятность и сравнить ее с истинной меткой.

Наша модель покрывает 87% площади под кривой, и это показывает, что наша модель работает хорошо. Однако это превышение производительности связано с несбалансированным количеством записей в наших двух группах.

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

Наша матрица путаницы показывает, что наша обученная модель предсказала:

  • 82 Правильно
  • 5 Неверно

В отчете о классификации указано следующее:

  • Из всех пациентов, смерть которых предсказывала модель, 75% действительно умерли.
  • Из всех пациентов, которые действительно умерли, модель правильно предсказала этот исход только для 43% этих пациентов.

Наконец, мы проверим вклад каждой функции в наши прогнозы.

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

  1. LOS (длительность пребывания) в отделении интенсивной терапии
  2. Мужской пол
  3. Тип госпитализации: перевод из больницы
  4. Тип приема: Срочный
  5. Страховка: Медикейд
  6. Этническая принадлежность: Другой
  7. Этническая принадлежность: Неизвестно
  8. Семейное положение: женат

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

Раздел V: Заключение и обсуждение

Отражение

Цель состояла в том, чтобы выяснить, можем ли мы, используя базу данных MIMIC, прогнозировать вероятность смертности в больнице или в разных отделениях больницы по отдельности. Однако данные, использованные в этом блокноте, были демонстрационной версией MIMIC из-за недоступности и длительности процесса утверждения приложений. Выборка состояла всего из 100 пациентов с 20 смертельными исходами. Из-за размера выборки мы не могли ограничить данные только посещениями отделения неотложной помощи, но с большими наборами данных мы можем анализировать различные отделы больницы. Согласно нашим результатам, из-за небольшого количества записей о пациентах и ​​количества смертей это показывает, что наша модель плохо работает из-за этой проблемы. Кроме того, как упоминалось выше, среди наших умерших пациентов только 4 были женщинами. Следовательно, в наших ограниченных наборах данных, а не в широкой публике, в значительной степени причиной смерти пациента был мужской пол.

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

Улучшение

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