Как использовать машинное обучение для выявления диабета

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

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

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

Согласно статистике, около 9,3 процента взрослого населения мира страдали диабетом в 2019 году - ожидается, что к 2045 году это число вырастет почти до 11 процентов. Эти огромные цифры и мой прошлый опыт моделирования машинного обучения заставили меня задуматься. если мы сможем использовать возможности машинного обучения для обнаружения диабета. Целью этого эксперимента является разработка автоматизированной математической модели, которая точно определяет, страдает ли человек диабетом, на основе статистики его здоровья и исторических данных других пациентов.

Вот концептуальная схема предлагаемой математической модели:

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

Теперь, когда у нас есть все необходимое, пора начинать!

Шаг 1. Подготовьте набор данных

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

  • Глюкоза
  • Среднее кровяное давление
  • Инсулин
  • ИМТ
  • Статистика анамнеза диабета (функция, которая определяет вероятность диабета на основе семейного анамнеза пациента)
  • Возраст
  • Обнаружение

Шаг 2. Наденьте шляпу программирования

Я использовал Python в качестве языка сценариев. Поскольку я новичок в Python, я использовал » Блокнот «Jupyter.

2.1 Импорт необходимых пакетов

Среда Anaconda предоставляет несколько базовых пакетов, таких как «NumPy», «Pandas», «Json», «Matplotlib» и «Seaborn». Если вы хотите использовать API для получения данных с вашего сервера, вы можете использовать пакет «Запросы». Для набора для обучения и тестирования вы можете использовать пакеты «train_test_split» и «sklearn».

2.2 Считывание данных из фиктивного набора данных

Теперь пришло время получить фиктивные данные, которые мы добавили в таблицу Excel. Вы также можете использовать CSV или базы данных.

Затем мы получим фиктивные данные с помощью пакета «Pandas».

2.3 Распечатайте результаты обнаружения

Давайте узнаем результаты обнаружения, которые мы получили для исторических данных. Здесь цифра «1» в столбце «Обнаружение» представляет положительное обнаружение, а «0» - отрицательное обнаружение.

2.4 Разделите данные на наборы для обучения и тестирования

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

2.5 Определение точности тренировочного и тестового наборов

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

2.6. Подготовьте набор для обучения и тестирования, убрав столбец «Обнаружение».

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

Для этого я убрал столбец «Обнаружение». Я разделил эти наборы с соотношением 70:30, где обучающий набор содержит 70% данных, а тестовый набор содержит 30% данных.

2.7 Обработка значений NULL в данных

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

2.8 Применение логистической регрессии

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

Формула: g (E (y)) = α + βx1 + γx2

2.9 Использование матрицы неточностей для проверки обнаружения

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

  1. Истинно положительный
  2. Истинно отрицательный
  3. Ошибка типа I (ложноположительный)
  4. Ошибка типа II (ложноотрицательный)

Давайте применим эту матрицу путаницы к нашим тренировкам и тестам.

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

Наблюдения:

  • Истинные положительные результаты (TP): Мы правильно предсказали, что 19 человек страдают диабетом.
  • Истинно-отрицательные (TN): мы правильно предсказали, что 65 человек не болеют диабетом.
  • Ошибка типа I (FP): мы неверно предсказали, что 9 человек страдают диабетом.
  • Ошибка типа II (FN): мы ошибочно предположили, что 15 человек не болеют диабетом.

Шаг 3. Найдите оценку модели для заключения

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

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

Вывод

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

P.S. Я скоро поделюсь полным кодом. А пока можете заглянуть в другой мой блог, в котором исследуется роль машинного обучения в спорте.