ПОСТРОЕНИЕ МОДЕЛИ МАШИННОГО ОБУЧЕНИЯ ДЛЯ ПРОГНОЗИРОВАНИЯ ВЫСОКОГО РИСКА СЕРДЕЧНОГО ИНФАРМА У ПАЦИЕНТОВ — SHYLLON HOSPITALS

«Время и здоровье — два драгоценных актива, которые мы не осознаем и не ценим, пока они не истощатся».» — (Денис Уэйтли, n.d)

Слова Дениса Уэйтли очень верны, поскольку в большинстве случаев мы не признаем время и здоровье, пока они не истощатся. Но что, если бы мы могли изменить это? Что, если бы можно было построить что-то, чтобы помочь здоровью и времени, чтобы нам не приходилось ждать, чтобы распознать проблемы, когда уже поздно? Я думаю, что модель машинного обучения может быть полезной. Я использовал методологию науки о данных Межотраслевого стандартного процесса интеллектуального анализа данных (CRISP-DM) для создания модели машинного обучения, которая поможет больницам Шиллон прогнозировать высокую вероятность сердечного приступа у одного из ее пациентов на основе определенных признаков. Этапы методики следующие:

  1. Понимание бизнеса
  2. Понимание данных
  3. Подготовка данных
  4. Моделирование
  5. Оценка
  6. Разработка

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

Фернандо — отец и инженер, который несколько лет находился вдали от своей семьи из-за работы. Десять лет назад у него диагностировали высокий уровень холестерина. Ему сказали, что у него может быть сердечный приступ, но он не соблюдал инструкции, данные ему в больнице. Он кое-что изменил в своих привычках в еде и почувствовал, что с его нынешним образом жизни вероятность того, что он это сделает, будет меньше. Солнечным днем ​​Фернандо играл в мяч со своим сыном, и он упал, держась за грудь, и все.

Что, если бы был способ показать Фернандо, что того, что он делал, было недостаточно, и он все еще подвергался риску сердечного приступа из-за определенных признаков? Смерть любимого человека очень болезненна, но боль, которая приходит от осознания того, что ее можно предотвратить, еще хуже.

По данным медицинских работников, сердечно-сосудистые заболевания являются причиной 33% из примерно полумиллиона случаев смерти от неинфекционных заболеваний в Нигерии ежегодно (Onyedika-Ugoeze, 2021). Инфаркт миокарда или сердечный приступ может случиться с теми, кто ведет очень небрежный образ жизни, и его можно предотвратить, если риски будут обнаружены на ранней стадии. Если надлежащие лекарства не принимаются и правильные шаги неправильно рассчитаны, это может быть очень вредным. С точки зрения пациента сердечные приступы или инфаркт миокарда (ИМ) могут стать причиной госпитализации и потребовать обширного медицинского лечения и даже привести к смерти. Это может создать нагрузку на ресурсы больницы, включая персонал, оборудование и койки.

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

Для такой авторитетной организации, как Shyllon Hospitals, которая стремится спасать жизни и развивать свою организацию, я думаю, что наука о данных может помочь улучшить лечение сердечно-сосудистых заболеваний. Как? Он будет использовать существующие данные вместе с моделью машинного обучения, чтобы помочь предсказать, у каких пациентов высока вероятность инфаркта миокарда. Эта модель поможет пациентам точно знать, снижает ли то, что они делают, вероятность сердечного приступа. Это поможет больницам и пациентам узнать, сколько работы им нужно приложить для количественной оценки планов лечения. Это также поможет улучшить сердечно-сосудистую помощь и повысить осведомленность. Наконец, что является целью этой модели, она поможет предотвратить смерть таких людей, как Фернандо, с инфарктом миокарда.

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

В предыдущих абзацах мы установили ценность этого проекта и цели, которые он призван выполнить. В этом разделе мы поговорим подробнее о наших данных. Мои одноклассники и я получили набор данных для этого проекта от Kaggle.com Рашика Рахмана. Набор данных был структурирован и все числовые данные. Структурированный означает, что он был в строках и столбцах.

