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

В этом проекте мы изучаем применение машинного обучения для прогнозирования сепсиса у пациентов отделения интенсивной терапии с использованием всеобъемлющего набора данных. Набор данных состоит из различных клинических характеристик, включая демографические данные пациентов, физиологические параметры, результаты лабораторных исследований и истории болезни. Каждая запись пациента помечена как «Положительный» или «Отрицательный», чтобы указать на наличие или отсутствие сепсиса. Как специалист по данным, разработка модели машинного обучения для прогнозирования статуса сепсиса может сыграть решающую роль в оказании помощи медицинским работникам в раннем выявлении и улучшении результатов лечения пациентов. Это пошаговый процесс построения модели прогнозирования сепсиса с использованием Fast API, высокопроизводительной веб-платформы для создания API с помощью Python.

БИЗНЕС-ПОНИМАНИЕ

Данные для этого проекта представлены в формате csv. Ниже описаны столбцы, присутствующие в данных.

Вот разбивка столбцов:

  • ID: уникальный идентификатор для каждого пациента.
  • PRG: количество беременностей.
  • PL: концентрация глюкозы в плазме.
  • PR: диастолическое артериальное давление (мм рт. ст.).
  • SK: толщина кожной складки трицепса (мм).
  • TS: 2-часовой инсулин в сыворотке (мЕд/мл)
  • M11: индекс массы тела (вес в кг/(рост в м)²)
  • BD2: генетическая функция диабета
  • Возраст: возраст пациента.
  • Страховка: статус страховки (0 = нет, 1 = да).
  • Сепсис: статус сепсиса (положительный = сепсис присутствует, отрицательный = сепсис отсутствует)

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

ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ И РАЗРАБОТКА ФУНКЦИЙ

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

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

ВЫБОР МОДЕЛИ И ОБУЧЕНИЕ

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

Чтобы обучить выбранную модель, разделите набор данных на наборы для обучения и проверки. Примените выбранный алгоритм к тренировочному набору и настройте гиперпараметры модели, используя такие методы, как перекрестная проверка и поиск по сетке. Оцените производительность модели на проверочном наборе, используя соответствующие показатели оценки, такие как точность, воспроизводимость и площадь под кривой ROC (AUC-ROC).

Следующим шагом с обученной и проверенной моделью прогнозирования сепсиса, которая будет представлять собой файл рассола (model.pkl), является разработка приложения Fast API для обслуживания модели в качестве API.

СОЗДАНИЕ API

Чтобы создать API, нам нужно установить FastAPI и Uvicorn, выполнив следующую команду в вашем терминале или командной строке и создав импорт необходимых модулей в новый файл Python (например, main.py)

Создайте экземпляр класса Fast API и определите конечные точки API с помощью декораторов FastAPI.

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

Затем выполните следующую команду в терминале или командной строке, чтобы запустить сервер API.

Ниже приведены изображения с сервера API.

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

Это скриншоты развернутого сервера Fast API.

Именно так можно создать API прогнозирования статуса сепсиса с помощью Fast API.

Подробный обзор проекта со всеми необходимыми файлами можно найти на моем GitHub.

АВТОР

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