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

В этой статье я вместе с Сафваном Мансури и Науманом Мансури реализовали систему классификации сердечных сокращений с использованием сигналов ЭКГ пациентов. Мы свободно реализовали процедуру, указанную в этой статье https://doi.org/10.1111/exsy.12219, в которой мы используем авторегрессивные функции сигнала ЭКГ для извлечения важных функций, чтобы сделать существенное машинное обучение или глубокое обучение. модель. Уже существует несколько методов, которые могут решить эту задачу, например, преобразование сигнала ЭКГ в изображения и применение ResNet, VGG16 или других типов ConvNets для обучения. Хотя все эти методы дают многообещающие результаты, они довольно дороги в вычислительном отношении, и именно тогда в игру вступает метод, который мы использовали.

Какую роль играет компьютер?

Согласно отчету Американской кардиологической ассоциации, ежегодно регистрируется 356 000 неотложных случаев остановки сердца. 6,5 миллиона человек в возрасте 20 лет и старше испытали сердечную недостаточность и живут с ней. Частота сердечных приступов увеличилась на ошеломляющие 38% в период 2005–2015 годов, и, по оценкам, в ближайшие годы это число астрономически вырастет.

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

Сердцебиение

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

Как видно на этом рисунке, есть 3 субкомпонента одной волны сердечного ритма. Вот краткая информация о каждом компоненте, не вдаваясь в медицинские детали;

Зубец P: стадия сокращения предсердий. Это гладкая округлая небольшая шишка, указывающая на начало сердцебиения.

Комплекс QRS: стадия сокращения желудочков. Включает 3 волны

  • Зубец Q: первая отрицательная волна, следующая за зубцом P, может не всегда присутствовать.
  • Зубец R: первая положительная волна после зубца P или Q.
  • Зубец S: первая отрицательная волна после зубца R.

Зубец T: стадия расслабления желудочков. Обозначает конец сердцебиения.

Данные

Мы использовали MIT-BIH Dataset от PhysioNet, который содержит 48 записей ЭКГ; каждый из 30 минут, записанных от 47 субъектов. Каждая запись была дискретизирована с частотой 360 Гц, и есть файл аннотации, связанный с каждым ударом сердца, который содержит информацию о типе сердцебиения. Руководство к файлу аннотации можно найти здесь.

Теперь поговорим об этапе внедрения нашей системы.

Шаг 1. Чтение и анализ данных

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

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

  • Чтение образцов записей и файлов аннотаций:

Здесь мы берем историю болезни пациента от 119 до первых 2000 образцов вместе с аннотациями. Посмотрим, как выглядят эти файлы.

Файл записи здесь, как видно, содержит метаданные, включая комментарии врача. Однако нам нужен массив «p_signal», содержащий значения сигнала ЭКГ.

С другой стороны, файл аннотации содержит 2 вещи: местоположение (в терминах номера сэмпла) R-Peaks каждого сердечного сокращения и тип удара. Здесь мы взяли только первые 2000 образцов данных, поэтому мы можем увидеть только первые несколько ударов сердца.

Давайте нарисуем сердцебиение и посмотрим, как оно выглядит.

Теперь это больше похоже на обычный сигнал ЭКГ!

Шаг 2: предварительная обработка сигнала

Теперь, когда мы можем считывать данные в более естественном формате, мы можем начать с предварительной обработки сигнала. В основном он включает 2 этапа: фильтрация и сглаживание сигнала ЭКГ.

  • Фильтрация: Как было предложено в вышеупомянутом исследовательском документе, для удаления некоторых артефактов, загрязняющих сигнал, мы пропустим его через серию из 3 фильтров: фильтр верхних частот с частотой 1 Гц; затем следует полосовой фильтр около 60 Гц и, наконец, фильтр нижних частот на 100 Гц. Мы будем использовать модуль сигналов Scipy, чтобы относительно легко реализовать это.

(Примечание: чтобы узнать о фильтрации сигнала, настоятельно рекомендую прочитать эту статью)

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

Шаг 3. Извлечение авторегрессивных функций и создание обучаемого набора данных

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

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

В приведенном выше уравнении, если мы хотим предсказать значение для yt, используя предыдущие точки данных (yt-1 и yt-2), мы легко предсказать, используя коэффициенты (B0, B1 и B2). Здесь мы будем использовать алгоритм Левинсона-Дурбина (библиотека statsmodels), чтобы узнать коэффициенты авторегрессии для каждого сигнала.

Согласно исследовательской работе, необходимо выделить следующие признаки:

  • 1. Коэффициенты AR сегмента QRS
  • 2. Коэффициенты AR сегмента ST / T
  • 3. Pre RR Length (Продолжительность между предыдущим пиком R и текущим пиком R)
  • 4. Длина записи RR (длина между следующим пиком R и текущим пиком R)

Еще одна вещь, о которой следует помнить, - это то, как мы группируем удары сердца. Существует 15 различных типов биений, но мы сгруппировали их в 5 общих макрогрупп в соответствии с симптомами, которые они могут иметь. Эти 5 макрокатегорий:

  • Преждевременные удары: часто и не так рискованно
  • Связанные блоки ответвлений: опять же, часто и опасно только при головокружении.
  • Escape Beats: высокий риск
  • Fusion Beats: возникают при столкновении кардиостимуляторов.
  • Нормальные ритмы

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

Теперь мы готовы перейти к последнему этапу - классификации!

Шаг 4: классификация

Наверное, самый захватывающий шаг, а? Что ж, это самый короткий и простой шаг для реализации в этом проекте!

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

В итоге классификатор случайного леса оказался на вершине с результатом 94,85% F1 и точностью 95,24.

Заключение

Потрясающие! В нашем распоряжении есть надежная и эффективная модель машинного обучения. Теперь у нас возникает вопрос: где и как это применить?

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

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

использованная литература

[1] Аднане, Мурад и Белушрани, Адель. (2017). Классификация сердечных сокращений с использованием функций авторегрессии QRS и зубца T и функций интервала RR. Экспертные системы. 34. e12219. 10.1111 / exsy.12219.