2.1 Требования к данным

Для реализации этого проекта мне требовалась определенная информация о пациентах. Столбцы моего набора данных включают:

  • Возраст: возраст человека.
  • Пол: пол человека.
  • Cp: Тип боли в груди.
  • Trtbps: артериальное давление в покое (в мм рт. ст.).
  • Хол: холесторин в мм/дл, полученный с использованием ИМТ.
  • Fbs: сахар в крови натощак › 120 мг/дл
  • Restecg: результаты электрокардиографии в состоянии покоя.
  • Thalachh: Достигнута максимальная частота сердечных сокращений.
  • Расширение: Стенокардия, вызванная физической нагрузкой.
  • Oldpeak: Предыдущий пик
  • Slp: Наклон.
  • Caa: количество крупных судов.
  • Thall: скорость Thal.
  • Вывод: Целевая переменная.

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

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

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

Чтобы начать подготовку данных для модели, которую мы планируем создать, нам нужно импортировать CSV-файл в предпочитаемую нами интегрированную среду разработки (IDE). Для этого проекта я и мои одноклассники будем использовать Jupyter Notebook. Вы можете установить его онлайн и запустить через терминал, набрав «Jupyter Notebook» в консоли.

Это код для импорта нашего CSV-файла ниже:

Мы также использовали библиотеку pandas в нашем проекте.

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

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

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

Я также столкнулся с проблемами размерности, которые заставили меня приступить к процессу уменьшения размерности для количества столбцов в target_train и target_test. Я использовал коды ниже соответственно.

.values ​​придает значениям массива numpy форму (n,1).

.ravel преобразует форму массива в (n,), что делает его плоским, что нам и нужно для target_train и target_test. Теперь, когда наши данные готовы, мы можем приступить к построению модели.

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

На этом этапе модель машинного обучения оживает. Модель для проекта будет использовать контролируемое обучение, потому что мой набор данных помечен. Это также будет модель бинарной классификации. Мои функции и целевой набор данных были разделены на functions_train, features_test, target_train и target_test. Я разделил свои данные и использовал 70% для обучения модели и 30% для ее тестирования. Вот код ниже.

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

Когда я использовал классификатор опорных векторов (SVC), я получил показатель точности 61%.

Затем я приступил к опробованию классификатора дерева решений, и моя оценка точности составила 71%.

Наконец, я также опробовал классификатор логистической регрессии, и моя оценка точности составила 75%.

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

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

Оценка

Результат моей модели вышел в виде массива. См. его снимок ниже.

Я сделал его более презентабельным, используя предложения DataFrame Pandas, чтобы сделать его более презентабельным. См. код ниже.

Мои оценки точности были выше 60% и варьировались от 61% до 76%, поскольку я продолжал переобучать свою модель. Я приступил к анализу моей модели, используя матрицу путаницы, и результаты показаны ниже.

Матрица путаницы

Мой Истинно положительный, то есть число фактического высокого риска сердечного приступа, которое было предсказано верно, равно 41. Мой Истинно отрицательный, который представляет собой число действительно предсказанного низкого риска сердечного приступа, который был предсказан правильно, равен 28. Мое ложноположительное срабатывание, которое представляет собой число предсказанного высокого риска сердечного приступа, которое на самом деле было низким риском, равно 11. Мое ложноотрицательное значение, которое является числом фактический высокий риск сердечного приступа, который был предсказан как низкий риск, равен 11. Моя модель смогла получить в общей сложности (41 + 28) 69 значений правильно и в общей сложности (11 + 11) 22 значения неправильно.

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

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

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

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

Цитаты Дениса Уэйтли. (н.д.). BrainyQuote.com. Получено 22 января 2023 г. с веб-сайта BrainyQuote.com: https://www.brainyquote.com/quotes/denis_waitley_146927.

Оньедика-Угоэзе, .Н. (2021). Эксперты оплакивают высокое бремя сердечно-сосудистых заболеваний в Нигерии. Получено с https://guardian.ng/features/experts-lament-high-burden-of-cardiovassal-disease-in-nigeria/