Модели и алгоритмы обработки кардиологических данных для системы поддержки принятия диагностических решений на основе нейросетевых технологий тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Аль-Хамами Омар Хашим Яхья
- Специальность ВАК РФ00.00.00
- Количество страниц 201
Оглавление диссертации кандидат наук Аль-Хамами Омар Хашим Яхья
ВВЕДЕНИЕ
ГЛАВА 1. АНАЛИЗ ПОДХОДОВ К ПОСТРОЕНИЮ СИСТЕМ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЯ ПРИ УПРАВЛЕНИИ СОСТОЯНИЕМ СИСТЕМЫ ДИАГНОСТИКИ СЕРДЕЧНО-СОСУДИСТЫХ ЗАБОЛЕВАНИЙ
1.1 Анализ информативности кардиологических данных, влияющих на принятие диагностических решений
1.2 Анализ методов и моделей организации поддержки принятия решения
1.3 Анализ структур систем поддержки принятия решения
1.4 Выводы по первой главе и постановка задачи исследования
ГЛАВА 2. РАЗРАБОТКА МОДЕЛЕЙ И АЛГОРИТМА ОБРАБОТКИ КАРДИОЛОГИЧЕСКИХ ДАННЫХ
2.1 Модель первичной обработки кардиологических данных
2.2 Модель классификации кардиологических данных на основе одномерной сверточной нейронной сети
2.3 Алгоритм поддержки принятия диагностического решения для формирования вариантов диагностического решения
2.4 Исследование эффективности применения разработанных моделей и алгоритма в процессе организации принятия решений при управлении состоянием системы диагностики сердечно-сосудистых заболеваний
2.5. Выводы по второй главе
ГЛАВА 3. АЛГОРИТМ И МОДЕЛЬ ПОВЫШЕНИЯ ДОСТОВЕРНОСТИ ПРИНЯТИЯ ДИАГНОСТИЧЕСКОГО РЕШЕНИЯ
3.1 Модернизация алгоритма обнаружения голосовой активности для классификации фаз дыхания на основе вероятностного подхода
3.2 Модель аутентификации пациента в процессе функционирования системы диагностики
3.3 Выводы по третьей главе
ГЛАВА 4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ И ОЦЕНКА ЭФФЕКТИВНОСТИ ПРИМЕНЕНИЯ РАЗРАБОТАННЫХ МОДЕЛЕЙ И АЛГОРИТМОВ
4.1 Организация вычислительного эксперимента по оценке результатов исследования
4.2 Описание вычислительного эксперимента и анализ результатов моделирования процесса поддержки принятия диагностического решения137
4.3 Выводы по четвертой главе
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ А. Листинг программного кода модели классификации кардиоданных
ПРИЛОЖЕНИЕ Б. Листинг программного кода СППДР в виде компьютерного приложения
ПРИЛОЖЕНИЕ В. Таблица рекомендаций по лечению, Тезаурус предметной области и этапы обработки сигнала и их реализация в детекторе Я-пиков
ПРИЛОЖЕНИЕ Г. Копии актов и сертификата внедрения результатов диссертации
Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Способы и алгоритмы обработки информации и принятия решений о сердечно-сосудистой патологии на основе механизмов визуализации и теории нечетких множеств2014 год, кандидат наук Кочеткова, Инесса Андреевна
Моделирование интеллектуальной классификации кардиологических данных на основе рекуррентных нейронных сетей2024 год, кандидат наук Киладзе Мария Романовна
Исследование и разработка методов оценивания контролируемых параметров сигналов в автоматизированных кардиологических диагностических комплексах1999 год, кандидат технических наук Горбунова, Елена Викторовна
Методы и алгоритмы интеллектуальной поддержки принятия решений в медицинской практике на основе обработки естественных языков2024 год, кандидат наук Гришина Любовь Сергеевна
Применение искусственных нейронных сетей для диагностики заболеваний сердечно-сосудистой системы2002 год, кандидат технических наук Гарколь, Наталья Станиславовна
Введение диссертации (часть автореферата) на тему «Модели и алгоритмы обработки кардиологических данных для системы поддержки принятия диагностических решений на основе нейросетевых технологий»
ВВЕДЕНИЕ
Актуальность работы. Современный мир, на фоне увеличивающейся продолжительности жизни человека в большинстве регионов мира, обеспокоен ростом количества сердечно-сосудистых заболеваний (ССЗ). Анализ статистических данных позволяет заключить, что ССЗ признаны ведущей причиной смерти в глобальном масштабе. Нарушения сердечного ритма представляют собой кардиологические аномалии. Аритмии поражают от 40 % до 75 % населения, но часто остаются не диагностированными, а недостаточный опыт врачей не позволяет, в ряде случаев, назначить эффективное первичное лечение. Это связано с недостаточной автоматизацией процессов обработки данных в средствах диагностики ССЗ.
Большинство средств автоматизации обработки кардиологических данных (далее кардиоданных) имеют существенные ограничения. В одних используют традиционные математические методы с невысокой точностью, в других применяют нейросетевые технологии, игнорируя сложность архитектуры модели. В этих средствах автоматизации не всегда существует возможность интеграции диагностического решения, формируемого в результате анализа кардиоданных, с рекомендациями по первичному лечению человека, в силу чего большое количество диагностических решений и рекомендаций по первичному лечению недостаточно обосновано.
Таким образом, актуально решение научной задачи, направленной на преодоление указанных ограничений и достижение баланса между точностью классификации кардиоданных, вычислительной сложностью решаемой задачи и полнотой предоставляемой информации для врача.
Степень разработанности темы исследования. Большое количество трудов посвящено решению задач автоматизации процесса анализа данных, их классификации и организации поддержки принятия диагностических решений на этой основе. Как российские, так и зарубежные ученые: Андреева П. К., Давыдов А. В., Долгих Л.А., Киладзе М.Р., Костылева С.А., Немирко А.П.,
Оконешникова Э.Ф., Родионов Д.М., Руденко М.Ю., Солиман Х., Фролов С.В., Юнусова О. А., Al-Karaki J., Atal D.K., Turnip A. и др., разработали методы автоматической классификации данных ЭКГ, в том числе и на основе применения методов глубоких нейронных сетей. Эти методы позволяют автоматизировать выделение диагностических признаков и раннее выявление аритмий, снижая нагрузку на врачей. Однако методологические подходы этих авторов основаны на двумерных архитектурах нейронных сетей, сложны в применении и не полностью решают задачу интерпретируемости результата классификации кардиоданных, их интеграцию с содержанием первичного лечения. Предложенные ими методы, также предоставляют возможность диагностирования ограниченного количества классов аритмий, что влияет их практическое применение, особенно в условиях труднодоступности соответствующего оборудования и кардиолога.
Вышеизложенный анализ позволил сформулировать практическую задачу - обеспечить оперативное и достоверное формулирование диагноза ССЗ и выбор первичного лечения в условиях ограниченного доступа к специализированному кардиологическому оборудованию и врачу. Решение практической задачи затруднено наличием практического противоречия между необходимостью повышения оперативности и достоверности диагностических решений, принимаемых врачом-кардиологом и ограниченностью возможностей (в том числе и ограниченными возможностями по интерпретируемости результатов ЭКГ) технических и программных средств, помогающих врачу при постановке диагноза и формировании первичного медицинского сопровождения.
Это обусловлено научным противоречием между современными требованиями к диагностическому оборудованию для обнаружения ССЗ используемому при поддержке принятия решения врача-кардиолога и ограниченностью возможностей применяемых математических методов, моделей и алгоритмов, используемых в этом оборудовании.
На основании этого анализа был сформулирован вывод о том, что
теоретической основой исследования является многофакторный и вероятностный подходы к разработке моделей и алгоритмов обработки кардиоданных для системы поддержки принятия решений (СППР), позволяющий получить больше диагностической информации, сократить время анализа данных и повысить достоверность диагностических решений.
Объектом исследования является система диагностики сердечнососудистых заболеваний и управления первичным лечением человека.
Предметом исследования являются методы, модели и алгоритмы, обеспечивающие автоматизацию процесса принятия диагностических решений, основанные на обработке данных кардиомониторинга с использованием нейросетевых технологий.
Цель исследования направлена на повышение оперативности и достоверности диагностики сердечно-сосудистых заболеваний за счет применения многофакторного и вероятностного подходов к созданию новых и модернизации существующих моделей и алгоритмов обработки и представления кардиоданных.
Для достижения цели исследования необходимо решить научную задачу по созданию новых и модернизации существующих моделей и алгоритмов обработки, и представления кардиоданных для системы поддержки принятия диагностических решений и управления первичным лечением человека на основе нейросетевых технологий и математической статистике.
Решение научной задачи позволит не только обеспечить оперативность принятия решения врачом-кардиологом, но и обеспечит повышение достоверности решения, в том числе за счет решения задачи интерпретируемости и визуализации результатов анализа кардиоданных.
Для достижения цели и решения научной задачи были сформулированы частные задачи исследования:
1. Анализ современных технологий и подходов к построению систем диагностики сердечно-сосудистых заболеваний, организация поддержки принятия диагностических решений.
2. Разработка модели первичной обработки кардиоданных, обеспечивающей их нормализацию.
3. Разработка модели классификации кардиоданных на основе одномерных сверточных нейронных сетей, обеспечивающей выявление закономерностей в данных кардиомониторинга.
4. Разработка алгоритма поддержки принятия диагностического решения врачом, сочетающего в себе не только диагноз, но и рекомендации по содержанию первичного лечения.
5. Модернизация алгоритма обнаружения голосовой активности для классификации фаз дыхания на основе вероятностного подхода.
6. Разработка модели идентификации пациента с использованием биометрических параметров электрокардиографических сигналов.
7. Оценка эффективности применения разработанных моделей и алгоритма обработки кардиоданных для системы поддержки принятия диагностических решений.
Достижение цели и решение научной задачи позволит решить практическую задачу - быстро и достоверно формулировать диагноз ССЗ и назначать первичное лечение в условиях ограниченного доступа к специализированному кардиологическому оборудованию.
Научная новизна результатов диссертационного исследования заключается в построении оригинальных моделей и алгоритмов, а именно:
1. Модель первичной обработки кардиоданных отличается применением многофакторного подхода, что позволило обеспечить интеграцию градиентного метода обнаружения R-пиков в сигнале ЭКГ с коррекцией положения пика на основе использования адаптивного окна и математического вейвлет-преобразования Добеши для автоматического удаления шума.
2. Модель классификации кардиоданных, отличающаяся процедурой установления взаимосвязи между формой отдельных сердечных сокращений и контекстом его ритма за счет использования морфологических особенностей данных ЭКГ при обучении одномерной нейронной сети (1D-CNN).
3. Алгоритм поддержки принятия диагностического решения, отличающийся преобразованием результатов классификации аномалий кардиоданных в информацию для диагностического решения и рекомендации по первичному лечению посредством статистического агрегирования, временного картирования результатов обработки кардиоданных.
4. Модернизированный алгоритм обнаружения голосовой активности (ОГА), отличающийся процедурой адаптации к параметрам дыхания при классификации респираторных паттернов в качестве вторичного диагностического параметра, основанного на вероятностном подходе.
Теоретическая значимость результатов исследования заключается в расширении области применения методов обработки данных, направленных на обнаружение и классификацию отклонений, позволяющих решать задачи организации принятия решений на основе обработки больших объемов данных и установленных взаимосвязей между формой отдельных сердечных сокращений и контекстом сердечного ритма.
Практическая значимость результатов исследования заключается в построении недорогих, портативных индивидуальных средств диагностики ССЗ, а так же совершенствовании существующих систем диагностики ССЗ. Применение предложенных моделей и алгоритма обработки кардиоданных, на основе сверточной нейронной сети, целесообразно применять в медицинских учреждениях для повышения оперативности выявления аномалий и назначении первоначального лечения пациента. Разработанный программный продукт (свидетельство о регистрации программы для ЭВМ №2025697421, 24.12.2025) на языке высокого уровня (Python) с графическим интерфейсом совместим с холтеровскими мониторами и базами данных (PhysioNet) и обеспечивает поддержку загрузки данных ЭКГ и экспорт результатов в различных форматах (отчёты в формате PDF и CSV). Применение результатов диссертационного исследования обеспечит возможности мониторинга состояния пациентов с сердечно-сосудистыми заболеваниями в сельской местности с ограниченным доступом к медицинским услугам (на примере Ирака).
Методология и методы исследования. Для достижения цели исследования и решения научной задачи использованы методы цифровой обработки сигналов, системного анализа, теории вероятностей, математической статистики и математического моделирования. Методологическую основу диссертации составляет системный и многофакторный подходы.
Положения, выносимые на защиту:
1. Применение модели первичной обработки кардиоданных повышает четкость выявления R-пиков и эффективность удаления шума, и позволяет сократить время анализа данных (п. 5 паспорта научной специальности 2.3.1).
2. Модель классификации кардиоданных на основе одномерной сверточной сети снижает вычислительную сложность решаемой задачи и повышает достоверность принимаемых диагностических решений (п. 10 паспорта научной специальности 2.3.1).
3. Алгоритм поддержки принятия диагностического решения не только ускоряет процесс формирования управляющего воздействия для пациента, но и повышает интерпретируемость и качество визуализации результатов обработки кардиоданных (п. 10, п. 12 паспорта научной специальности 2.3.1).
4. Модернизированный алгоритм обнаружения голосовой активности повышает достоверность диагностического решения (п. 5, п. 10 паспорта научной специальности 2.3.1).
Степень достоверности и апробация результатов исследования. Достоверность результатов исследования подтверждена использованием проверенных математических методов первичной обработки и анализа кардиоданных, согласуемостью теоретических результатов с результатам вычислительных экспериментов, использованием реальных медицинских данных (на основе которых врачи ранее ставили диагнозы - из открытых источников), при обучении нейронной сети и моделировании системы поддержки принятия диагностических решений, широким обсуждением результатов исследования на научных конференциях, семинарах и т.д.
Основные результаты диссертации докладывались и обсуждались на
международных и всероссийских научных конференциях: 7-я Международная конференция по системам управления, математическому моделированию, автоматизации и энергоэффективности «SUMMA2025» (Липецк, 2025); Международной НПК «Нано-био-технологии. Теплоэнергетика. Математическое моделирование» (Липецк, 2023, 2024); Международной НПК им. Э.К. Алгазинова «Информатика: Проблемы, Методы, Технологии» (Воронеж, 2023, 2024); Международная НПК «Нейрокомпьютеры и их применение» (Москва, 2023, 2024), Международная НПК «Цифровизация агропромышленного комплекса» (Тамбов, 2024).
Результаты исследования внедрены на кафедре Искусственного интеллекта Северного технического университета (г. Мосул, Республика Ирак) в виде учебных пособий и лабораторных работ по направлениям подготовки «Компьютерная техника и искусственный интеллект» в дисциплине «Искусственный интеллект» и «Биомедицинские системы» в дисциплине «Биомедицинские интеллектуальные системы». Практическое внедрение результатов исследования привело к значительному повышению качества и эффективности образовательного процесса по данным дисциплинам. Результаты диссертации также использованы в ФГБОУ ВО «Тамбовский ГТУ» при исследованиях, связанных с созданием реабилитационных тренажеров.
Диссертация выполнена в процессе обучения в аспирантуре и в рамках научных исследований, проводимых в ФГБОУ ВО «ТГТУ» в соответствии с программой развития университета на 2021-2030 гг.
Публикации. По теме исследования опубликовано 16 работ, в том числе: три статьи в журналах, рекомендованных ВАК для публикации результатов научных исследований; пять статей в журналах, входящих в международные реферативные базы данных Scopus и Web of Science; семь статей в изданиях, индексируемых в национальном библиографическом справочнике базы данных научного цитирования РИНЦ; одно свидетельство о регистрации программы.
Личный вклад автора в результаты научного исследования. Представленные в диссертации результаты получены соискателем лично. В
публикациях, написанных в соавторстве, личный вклад заключается в: анализе предметной области, формулировках и формализации научных задач [13]; обосновании методологических подходов к исследованию [9, 12]; разработке моделей и алгоритмов [2, 4, 7]; реализации системы диагностики ССЗ и управления первичным лечением человека [3, 8, 11, 15, 16]: организации и проведении эксперимента, анализе его результатов [10].
Структура и объем работ. Диссертация включает введение, четыре главы, заключение, список литературы из 141 наименования и четырех приложений. Основной текст содержит 74 рисунка и 19 таблиц.
Введение содержит актуальность темы диссертации, степень проработанности проблемы исследования, объект и предмет темы исследования, цель диссертации, формулировку научных и практических задач, описание научной новизны, теоретической и практической значимости диссертации, результаты, выносимые на защиту, сведения о личном вкладе автора в соавторских публикациях, краткая характеристика глав диссертации.
Глава первая посвящена анализу подходов к обработке кардиоданных и различным методам диагностики заболеваний сердца, актуальности анализа данных электрокардиограммы для классификации аномалий, обзору подходов к регистрации данных электрокардиограммы, списку открытых кардиологических баз данных, необходимых для разработки моделей и подходов к обработке кардиоданных, существующим моделям и алгоритмам нейронных сетей, решающим задачу автоматизированного анализа кардиоданных, и их ограничениям, сравнительным таблицам существующих подходов.
Приводится сравнительный анализ методов на основе таких критериев, как точность классификации, архитектурная сложность, интерпретируемость результатов и интеграция первоначальных рекомендаций по лечению. Анализ выявил ряд недостатков, связанных с достоверностью существующих автоматизированных подходов к обработке кардиоданных и диагностике сердечно-сосудистых заболеваний. К ним относятся длительное время анализа,
недостаточная точность классификации и интерпретации результатов, а также отсутствие интеграции рекомендаций по лечению для поддержки принятия решений. В соответствии с требованиями специализации «Системный анализ и автоматизированные системы обработки информации» были предложены математические представления моделей и алгоритмов обработки кардиологических данных для поддержки принятия решений в диагностике сердечно-сосудистых заболеваний и ведении пациентов. Эти модели обеспечивают баланс таких факторов, как время анализа, точность классификации, сложность нейронной сети, интерпретируемость результатов и обеспечение управления пациентами на начальном этапе. В данной главе предложена математическая задача для системы обработки ЭКГ, которая обеспечивает баланс между точностью, вычислительной сложностью и клинической применимостью. Таким образом, решена первая частная задача исследования.
Во второй главе представлено описание разработанных моделей и алгоритма обработки кардиоданных для принятия диагностических решений. В этой главе математически описано применение многофакторного подхода к улучшению интерпретируемости результатов анализа ЭКГ, который сочетает в себе метод обнаружения R-пиков на основе градиента, реализованный в программной среде №ишКй2, с фильтром верхних частот и методом автоматического удаления шума на основе вейлет-преобразования. В главе представлены ключевые этапы анализа данных, такие как получение сигнала, шумоподавление, сегментация, нормализация и извлечение признаков, которые критически важны для преобразования необработанных сигналов ЭКГ в формат, подходящий для моделей глубоких нейронных сетей. Также математически описана сверточная нейронная сеть для автоматизированного выявления аномалий в сигналах ЭКГ, способная изучать взаимосвязь между формой отдельных сокращений и контекстом ритма, используя морфологические признаков данных ЭКГ (амплитуды R-пиков, количество сердечных сокращений, ЯК-интервалы, среднее значение амплитуд R-пиков и
ЯЯ-интервалов) во время обучения. Кроме того, в этой главе описаны результаты, обеспечивающие репрезентацию первичного ведения пациентов. В главе решены вторая, третья и четвёртая частные научные задачи.
Глава третья описывает модели определения фаз дыхания и алгоритмические решения для аутентификации доступа, обеспечивающие защиту обработанных кардиоданных. Определение фаз дыхания основано на адаптации алгоритма распознавания голосовой активности для назначения количества выдохов и вдохов в качестве вторичных диагностических параметров, в то время как контроль доступа основан на самом сигнале электрокардиограммы. Это решение позволяет идентифицировать биометрические характеристики сигнала ЭКГ для повышения достоверности и доступности предлагаемой процедуры. Данная глава посвящена решению пятой и шестой частных научных задач.
Глава четвертая посвящена описанию экспериментального анализа и реализации программного пакета, созданного для системы поддержки принятия решений, которая автоматически обрабатывает кардиологические данные с целью классификации аномалий и предоставляет различные визуализации и отчеты о классификации с первичными рекомендациями по лечению для повышения интерпретируемости результатов классификации и содействия принятию своевременного диагностического решения.
В заключении представлены основные теоретические и практические результаты, полученные в ходе исследования, определены перспективы дальнейшей разработки темы.
В приложениях представлены вспомогательные материалы, поясняющие полученные результаты и их реализацию.
ГЛАВА 1. АНАЛИЗ ПОДХОДОВ К ПОСТРОЕНИЮ СИСТЕМ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЯ ПРИ УПРАВЛЕНИИ СОСТОЯНИЕМ СИСТЕМЫ ДИАГНОСТИКИ СЕРДЕЧНОСОСУДИСТЫХ ЗАБОЛЕВАНИЙ
1.1 Анализ информативности кардиологических данных, влияющих на принятие диагностических решений
Сердечно-сосудистые заболевания (ССЗ) являются основной причиной смерти во всем мире, а аритмии вносят значительный вклад в эту статистику. Отчет Всемирной федерации сердца 2023 года показывает, что ССЗ остаются ведущей причиной смерти во всем мире, с 20,5 миллионами смертей в 2022 году
[1]. В России ССЗ являются причиной около 55,7 % общей смертности, причем только ишемическая болезнь сердца является причиной почти 29,4 % смертей
[2]. На рисунке 1.1 показано количество смертей от заболеваний сердечнососудистой системы в разных регионах России [3], а на рисунке 1.2 представлена статистика по различным причинам смерти в Америке. В Ираке сердечные заболевания представляют собой значительную проблему для здоровья, и, по оценкам, они составляют около 42 % от общей смертности [3].
Высокая распространенность аритмий, таких как мерцательная аритмия и желудочковая тахикардия, подчеркивает важность раннего выявления и лечения [4] [5].В частности, мерцательная аритмия увеличивает риск инсульта в пять раз, если ее не лечить [6]. Внезапная остановка сердца является одной из основных причин смерти среди людей, страдающих многочисленными формами аритмии [7, 8]. Многие из этих аритмий начинаются с внезапных изменений временных интервалов между соседними ударами сердца. Раннее выявление и классификация аритмий для диагностики может спасти жизни и является одной из важных задач в мониторинге сердца [9].
С помощью носимого 24-часового ЭКГ-монитора можно записать до 100 тысяч сердечных сокращений, и кардиологам требуется много времени, чтобы проанализировать их. Способность быстро выявлять аритмию может привести к
своевременному вмешательству, снижающему заболеваемость и смертность, связанных с этими состояниями [12].
Рисунок 1.1 - Число смертей от сердечно-сосудистых заболеваний
Статистика причин смерти среди взрослого населения
США 2022 2023гг.
■ Сердечные заболевания ■ Рак
■ Не известно ■ Диабет
■ Болезнь Альцгеймера ■ Заболевания крови
■ Хронические респераторные заболевания ■ Грипп и пневмония
■ Инсульт ■ Несчастные случаи
■ Болезни почек
Рисунок 1.2 - Основная причина смерти в США в 2022 году
Таким образом, разработка эффективных систем автоматического выявления аномалий имеет решающее значение для улучшения результатов лечения пациентов, снижения затрат на здравоохранение, связанных с сердечно -сосудистыми заболеваниями, и помощи кардиологам [13,14].
Возможность использования данных моделей в качестве вспомогательных диагностических систем в Российской Федерации подробно описана в ГОСТ 59525 - 2021 [10].
Анализ функционирования ССС осуществлен с использованием источников [11,12-19, 20-25]
Одним из важнейших компонентов сердца является электрокардиограмма (ЭКГ) [26]. ЭКГ - это графическое изображение электрической активности сердца с течением времени. Этот сигнал необходим для диагностики различных сердечных заболеваний, включая аритмии, ишемию и инфаркт миокарда [27]. Форма ЭКГ состоит из нескольких основных компонентов:
- Зубец Р: представляет собой деполяризацию предсердий, указывающую на электрическую активацию предсердий.
- Комплекс QRS: отражает деполяризацию желудочков и обычно является наиболее заметной чертой ЭКГ. Он указывает на электрический импульс, проходящий через желудочки [28].
- Зубец Т: соответствует реполяризации желудочков, отмечая фазу восстановления желудочков после сокращения [29].
На рисунке 1.3 представлен один сердечный цикл сигнала ЭКГ, а в таблице 1.1 дано краткое описание компонентов сердечного цикла [30, 41].
Рисунок 1.3 - Структура сигнала электрокардиограммы
Исследования показали, что своевременное выявление аритмий может значительно снизить риск осложнений, таких как инсульт и сердечная недостаточность. Например, исследование [37] показало, что раннее выявление
мерцательной аритмии посредством непрерывного мониторинга ЭКГ может снизить частоту инсультов до 65 %. Кроме того, согласно систематическому обзору, [31] у пациентов с недиагностированной мерцательной аритмией значительно более высокий риск тромбоэмболических осложнений, что подчеркивает важную роль ЭКГ в профилактической кардиологии.
Таблица 1.1 - Компоненты сердечного цикла
Волна/Период Описание Продолжительность (секунды) Нормальные значения
Зубец P указывающую на сокращение предсердий. 0,08 - 0,10 Амплитуда: < 0,25 мВ
Интервал PR Время от начала зубца Р до начала комплекса QRS 0,12 - 0,20 Диапазон: 120 - 200 мс
ОЯЗ-комплекс Указывает на сокращение желудочков. 0,06 - 0,10 Продолжительность: < 0,12 с
Интервал QT Время от начала зубца Q до конца зубца Т; отражает 0,36 - 0,44 скорректированный QT < 0,44 с у мужчин и < 0,46 с у женщин
Зубец T Указывающую на восстановление желудочков после сокращения. 0,10 - 0,25 Амплитуда: < 0,5 мВ в отведениях от конечностей, < 1 мВ в прекардиальных отведениях
ЯК-интервал Время между последовательными Я-пиками Варьируется Нормальная частота сердечных сокращений: 60-100 ударов в минуту.
Продолжительность сердечного цикла Общее время одного полного сердечного сокращения ^ 0.8 В покое, обычно 60100 ударов в минуту
Существуют различные методы и методики анализа и интерпретации ЭКГ [32-35], но сложность сигнала ЭКГ также представляет уникальные проблемы в этих областях. Анализ сигнала ЭКГ имеет такие преимущества, как неинвазивность, экономическая эффективность и высокая диагностическая
точность [36]. Эти особенности делают информацию ЭКГ важной для постоянного мониторинга людей на предмет потенциальных аритмических расстройств. Несмотря на трудности обнаружения сигнала ЭКГ, а также чувствительность системы к ложным срабатываниям, в настоящее время доступны различные методы обнаружения определенных сигналов в форме волны ЭКГ [37, 45, 46].
Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Методики и алгоритмы обработки цифровых данных электрокардиографии и биоимпедансометрии для систем поддержки принятия решений2025 год, кандидат наук Демушкина Ксения Михайловна
Разработка цифрового двойника сердечно-сосудистой системы с регуляцией для поддержки принятия врачебных решений при диагностике и терапии кардиологических больных2022 год, кандидат наук Коробов Артём Андреевич
Интеллектуальная система поддержки принятия решений на основе ансамблевых методов машинного обучения для прогнозирования проблемных состояний2022 год, кандидат наук Фирюлина Мария Андреевна
Система стохастического мониторинга состояния и электрофизиологических характеристик сердца на основе энтропийно-параметрического анализа2017 год, кандидат наук Полосин, Виталий Германович
Методы машинного обучения по спектрам кардиологических данных для проблемно-ориентированных цифровых продуктов2025 год, кандидат наук Новиков Роман Сергеевич
Список литературы диссертационного исследования кандидат наук Аль-Хамами Омар Хашим Яхья, 2026 год
СПИСОК ЛИТЕРАТУРЫ
1. Lindstrom, M. Global burden of cardiovascular diseases and risk factors, 1990-2019: update from the GBD 2019 study / M. Lindstrom, N. DeCleene, H. Dorsey, V. Fuster, C. O. Johnson, K. E. LeGrand // Journal of the American college of cardiology. - 2022. - Vol. 80 (25). - pp. 2372-2425. [Электронный ресурс]. URL: https://www.jacc.org/doi/abs/10.1016/jjacc.2020.11.010 (дата обращения: 06.01.2025).
2. Зубко, А. В. Потери российского населения от предотвратимых причин сердечно-сосудистой смертности в периоды до и во время пандемии / А. В. Зубко, Т. П. Сабгайда, В. Г. Семёнова // Социальные аспекты здоровья населения. - 2023. - Т. 69, № 1. - С. 6.
3. More than half of U.S. adults don't know heart disease is leading cause of death, despite 100-year reign [Электронный ресурс] // American Heart Association. URL: http://newsroom.heart.org/news/more-than-half-of-u-s-adults-dont-know-heart-disease-is-leading-cause-of-death-despite- 100-year-reign (дата обращения: 06.01.2025).
4. Никифоров, В. С. Инструментальные методы стратификации риска внезапной сердечной смерти / В. С. Никифоров, С. Л. Гришаев // Внезапная сердечная смерть. — М.: ЛитРес, - 2022. — С. 99-138.
5. Deprospero, D. J. Visual representations of canine cardiac arrhythmias with Lorenz Poincare plots / D. J. Deprospero, D. B. Adin // American Journal of Veterinary Research. - 2020. - Vol. 81 (9). - pp. 720-731.
6. Fr^k, W. Pathophysiology of cardiovascular diseases: new insights into molecular mechanisms of atherosclerosis, arterial hypertension, and coronary artery disease / W. Fr^k, A. Wojtasinska, W. Lisinska, E. Mlynarska, B. Franczyk, J. Rysz // Biomedicines. - 2022. - Vol. 10 (8) 1938.DOI 10.3390/biomedicines10081938.
7. Mullens, W. Optimized implementation of cardiac resynchronization therapy: a call for action for referral and optimization of care / W. Mullens, A. Auricchio, P. Martens, K. Witte, M. R. Cowie // The European Society of Cardiology // EP Europace. - 2021. - Vol. 23 (8). - pp. 1324-1342.
8. Гнилицкая, В. Б. Внезапная сердечная смерть и лекарственно-индуцированный синдром удлиненного интервала qt (лекция для врачей) / В. Б. Гнилицкая, А. Л. Христуленко, О. А. Приколота, А. В. Приколота, Н. С. Марушкин // Медико-социальные проблемы семьи. - 2024. - Т. 28, № 4. - С. 2332.
9. Vinod, D. N. Arrhythmia Detection and Classification with Hybrid Deep Learning with Pity Beetle Optimization Model / D. N. Vinod // 2024 Second International Conference on Advances in Information Technology (ICAIT). IEEE. -2024. - Vol. 1. - pp. 1-7.
10. ГОСТ Р 59525-2021 Информатизация здоровья. Интеллектуальные методы обработки медицинских данных. Основные положения - docs.cntd.ru [Электронный ресурс]. URL: https://docs.cntd.ru/document/1200179654 (дата обращения: 23.11.2025).
11. Buckberg, G. D. What is the heart? Anatomy, function, pathophysiology, and misconceptions / G. D. Buckberg, N. C. Nanda, C. Nguyen, M. J. Kocica // Journal of cardiovascular development and disease. MDPI. - 2018. - Vol. 5 (2) 33. DOI 10.3390/jcdd5020033.
12. Kalra, A. A. Critical review of electrocardiography measurement systems and technology / A. A. Kalra, A. Lowe, A. Al-Jumaily // Measurement Science and Technology. IOP Publishing. - 2018. - Vol. 30 (1) 012001. DOI 10.1088/1361-6501/aaef32.
13. Merdjanovska, E. B. Comprehensive survey of computational ECG analysis: Databases, methods and applications / E. Merdjanovska, A. Rashkovska // Expert Systems with Applications. Elsevier. - 2022. - Vol. 203 117206. DOI 10.1016/j.eswa.2022.117206.
14. Merone, M. L. ECG databases for biometric systems: A systematic review / M. L. Merone, P. Soda, M. Sansone, C. Sansone // Expert Systems with Applications. Elsevier. - 2017. - Vol. 67. - pp. 189-202.
15. Pereira, T. M. A Review on Intelligent Systems for ECG Analysis: from Flexible Sensing Technology to Machine Learning / T. M. Pereira, R. Sebastiao, R. C.
Concei?ao, V. Sencadas // IEEE Journal of Biomedical and Health Informatics. IEEE. - 2024. - Vol 29(5). - pp. 3398-3413. DOI 10.1109/JBHI.2024.3353488.
16. Iaizzo, P. A. General features of the cardiovascular system / P. A. Iaizzo // Handbook of Cardiac Anatomy, Physiology, and Devices. Springer. - 2015. - pp. 312.
17. Pittman, R. N. The circulatory system and oxygen transport / R. N. Pittman // Regulation of Tissue Oxygenation. Morgan & Claypool Life Sciences. -2011. Chapter 2. pp. 11-32. DOI 10.4199/C00030ED1V01Y201103ISP017.
18. Obidovna, D. Z. Physical activity and its impact on human health and longevity / D. Z. Obidovna, D. S. Sulaymonovich // Достижения науки и образования. - ООО «Олимп», - 2022. - Vol. 2 (82). - pp. 120-126.
19. Pérez-Riera, A. R. Current aspects of the basic concepts of the electrophysiology of the sinoatrial node / A. R. Pérez-Riera, R. Barbosa-Barros, R. Daminello-Raimundo, L. C. de Abreu // Journal of Electrocardiology. Elsevier. -2019. - Vol. 57. - pp. 112-118.
20. Ansari, Y. Deep learning for ECG Arrhythmia detection and classification: an overview of progress for period 2017-2023 / Y Ansari, O. Mourad, K. Qaraqe, E. Serpedin // Front. Physiol. Frontiers. - 2023. - Vol. 14 1246746. DOI 10.3389/fphys.2023.1246746.
21. Marieb, E. Human anatomy & phsiology / E. Marieb, K. Hoehn // Pearson Education. - 2018. - pp. 590-591.
22. Shen M. J. Neural activity and atrial tachyarrhythmias / M. C. Fishbein, L. S. Chen, S.F. Lin, P.S. Chen // Elsevier Health Sciences. - 2017. - pp. 375-386.
23. Горькавая, А. Ю. Анатомия и физиология системы кровообращения / А. Ю. Горькавая, Е. О. Алексеева, А. А. Дей, Т. Н. Климкина // - Владивосток МГУ им. адм. Г. И. Невельского, 2021. - 83 с.
24. Cabo, C. Cardiac Muscle and Electrical Activity Vortex shedding as a precursor of turbulent electrical activity in cardiac muscle / C. Cabo, A. M. Pertsov, J. M. Davidenko, W. T. Baxter, R. A. Gray, J. Jalife // Biophysical journal. - 1996. -Vol. 70 (3). - pp. 1105-1111.
25. Yasmin, F. Artificial intelligence in the diagnosis and detection of heart failure: the past, present, and future / F. Yasmin, S. Shah, A. Naeem, S. Shujauddin, A. Jabeen // Reviews in cardiovascu lar medicine. - 2021. - Vol. 22 (4). - pp. 10951113.
26. McKinley, P. S. The impact of menstrual cycle phase on cardiac autonomic regulation / P. S. McKinley, A. R. King, P. A. Shapiro, I. Slavov, Y Fang, I. S. Chen // Psychophysiology. - 2009. - Vol. 46 (4). - pp. 904-911.
27. Mc Jeon, S. H. Pulse Wave Variation during the Menstrual Cycle in Women with Menstrual Pain / S. H. Mc Jeon, K. K. Kim, I. S. Lee, Y. T. Lee, G. C. Kim, G. Y. Chi // Biomed Res Int. - 2016. - Vol. 20 1083208. DOI 10.1155/2016/1083208.
28. Chan-Dewar, F. The cardiac cycle / F. Chan-Dewar // Anaesthesia & Intensive Care Medicine. - 2012. - Vol. 13 (8). - pp. 391-396.
29. Yu, C. A method for automatic identification of reliable heart rates calculated from ECG and PPG waveforms / C. Yu, Z. Liu, T. McKenna, A. T. Reisner, J. Reifman // Journal of the American Medical Informatics Association. - 2006. - Vol. 13 (3). - pp. 309-320.
30. Shenasa, M. The ECG Handbook of Contemporary Challenges / M. Shenasa, M. E. Josephson // Cardiotext Publishing. - 2015. - Vol. 38(8) 1025. DOI 10.1111/pace.12669.
31. Baig, S. Ventricular arrhythmia and sudden cardiac death in Fabry disease: a systematic review of risk factors in clinical practice / S. Baig, N. C. Edward, D. Kotecha, B. Liu, S. Nordin, R. Kozor // EP Europace. Oxford University Press. -2018. - Vol. 20, № FI2 - pp. 153-161.
32. Merdjanovska, E. J. Comprehensive survey of computational ECG analysis: Databases, methods and applications / E. J. Merdjanovska, A. Rashkovska // Expert Systems with Applications. Elsevier. - 2022. - Vol. 203. - pp. 117-206.
33. Gupta, V. A. A critical review of feature extraction techniques for ECG signal analysis / V. A. Gupta, M. Mittal, V. Mittal, N. K. Saxena // Journal of The
Institution of Engineers (India): Series B. Springer. - 2021. - Vol. 102 (5). - pp. 1049-1060.
34. Гасанова, В. А. Автоматизированная персонализированная система мониторинга аритмии / В. А. Гасанова, А. В. Пушкарева // Измерение. Мониторинг. Управление. Контроль. - 2024. - № 3 (49). - С. 81-87.
35. Tripathi, P. M. A review on computational methods for denoising and detecting ECG signals to detect cardiovascular diseases / P. M. Tripathi, A. Kumar, R. Komaragiri, M. Kumar // Archives of Computational Methods in Engineering. Springer. - 2022. - Vol. 29 (3). - pp. 1875-1914.
36. Rafie, N. A. ECG interpretation: clinical relevance, challenges, and advances / N. A. Rafie, A. H. Kashou, P. A. Noseworthy // Hearts. MDPI. - 2021. -Vol. 2 (4). - pp. 505-513.
37. Ardeti V. A. An overview on state-of-the-art electrocardiogram signal processing methods: Traditional to Al-based approaches / V. A. Ardeti, V. R. Kolluru, G. T. Varghese, R. K. Patjoshi // Expert Systems with Applications. Elsevier. - 2023.
- Vol. 217 119561. DOI 10.1016/j.eswa.2023.119561.
38. Hepler, J. R. G proteins / J. R. Hepler, A. G. Gilman // Trends in biochemical sciences. - 1992. - Vol. 17 (10). - pp. 383-387.
39. Dathe, H. Completing the Cabrera Circle: deriving adaptable leads from ECG limb leads by combining constraints with a correction factor / H. Dathe, D. Krefting, N. Spicher // Physiological measurement. - 2023. - Vol. 44 (10) 105005. DOI 10.1088/1361-6579/acf862.
40. Rawshani, A. The ECG leads: Electrodes, limb leads, chest (precordial) leads and the 12-Lead ECG / A. Rawshani, A. Rawshani // Cardiovascular Education.
- 2023. Available from: ecgwaves.com.
41. Rappel, W. J. The physics of heart rhythm disorders / W. J. Rappel // Physics reports. - 2022. - Vol. 978. - pp. 1-45.
42. DeProspero, D. J. Visual representations of canine cardiac arrhythmias with Lorenz (Poincare) plots / D. J. DeProspero, D. B. Adin // American Journal of
Veterinary Research. Schaumburg, IL, USA: American Veterinary Medical Association. - 2020. - Vol. 81 (9). - pp. 720-731.
43. Ostropolets, A. V. Metformin Is Associated with a Lower Risk of Atrial Fibrillation and Ventricular Arrhythmias Compared with Sulfonylureas: An Observational Study / A. V. Ostropolets, P. A. Elias, M. V. Reyes, E. Y. Wan, U. B. Pajvani, G. Hripcsak, J. P. Morrow // Lippincott Williams & WilkinsHagerstown. -2021. - Vol. 14 (3) e009115. DOI 10.1161/CIRCEP.120.009115
44. Clifford, G. D. AF classification from a short single lead ECG recording: The PhysioNet-computing in cardiology challenge 2017 / G. D. Clifford, C. Liu, B. Moody // 2017 computing in cardiology (CinC). - IEEE. - 2017. - pp. 1-4.
45. An open access database for evaluating the algorithms of electrocardiogram rhythm and morphology abnormality detection / F. Liu, C. Liu, L. Zhao, X. Zhang, X. Wu, X. Xu // Journal of Medical Imaging and Health Informatics. - 2018. - Vol. 8 (7). - pp. 1368-1373.
46. Tihonenko, V. St.-Petersburg Institute of Cardiological Technics 12-lea d arrhythmia database / V. Tihonenko, A. Khaustov, S. Ivanov, A. Rivin // Circulation-Electronic. - 2000. - Vol. 101 (23). - pp. 215-220.
47. Goldberger, A. L. PhysioBank, PhysioToolkit, and PhysioNet: components of a new research resource for complex physiologic signals / A. L. Goldberger, L. A. Amaral, L. Glass, J. M. Hausdorff, P. C. Ivanov, R. G. Mark, H. E. Stanley // Circulation. - 2000. - Vol. 101 (23). - pp. 215-220.
48. Wagner, P. PTB-XL, a large publicly available electrocardiography dataset / P. Wagner, N. Strodthoff, R. D. Bousseljot, D. Kreiseler, F. I. Lunze, W. Samek, T. Schaeffter // Scientific data. - 2020. - Vol. 7 (1). - pp. 1-15.
49. Alday, E. A. Classification of 12-lead ecgs: the physionet-computing in cardiology challenge 2020 / E. A. P. Alday, A. Gu, A. J. Shah, C. Robichaux, A. K. I. Wong, C. Liu, M. A. Reyna // Physiological measurement. - 2020. - Vol. 41 (12) 124003. DOI 10.1088/1361-6579/abc960.
50. Moody, G. B. The impact of the MIT-BIH arrhythmia database / G. B. Moody, R. G. Mark // IEEE engineering in medicine and biology magazine. - 2001. -Vol. 20 (3). - pp. 45-50.
51. Sun, R. Congenital heart disease: causes, diagnosis, symptoms, and treatments / R. Sun, M. Liu, L. Lu, Y. Zheng, P. Zhang // Cell biochemistry and biophysics. - 2015. - Vol. 72 (3). - pp. 857-860.
52. Celermajer, D. S. Cardiovascular disease in the developing world: prevalences, patterns, and the potential of early disease detection / D. S. Celermajer, C. K. Chow, E. Marijon, N. M. Anstey, K. S. Woo // Journal of the American College of Cardiology. - 2012. - Vol. 60 (14). - pp. 1207-1216.
53. Henderson, A. Coronary heart disease: overview / A. Henderson // The Lancet. - 1996. - Vol. 348. - pp. 1-4.
54. Park, J. Study on the use of standard 12-lead ECG data for rhythm-type ECG classification problems / J. Park, J. An, J. Kim, S. Jung, Y. Gil, Y. Jang, I. Y. Oh // Computer Methods and Programs in Biomedicine. - 2022. - Vol. 214 106521. DOI: 10.1016/j.cmpb.2021.106521.
55. Comparison of continuous ECG monitoring by wearable patch device and conventional telemonitoring device / W. Choi, S. H. Kim, W. Lee, S. H. Kang, C. H. Yoon, T. J. Youn, I. H. Chae // Journal of Korean medical science. - 2020. Vol. 35 (44) e363. DOI: 10.3346/jkms.2020.35.e363.
56. Galli, A. Holter monitoring and loop recorders: from research to clinical practice / A. Galli, F. Ambrosini, F. Lombardi // Arrhythmia & electrophysiology review. - 2016. - Vol. 5 (2). - pp. 136-143. DOI: 10.15420/aer.2016.17.2.
57. Predictive accuracy of electrocardiographic monitoring of patients with syncope in the emergency department: the SyMoNE multicenter study / M. Solbiati, F. Dipaola, P. Villa, S. Seghezzi, I. Casagranda, F. Rabajoli, G. Costantino // Academic Emergency Medicine. - 2020. - Vol. 27 (1). - pp. 15-23.
58. Pourmohammadi, S. S. Stress detection using ECG and EMG signals: A comprehensive study / S. S. Pourmohammadi, A. Maleki // Computer methods and
programs in biomedicine. - 2020. - Vol. 193 105482. DOI 10.1016/j.cmpb.2020.105482.
59. Bisignani, A. E. Implantable loop recorder in clinical practice / A. E. Bisignani // Journal of arrhythmia. Wiley Online Library. - 2019. - Vol. 35 (1). - pp. 25-32.
60. Life's essential 8: updating and enhancing the American Heart Association's construct of cardiovascular health: a presidential advisory from the American Heart Association / D. M. Lloyd-Jones, N. B. Allen, C. A. Anderson, T. Black, L. C. Brewer, R. E. Foraker // Circulation. - 2022. - Vol. 146 (5). - pp. 18-43.
61. Cardiovascular Health Metrics of 87,160 Couples: Analysis of a Nationwide Epidemiological Database / H. Kaneko, H. Itoh, H. Yotsumoto, H. Kiriyama, T. Kamon, K. Fujiu, I. Komuro // Journal of Atherosclerosis and Thrombosis. Japan Atherosclerosis Society. - 2021. - Vol. 28 (5). - pp. 535-543.
62. Ridker, P. M. Inflammation, cholesterol, lipoprotein (a) and 30-year cardiovascular outcomes in women / P. M. Ridker, M. V. Moorthy, N. R. Cook // The New England journal of medicine. - 2024. - Vol. 391 (22). - pp. 2087-2098. DOI: 10.1056/NEJMoa2405144.
63. Poredos, P. Ankle-brachial index: Diagnostic tool of peripheral arterial disease and predictor of cardiovascular risk—An update of current knowledge / P. Poredos, A. Stanek, M. Catalano, V. Boc // Angiology. - 2025. - Vol. 76 (10). - pp. 937-945.
64. World Heart Federation guidelines for the echocardiographic diagnosis of rheumatic heart disease / J. Rwebembera, J. Marangou, J. C. Mwita, A. O. Mocumbi, C. Mota, E. Okello, B. Remenyi // Nature Reviews Cardiology. - 2024. - Vol. 21 (4). - pp. 250-263.
65. Wang, S. Myocardial blood flow quantification using stress cardiac magnetic resonance improves detection of coronary artery disease / S. Wang, P. Kim, H. Wang // Cardiovascular Imaging. - 2024. - Vol. 17 (12). - pp. 1428-1441.
66. Chen, W. Deep learning methods for heart sounds classification: A systematic review / W. Chen, Q. Sun, X. Chen // Entropy. - 2021. - Vol. 23 (6) 667. DOI: 10.3390/e23060667.
67. Ardeti, V. A. An overview on state-of-the-art electrocardiogram signal processing methods: Traditional to AI-based approaches / V. A. Ardeti, V. R. Kolluru, G. T. Varghese // Expert Systems with Applications. - 2023. - Vol. 217 119561. DOI 10.1016/j.eswa.2023.119561.
68. Petmezas, G. State-of-the-art deep learning methods on electrocardiogram data: systematic review / G. Petmezas, L. Stefanopoulos, V. Kilintzis // JMIR medical informatics. - 2022. - Vol. 10 (8) e38454. DOI 10.2196/38454.
69. Shi, F. A review of noise removal techniques in ECG signals / F. Shi // 2022 IEEE Conference on Telecommunications, Optics and Computer Science (TOCS). IEEE. - 2022. - pp. 237-240.
70. Goldberger, A. L., Goldberger's Clinical Electrocardiography-E-Book: A Simplified Approach / A. L. Goldberger, Z. D. Goldberger, A. Shvilkin // Elsevier Health Sciences. - 2023. - pp. 291-316. DOI 10.1016/b0-323-04038-1/50027-5.
71. Yarmohammadi, H. Prolonged PR interval and incidence of atrial fibrillation, heart failure admissions, and mortality in patients with implanted cardiac devices: a real-world survey / H. Yarmohammadi, E. Y Wan, A. Biviano // Heart Rhythm O2. - 2023. - Vol. 4 (3). - pp. 171-179.
72. Cassone, D. Innovative analysis of ECG in patients with Brugada Syndrome: dissertation / D. Cassone// Politecnico di Torino. - 2020. - pp.1-60. DOI 10.17816/dd71885-40115.
73. Caturano, A. Brugada syndrome and COVID-19 vaccines / A. Caturano, P. C. Pafundi, F. C. Sasso // EP Europace. - 2021. - Vol. 23 (12). - pp. 1871-1872.
74. Bergmark, B. A. Acute coronary syndromes / B. A. Bergmark, N. Mathenge, P. A. Merlini // The Lancet. - 2022. - Vol. 399 (10332). - pp. 1347-1358.
75. Janzen, M. L. Management of inherited arrhythmia syndromes: a HiRO consensus handbook on process of care / M. L. Janzen, B. Davies, Z. W. Laksman // CJC open. - 2023. - Vol. 5 (4). - pp. 268-284.
76. Зернов, В. А. Диагностика функций сердечнососудистой системы и оценка параметров гемодинамики на основе фазового анализа сердечного цикла / В. А. Зернов, О. К. Воронова, М. Ю. Руденко // Информационные процессы, системы и технологии. - 2022. Т. 1, № 4- С. 32-40.
77. Лосик, Д. В. Результаты ретроспективного анализа выбора терапии при помощи сервиса поддержки принятия врачебных решений у пациентов с артериальной гипертензией и фибрилляцией предсердий (интеллект) / Д. В. Лосик, С. Н. Козлова, Ю. С. Кривошеев // Российский кардиологический журнал. - 2021. - № 4. - С. 54-60.
78. Фролов, С. В. Система поддержки принятия врачебных решений в кардиологии на основе цифрового двойника сердечно-сосудистой системы / С. В. Фролов, А. А. Коробов, А. Н. Ветров // Моделирование, оптимизация и информационные технологии. - 2023. — Т. 11, № 1 (30) 15. DOI 10.14341/cbai-2023-46.
79. Демушкина, К. М. Методики и алгоритмы обработки цифровых данных электрокардиографии и биоимпедансометрии для систем поддержки принятия решений : диссертация / К. М. Демушкина. - Пенза : Пензенский государственный университет. - 2025. - 159 с.
80. Anbalagan, T. Analysis of various techniques for ECG signal in healthcare, past, present, and future / T. Anbalagan, M. K. Nath, D. Vijayalakshmi // Biomedical Engineering Advances. - 2023. - Vol. 6 100089. DOI 10.1016/j.bea.2023.100089.
81. Shanmugapriya, T. Effective heart disease prediction using machine learning algorithm with cardiovascular health monitoring System / T. Shanmugapriya, R. Devipriya, M. Siva Sangari // International Conference on Soft Computing and Pattern Recognition. - Cham : Springer Nature Switzerland. - 2023. - pp. 250-260.
82. Ramesh, T. R. Predictive analysis of heart diseases with machine learning approaches / T. R. Ramesh, U. K. Lilhore, M. Poongodi // Malaysian Journal of Computer Science. - 2022. - pp. 132-148.
83. Al-Karaki, J. Predicting Coronary Heart Disease Using a Suite of Machine Learning Models / J. Al-Karaki, P. Ilono, S. Baweja // Computers and Society. -2024. arXiv:2409.14231. - pp. 1-14.
84. Turnip A. Classification of ecg signals using decision trees and linear discriminant analysis / A. Turnip, D. Hidayat, J. G. Hamonangan // 2024 IEEE International Conference on Artificial Intelligence and Mechatronics Systems (AIMS). - IEEE. - 2024. - pp. 1-6.
85. Давыдов, А. В. Обнаружение признаков болезни сердца с использованием методов машинного обучения / А. В. Давыдов, А. К. Жусупова, О. С. Салыкова // Вестник науки. - 2022. - Т. 2, № 5 (50). - С. 78-86.
86. Yahya, O. H. Deep Learning Approach for Detecting Cardiovascular Arrhythmias in Seven Lead ECG Signal from Holter / O. H. Yahya, V. V. Alekseev, D. V. Lakomov // International Journal of Online & Biomedical Engineering. - 2023. - Vol. 19(14). - pp. 101-118. DOI 10.3991/ijoe.v19i14.43477.
87. Ермоленко, Т. В. Классификация аномалий сердцебиения с помощью глубокого обучения / Т. В. Ермоленко, Д. В. Ролик // Проблемы искусственного интеллекта. - 2022. - № 1 (24). - С. 40-53.
88. Долгих, Л. А. Диагностика заболеваний по электрокардиограмме / Л. А. Долгих, М. Г. Мясникова, С. В. Ионов // Проблемы автоматизации и управления в технических системах. - 2021. - С. 168-169
89. Киладзе, М. Р. Предварительная обработка сигналов для мультимодальной классификации 12-канальных сигналов электрокардиограмм / М. Р. Киладзе // Инженерный вестник Дона. - 2024. - № 9 (117). - С. 41-55.
90. Pustozerov, E. Automated heart rate detection in seismocardiograms using electrocardiogram-based algorithms / E. Pustozerov, U. Kulau, U. V. Albrecht // Bioengineering. - 2024. Т. - Vol. 11(6) 596. DOI 10.3390/bioengineering11060596.
91. Оконешникова, Э. Ф. Модификация алгоритма извлечения признаков электрокардиограммы при диагностике аритмии на основе свёрточной нейронной сети : магистерская диссертация : 01.04.02 / Э. Ф. Оконешникова. -Томск, 2023. - 68 с.
92. Atal, D. K. Arrhythmia classification with ECG signals based on the optimization-enabled deep convolutional neural network / D. K. Atal, M. Singh // Computer Methods and Programs in Biomedicine. - 2020. - Vol. 196 105607. DOI 10.1016/j.cmpb.2020.105607.
93. Немирко, А. П. Распознавание опасных аритмий по скалограммам ЭКГ / А. П. Немирко, А. С. Ба Махел, Л. А. Манило // Компьютерная оптика. -2024. - Т. 48, № 1. - С. 149-156. - DOI: 10.18287/2412-6179-C0-1354.
94. Солиман, Х. Классификация аритмий с использованием предварительно обученной модели глубокого обучения с бинарными изображениями сегментированной ЭКГ / Х. Солиман, С. Сали // Известия высших учебных заведений России. Радиоэлектроника. - 2023. - Т. 26, № 2. - С. 120-127. - DOI: 10.32603/1993-8985-2023-26-2-120-127.
95. Родионов, Д. М. Диагностика синусового ритма и мерцательной аритмии средствами искусственного интеллекта / Д. М. Родионов, Д. А. Карчков, В. А. Москаленко, А. В. Никольский, Г. В. Осипов, Н. Ю. Золотых // Проблемы информатики. - 2022. - Т. 1, № 54. - С. 77-88.
96. Юнусова, О. А. Разработка информационной технологии поддержки принятия врачебного решения на основе анализа данных электрокардиограммы : выпускная бакалаврская работа: 02.03.02 / О. А. Юнусова. - Томск, 2020. - 54 с.
97. Андреев, П. К. Диагностика гипертрофий левых отделов сердца с помощью глубокой нейронной сети / П. К. Андреев, В. В. Ананьев, В. А. Макаров, Е. А. Карпулевич, Д. Ю. Турдаков // Труды Института системного программирования РАН. - 2020. - Т. 32, вып. 4. - С. 141-154. - DOI: 10.15514/ISPRAS-2020-32(4)-10.
98. Онбыш, Т. Е. Модель искусственного интеллекта с позиции доказательной медицины в определении тактики при подозрении на ишемическую болезнь сердца / Т. Е. Онбыш, А. Н. Костылев, М. И. Веселенко, С. Н. Линченко, С. А. Костылева // Международный научно-исследовательский журнал. - 2025. - № 6 (156). - С. 17-25.
99. Завойских, М. В. Анализ морфологии сигнала электрокардиограммы на основе свёрточной нейронной сети / М. В. Завойских, А. В. Коробейников, А. С. Менлитдинов, В. В. Люминарский, Ю. Л. Кузелин // Сборник трудов ИТНТ-2019. - 2019. - С. 21-24.
100. Ali, M. A. ECG signal denoising using discrete wavelet transform / M. A. Ali, S. E. Ali, A. H. Khorsheed // J of Duhok Univ. - 2023. - Vol. 26 (2). - pp. 450463.
101. Fariha, M. A. Z. Analysis of Pan-Tompkins algorithm performance with noisy ECG signals / M. A. Z. Fariha, R. Ikeura, S. Hayakawa // Journal of Physics: Conference Series. - IOP Publishing. -2020. - Vol. 1532 (1) 012022. DOI 10.1088/1742-6596/1532/1/012022.
102. Nayak, C. An efficient and robust digital fractional order differentiator based ECG pre-processor design for QRS detection / C. Nayak, S. K. Saha, R. Kar // IEEE transactions on biomedical circuits and systems. - 2019. - Vol. 13 (4). - pp. 682-696.
103. Makowski, D. NeuroKit2: A Python toolbox for neurophysiological signal processing / D. Makowski, T. Pham, Z. J. Lau // Behavior research methods. - 2021. - Vol. 53 (4). - pp. 1689-1696.
104. Lewandowski, M. RR interval analysis based on a newly developed PC program as a predictor of interventions in implantable cardioverter-defibrillator patients / M. Lewandowski, I. Kowalik // Advances in Clinical and Experimental Medicine. - 2021. - Vol. 30 (3). - pp. 279-288.
105. Manjunath, C. A Gated Recurrent Unit Based Continual Normalization Model for Arrythmia Classification Using ECG Signals / C. Manjunath, K. L. Hemalatha, V. Sandya // 2023 International Conference on Ambient Intelligence, Knowledge Informatics and Industrial Electronics (AIKIIE). - IEEE. - 2023. - pp. 1-5.
106. Pradipta, G. A. SMOTE for handling imbalanced data problem: A review / G. A. Pradipta, R. Wardoyo, A. Musdholifah // 2021 sixth international conference on informatics and computing (ICIC). - IEEE. - 2021. - С. 1-8.
107. Qazi, E. U. A one-dimensional convolutional neural network (1D-CNN) based deep learning system for network intrusion detection / E. U. H. Qazi, A. Almorjan, T. Zia // Applied Sciences. - 2022. - Vol. 12 (16) 7986. DOI 10.3390/app12167986.
108. Olimov, B. Weight initialization based-rectified linear unit activation function to improve the performance of a convolutional neural network model / B. Olimov, S. Karshiev, E. Jang // Concurrency and Computation: Practice and Experience. - 2021. - Vol. 33 (22) e6143. DOI 10.1002/cpe.6143.
109. Ghosh, J. ADAM optimizer and CATEGORICAL CROSSENTROPY loss function-based CNN method for diagnosing colorectal Cancer / J. Ghosh, S. Gupta // 2023 international conference on computational intelligence and sustainable engineering solutions (CISES). - IEEE. - 2023. - pp. 470-474.
110. Virani, S. S. 2023 AHA/ACC/ACCP/ASPC/NLA/PCNA guideline for the management of patients with chronic coronary disease: a report of the American Heart Association-American College of Cardiology Joint Committee on Clinical Practice Guidelines / S. S. Virani, L. K. Newby, S. V. Arnold // Journal of the American College of Cardiology. - 2023. - Vol. 82 (9). - pp. 833-955.
111. Adams, H. P. Guidelines for the Early Management of Adults With Ischemic Stroke: A Guideline From the American Heart Association / H. P. Adams, G. Del Zoppo, M. J. Alberts // Stroke. - 2007. - Vol. 38 (5). - pp. 1655-1711.
112. Marx, N. 2023 ESC Guidelines for the management of cardiovascular disease in patients with diabetes: Developed by the task force on the management of cardiovascular disease in patients with diabetes of the European Society of Cardiology (ESC) / N. Marx // European Heart Journal. - 2023. - Vol. 44 (39). - pp. 4043-4140.
113. Piepoli, M. F. 2016 European Guidelines on cardiovascular disease prevention in clinical practice / M. F. Piepoli, A. W. Hoes, S. Agewall // Polish Heart Journal (Kardiologia Polska). - 2016. - Vol. 74 (9). - pp. 821-936.
114. Thompson, A. Guideline for Perioperative Cardiovascular Management for Noncardiac Surgery: A Report of the American College of Cardiology/ A.
Thompson // American Heart Association Joint Committee on Clinical Practice Guidelines. Circulation. Lippincott Williams & WilkinsHagerstown. - 2024. - Vol. 84 (19). - pp. 1869-1969.
115. Members, W. C. 2022 ACC/AHA guideline for the diagnosis and management of aortic disease: a report of the American heart association/American college of cardiology joint committee on clinical practice guidelines / W. C. Members, E. M. Isselbacher, O. Preventza // Journal of the American College of Cardiology. - 2022. - Vol. 80 (24). - pp. 223-393.
116. Heidenreich, P. A. 2022 AHA/ACC/HFSA Guideline for the Management of Heart Failure: A Report of the American College of Cardiology/ P. A. Heidenreich, A. Thompson // American Heart Association Joint Committee on Clinical Practice Guidelines. Circulation. - 2022. - Vol. 145 (18). - pp. 895-1032.
117. Gao, Q. Applications of transistor-based biochemical sensors / Q. Gao // Biosensors. MDPI. - 2023. - Vol. 13 (4) 469. DOI 10.3390/bios13040469.
118. Sfayyih, A. H. A review on lung disease recognition by acoustic signal analysis with deep learning networks / A. H. Sfayyih, N. Sulaiman, A. H. Sabry // Journal of big Data. Springer. - 2023. - Vol. 10 (1) 101. DOI 10.1186/s40537-023-00778-w.
119. Montazeri Ghahjaverestan, N. Automatic respiratory phase identification using tracheal sounds and movements during sleep / N. Montazeri Ghahjaverestan, M. Kabir, S. Saha // Annals of Biomedical Engineering. - 2021. - Vol. 49 (6). - pp. 1521-1533.
120. Manolis, A. A. The role of the autonomic nervous system in cardiac arrhythmias: the neuro-cardiac axis, more foe than friend / A. A. Manolis, T. A. Manolis, E. J. Apostolopoulos // Trends in cardiovascular medicine. Elsevier. - 2021. - Vol. 31 (5). - pp. 290-302.
121. Obstructive sleep apnea and cardiovascular disease: a scientific statement from the American Heart Association / Y Yeghiazarians, H. Jneid, J.R. Tietjens, S. Redline, D.L. Brown, N. El-Sherif, R. Mehra, B. Bozkurt, C.E. Ndumele, V.K.
Somers // Circulation. Lippincott Williams & Wilkins Hagerstown. - 2021. - Vol. 144 (3). - pp. 56-67
122. Пальман А. Д., Желудочковые нарушения ритма сердца у пациента с синдромом обструктивного апноэ сна и их эффективное немедикаментозное лечение / А. Д. Пальман, А. С. Аксельрод // Альманах клинической медицины. -2021. - Т. 49. - № 2. - С. 165-170.
123. Montazeri Ghahjaverestan, N. Respiratory motion and airflow estimation during sleep using tracheal movement and sound / N. Montazeri Ghahjaverestan, W. Fan, C. Aguiar, J. Yu, T.D. Bradley // Nature and Science of Sleep. - 2022. - pp. 1213-1223.
124. Souza, G. M. Neuromedin B-expressing neurons in the retrotrapezoid nucleus regulate respiratory homeostasis and promote stable breathing in adult mice / G. M. Souza, D. S. Stornetta, Y. Shi, E. Lim // Journal of Neuroscience. - 2023. -Vol. 43 (30). - pp. 5501-5520.
125. Dempsey, J. A. Control of breathing / J. A. Dempsey, J. F. Welch // Seminars in respiratory and critical care medicine. Thieme Medical Publishers, Inc. -2023. - Vol. 44 (05). - pp. 627-649.
126. Miralbell Bes, X. Advancing sleep monitoring: Development of a non-invasive bed-based sensor system for real-time vital sign extraction using strain gauges : Master's Thesis / Xavi Miralbell Bes. - Barcelona : Universitat Politecnica de Catalunya, 2023. - 74 p.
127. Boiko, A. Contactless technologies, sensors, and systems for cardiac and respiratory measurement during sleep: a systematic review / A. Boiko, N. Martinez Madrid, R. Seepold // Sensors. - 2023. - Vol. 23 (11) 5038. DOI 10.3390/s23115038.
129. Wang, Z. Sleep Staging Using Noncontact-Measured Vital Signs / Z. Wang, S. Zha, B. Yu, P. Chen, Z. Pang // Journal of Healthcare Engineering. Wiley Online Library, - 2022. - Vol. 2022 (1) 2016598. DOI 10.1155/2022/2016598.
130. Accurate contactless sleep apnea detection framework with signal processing and machine learning methods / Z. Zhuang, F. Wang, X. Yang, L. Zhang, C.H. Fu, J. Xu, C. Li, H. Hong// Methods. - 2022. - Vol. 205. - pp. 167-178.
131. Hong, J. End-to-end sleep staging using nocturnal sounds from microphone chips for mobile devices / J. Hong, H.H. Tran, J. Jung // Nature and Science of Sleep. - 2022. - pp. 1187-1201.
132. Yahya, O. Automatic detection and classification of acoustic breathing cycles / O. Yahya, M. Faezipour // Proceedings of the 2014 Zone 1 Conference of the American Society for Engineering Education. - IEEE. - 2014. - С. 1-5.
133. Sharma, M. A comprehensive empirical review of modern voice activity detection approaches for movies and TV shows / M. Sharma, S. Joshi, T. Chatterjee, R. Hamid // Neurocomputing. - 2022. - Vol. 494. - pp. 116-131.
134. Родионов, Д. М. Диагностика синусового ритма и мерцательной аритмии средствами искусственного интеллекта / Д.М. Родионов, Д.А. Карчков, В.А. Москаленко, A.B. Никольский, Г.В. Осипов, Н.Ю. Золотых // Проблемы информатики. - 2022. - № 1 (54). - С. 77-88.
135. Сидоркин, А. Д. Исследование эффективности работы сиамских нейронных сетей для биометрической аутентификации по ЭКГ для сигналов с непериодическими нарушениями сердечного ритма / А. Д. Сидоркин // Инженерный вестник Дона. - 2023. - № 4 (100). - С. 142-156.
136. Зорин, А. Л. Рассмотрение процесса идентификации личности на основе электрокардиограммы / А.Л. Зорин, К. А. Зенюк //Научные исследования и инновации. - 2021. - № 1. - С. 17-23.
137. Uwaechia, A. N. A comprehensive survey on ECG signals as new biometric modality for human authentication: Recent advances and future challenges / A. N. Uwaechia, D. A. Ramli // IEEE Access. - 2021. - Vol. 9. - pp. 97760-97802.
138. Steenkamp, A. Convex scalarizations of the mean-variance-skewness-kurtosis problem in portfolio selection / A. Steenkamp // arXiv preprint arXiv:2302.10573. - 2023. - arXiv:2302.10573. - pp. 1-36.
139. Sharma, T. AES vs AES_GCM for Data Protection: A Comprehensive Security Comparison / T. Sharma, A. Steenkamp // 2024 OPJU International Technology Conference (OTCON) on Smart Computing for Innovation and Advancement in Industry 4.0. - IEEE. - 2024. - pp. 1-7.
140. Yang, Z. Improved Euclidean Distance Based Pilot Protection for Lines With Renewable Energy Sources / Z. Yang, W. Liao, H. Wang, C. L. Bak, // IEEE Transactions on Industrial Informatics. - 2022. - Vol. 18 (12). - pp. 8551-8562.
141. ГОСТ Р. 59921.1-2022 «Системы искусственного интеллекта в клинической медицине. Часть 1. Клиническая оценка» утв. и введен в действие приказом Федерального агентства по техническому регулированию и метрологии от 28 июня 2022 г. № 545-ст. - Москва : Российский институт стандартизации, 2022. - 24 с.
ПРИЛОЖЕНИЕ А. Листинг программного кода модели классификации кардиоданных
import os
import numpy as np
import pandas as pd
import pywt
import neurokit2 as nk
from collections import Counter
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
from imblearn.over_sampling import SMOTE
import tensorflow as tf
from tensorflow.keras.models import Model
from tensorflow.keras.layers import (Input, Conv1D, MaxPooling1D, Dense, Dropout,GlobalAveragePooling1D, Concatenate, Lambda)
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint, ReduceLROnPlateau
from tensorflow.keras.utils import to_categorical from tensorflow.keras.regularizers import l2 import matplotlib.pyplot as plt import seaborn as sns DATA_DIR = r'D: \примеры\data\holter' SAMPLING_RATE = 266 # Hz SEGMENT_DURATION = 5 # seconds SEGMENT_LENGTH = 266*5 # samples NUM_MORPHOLOGICAL_FEATURES = 8
FINAL_INPUT_LENGTH = NUM_MORPHOLOGICAL_FEATURES+ SEGMENT_LENGTH
CLASS_MAPPING = {
'NA': 'Норма', 'ANZA': 'Бигеминия', 'ANZB': 'Тригеминия', 'ANVES1': 'ЖЭС тип 1', 'ANSES': 'НЖЭ'} CLASS_NAMES = list(CLASS_MAPPING.values())
CLASS_TO_INT = {name: idx for idx, name in enumerate(CLASS_NAMES)}
CLINICAL_PRIORITY = {'НЖЭ': 1, 'ЖЭС тип 1': 2, 'Тригеминия': 3, 'Бигеминия': 4, 'Норма': 5}
def calculate_automatic_overlap_rates(class_counts, verbose=True): total = sum(class_counts.values()) overlap_config = {}
for class_label, count in sorted(class_counts.items(), key=lambda x: x[1]): percentage = (count / total) * 100 # Assign overlap based on frequency if percentage < 1.0:
overlap = 0.90 # Very rare strategy = "Very Rare (10x)" elif percentage < 5.0: overlap = 0.70 # Rare strategy = "Rare (3.3x)" elif percentage < 20.0: overlap = 0.50 # Moderate strategy = "Moderate (2x)" elif percentage < 40.0: overlap = 0.30 # Common strategy = "Common (1.4x)" else:
overlap = 0.00 # Majority
strategy = "Majority (1x)" overlap_config[class_label] = overlap if verbose:
step = int(SEGMENT_LENGTH * (1 - overlap)) multiplier = SEGMENT_LENGTH / step if step > 0 else 1.0 print(f'{class_label:<20} {count:>8,} {percentage:>11.2f}% " f'{overlap:>9.0%} {strategy:<20}") if verbose:
print("="*80) return overlap_config def calculate_snr(ecg_signal: np.ndarray) -> float: signal_power = np.mean(ecg_signal ** 2) noise_estimate = np.var(np.diff(ecg_signal)) snr = 10 * np.log10(signal_power / (noise_estimate + 1e-10)) return snr
def assess_signal_quality_simple(ecg_signal: np.ndarray, snr_threshold: float = 15.0, verbose: bool = False) -> tuple: snr = calculate_snr(ecg_signal) is_acceptable = snr >= snr_threshold if verbose:
print(f" SNR: {snr:.2f} дБ (порог: {snr_threshold} дБ) - {'ПРИНЯТО' if is_acceptable else 'ОТКЛОНЕНО'}") return is_acceptable, snr
def wavelet_denoise(signal: np.ndarray, wavelet: str = 'db4', level: int = 2) -> np.ndarray:
coeffs = pywt.wavedec(signal, wavelet, level=level) sigma = np.median(np.abs(coeffs[-1])) / 0.6745 threshold = sigma * np.sqrt(2 * np.log(len(signal))) coeffs_thresh = [coeffs[0]] # Keep approximation
for i in range(1, len(coeffs)):
coeffs_thresh.append(pywtthreshold(coeffs[i], threshold, mode-soft'))
denoised = pywt.waverec(coeffs_thresh, wavelet)
if len(denoised) > len(signal):
denoised = denoised[:len(signal)]
elif len(denoised) < len(signal):
denoised = np.pad(denoised, (0, len(signal) - len(denoised)), mode='edge') return denoised
def detect_r_peaks_neurokit(ecg_signal: np.ndarray, sampling_rate: int = SAMPLING_RATE) -> np.ndarray: try:
_, rpeaks_dict = nk.ecg_peaks(ecg_signal, sampling_rate=sampling_rate, method-'neurokit")
r_peaks_initial = rpeaks_dict['ECG_R_Peaks'] except:
return np.array([]) if len(r_peaks_initial) == 0: return np.array([])
window_size = int(0.05 * sampling_rate) # ~13 for 266 Hz
r_peaks_corrected = []
for peak_idx in r_peaks_initial:
# Define search window around detected peak start = max(0, peak_idx - window_size)
end = min(len(ecg_signal), peak_idx + window_size) window = ecg_signal[start:end] if len(window) > 0:
# Find actual maximum within window local_max_idx = np.argmax(window) corrected_peak = start + local_max_idx r_peaks_corrected.append(corrected_peak)
return np.array(r_peaks_corrected)
def extract_morphological_features(segment, r_peaks,
fs=SAMPLING_RATE):
default = np.array([3.0, 1.0, 0.5, 1.5, 800.0, 600.0, 1000.0, 75.0], dtype=np.float32) if len(r_peaks) < 1: return default try:
r_amps = segment[r_peaks[r_peaks < len(segment)]]
rr_intervals = np.diff(r_peaks) / fs * 1000 if len(r_peaks) > 1 else [800]
return np.array([
len(r_peaks), # num beats
np.mean(r_amps), np.min(r_amps), np.max(r_amps), # R amplitudes np.mean(rr_intervals), np.min(rr_intervals), np.max(rr_intervals), # RR intervals
60000 / np.mean(rr_intervals) if len(rr_intervals) > 0 else 75 # HR , dtype=np.float32) except: return default
def assign_label_with_priority(annotations):
if not annotations: return 'Норма'
counts = Counter(annotations) majority = counts.most_common(1)[0][0] total = len(annotations) for cls, count in counts.items():
if CLINICAL_PRIORITYget(cls, 999) < CLINICAL_PRIORITY. get(maj ority,
if count / total >= 0.20: return cls return majority
def extract_segments_with_class_specific_overlap(signal, annotations_dict, r_peaks, class_overlap_config):
max_overlap = max(class_overlap_config.values()) initial_step = int(SEGMENT_LENGTH * (1 - max_overlap)) temp_segments = []
for start in range(0, len(signal) - SEGMENT_LENGTH, initial_step): end = start + SEGMENT_LENGTH anns = [annotations_dict[k] for k in annotations_dict if start <= k < end] if not anns: continue
label = assign_label_with_priority(anns) temp_segments.append((start, end, label)) segments_by_class = {} for cls in class_overlap_config.keys():
segments_by_class[cls] = [] for start, end, label in temp_segments: if label in segments_by_class:
segments_by_class[label].append((start, end)) final_segments = [] final_labels = []
for cls, overlap_rate in class_overlap_config.items(): if cls not in segments_by_class or len(segments_by_class[cls]) == 0: continue
cls_step = int(SEGMENT_LENGTH * (1 - overlap_rate)) cls_positions = segments_by_class[cls] selected_positions = [] last_selected = -SEGMENT_LENGTH for start, end in cls_positions: if start >= last_selected + cls_step:
selected_positions.append((start, end)) last_selected = start for start, end in selected_positions: segment = signal[start:end]
seg_peaks = r_peaks[(r_peaks >= start) & (r_peaks < end)] - start features = extract_morphological_features(segment, seg_peaks) final_segments.append(np.concatenate([segment, features])) final_labels.append(cls) return final_segments, final_labels def load_patient_data(patient_id: str): ecg_file = os.path.join(DATA_DIR, patient_id, 'ECG.txt') ann_file = os.path.join(DATA_DIR, patient_id, 'dataset.xlsx') if not (os.path.exists(ecg_file) and os.path.exists(ann_file)): return None, None try:
ignal = []
with open(ecg_file, 'r') as f: for line in f:
parts = line.strip().split() if len(parts) >= 7: signal.append(float(parts[3])) signal_data = np.array(signal, dtype=np.float32) df = pd.read_excel(ann_file, sheet_name='dataset') return signal_data, df except Exception as e: print(f' Error loading {patient_id}: {e}") return None, None def process_patient(patient_id: str): signal_data, df = load_patient_data(patient_id) if signal_data is None or df is None:
return None, None, patient_id try:
is_acceptable, snr = assess_signal_quality_simple( signal_data, snr_threshold=15.0, verbose=False ) if not is_acceptable:
print(f" {patient_id}: Signal rejected (SNR={snr:.2f} dB)") return None, None, patient_id
cleaned_nk = nk.ecg_clean(signal_data, sampling_rate=SAMPLING_RATE, method-'neurokit")
denoised = wavelet_denoise(cleaned_nk)
r_peaks - detect_r_peaks_neurokit(denoised,
sampling_rate-SAMPLING_RATE) if len(r_peaks) < 2:
print(f' {patient_id}: Insufficient R-peaks detected") return None, None, patient_id annotations_dict = {} for _, row in df.iterrows(): # Skip artifacts (X, Z codes)
if pd.notna(row.iloc[2]) and row.iloc[3] not in ['X', 'Z']: code = 'NA' if pd.isna(row.iloc[4]) else str(row.iloc[4]).strip() if code in CLASS_MAPPING: line_number = int(row.iloc[2])
annotations_dict[line_number] = CLASS_MAPPING[code] if not annotations_dict: print(f' {patient_id}: No valid annotations") return None, None, patient_id
segments, labels = extract_segments_with_class_specific_overlap ( denoised, annotations_dict, r_peaks, overlap=0.5) if not segments:
print(f' {patient_id}: No segments extracted")
return None, None, patient_id
segments_array = np.array(segments, dtype=np.float32) labels_array = np.array([CLASS_TO_INT[l] for 1 in labels]) return segments_array, labels_array, patient_id except Exception as e:
print(f' {patient_id}: Error during processing - {e}") return None, None, patient_id
def split_by_patient(X, y, patient_ids_array, train_ratio=0.70, val_ratio=0.15, test_ratio=0.15, random_state=42):
unique_patients = np.unique(patient_ids_array) np.random.seed(random_state)
shuffled_patients = np.random.permutation(unique_patients)
n_train = int(len(unique_patients) * train_ratio)
n_val = int(len(unique_patients) * val_ratio)
train_patients = shufïled_patients[:n_train]
val_patients = shuffled_patients[n_train:n_tram + n_val]
test_patients = shufïled_patients[n_train + n_val:]
train_mask = np.isin(patient_ids_array, train_patients)
val_mask = np.isin(patient_ids_array, val_patients)
test_mask = np.isin(patient_ids_array, test_patients)
X_train = X[train_mask]
y_train = y[train_mask]
X_val = X[val_mask]
y_val = y[val_mask]
X_test = X[test_mask]
y_test = y[test_mask]
print(f" Train patients: {train_patients}")
print(f' Val patients: {val_patients}")
print(f' Test patients: {test_patients}")
print(f' Train: (len(X_train)} segments | Val: {len(X_val)} | Test: {len(X_test)}")
return X_train, X_val, X_test, y_train, y_val, y_test
def apply_smote_to_training(X_train, y_train, random_state=42, k_neighbors=5):
print(f" Before SMOTE: {len(X_train)} samples")
print(f' Class distribution before: {Counter(y_train)}")
smote = SMOTE(random_state=random_state, k_neighbors=k_neighbors)
X_train_balanced, y_train_balanced = smote.fit_resample(X_train, y_train)
print(f' After SMOTE: {len(X_train_balanced)} samples")
print(f' Class distribution after: {Counter(y_train_balanced)}")
return X_train_balanced, y_train_balanced
def normalize_data(X_train, X_val, X_test):
scaler = MinMaxScaler()
X_train_norm = scaler.fit_transform(X_train)
X_val_norm = scaler.transform(X_val)
X_test_norm = scaler.transform(X_test)
print(f' Normalization applied:")
print(f' Train range: [{X_train_norm.min():.4f}, {X_train_norm.max():.4f}]")
print(f' Val range: [{X_val_norm.min():.4f}, {X_val_norm.max():.4f}]")
print(f' Test range: [{X_test_norm.min():.4f}, {X_test_norm.max():.4f}]")
return X_train_norm, X_val_norm, X_test_norm, scaler
def check_prediction_quality(y_pred_proba: np.ndarray,
y_pred: np.ndarray,
class_names: list = CLASS_NAMES,
verbose: bool = True) -> Dict[str, Any]:
results = {
'low_confidence': [], # Индексы с низкой уверенностью 'critical_cases': [], # Индексы с критическими классами 'warnings': [] # Текстовые предупреждения}
RED = '\033[91m'
YELLOW = '\033[93m'
RESET = '\033[0m'
for i in range(len(y_pred)):
max_confidence = np.max(y_pred_proba[i])
predicted_class = class_names[y_pred[i]]
if max_confidence < CONFIDENCE_THRESHOLD:
results['low_confidence'].append(i)
warning_msg = f'{YELLOW}A ПРЕДУПРЕЖДЕНИЕ: Низкая уверенность для образца {i}: {predicted_class} ({max_confidence:.2%} < {CONFIDENCE_THRESHOLD: .0%}){RESET}" results['warnings'].append(warning_msg) if verbose: print(warning_msg)
if predicted_class in CRITICAL_CLASSES: results['critical_cases'] .append(i)
critical_msg = f,{RED}КРИТИЧЕСКИЙ: Образец {i} - {predicted_class} ({max_confidence: .2%}){RESET }"
results['warnings'].append(critical_msg) if verbose: print(critical_msg) total = len(y_pred)
n_low_conf = len(results['low_confidence']) n_critical = len(results['critical_cases']) results['statistics'] = { 'total_predictions': total, 'low_confidence_count': n_low_conf,
'low_confidence_percentage': (n_low_conf / total * 100) if total > 0 else 0, 'critical_count': n_critical,
'critical_percentage': (n_critical / total * 100) if total > 0 else 0 }
if verbose: print(f'\n{'-*80}")
print("СТАТИСТИКА КАЧЕСТВА ПРЕДСКАЗАНИЙ") print(f'{'-*80}")
print(fЪсеш предсказаний: {total}")
print(f,Низкая уверенность (< {CONFIDENCE_THRESHOLD:.0%}): {n_low_conf} ({n_low_conf/total* 100:.1f}%)")
print(f,Критические случаи: {n_critical} ({n_critical/total*100:.1f}%)") return results
def wilson_score_interval(n_correct: int, n_total: int,
confidence: float = 0.95) -> Tuple[float, float]:
if n_total == 0:
return 0.0, 0.0
p = n_correct / n_total
z = stats.norm.ppf((1 + confidence) / 2)
denominator = 1 + z**2 / n_total
centre_adjusted_probability = (p + z**2 / (2 * n_total)) / denominator adjusted_standard_deviation = np.sqrt((p * (1 - p) + z**2 / (4 * n_total)) / n_total) / denominator
lower_bound = centre_adjusted_probability - z * adjusted_standard_deviation
upper_bound = centre_adjusted_probability + z * adjusted_standard_deviation
return max(0.0, lower_bound), min(1.0, upper_bound)
def bootstrap_confidence_interval(y_true: np.ndarray,
y_pred: np.ndarray,
metric_func,
n_bootstrap: int = 1000,
confidence_level: float = 0.95,
random_state: int = 42) -> Tuple[float, float, float]:
np.random.seed(random_state)
n_samples = len(y_true)
metric_value = metric_func(y_true, y_pred)
bootstrap_metrics = []
for _ in range(n_bootstrap):
indices = np.random.choice(n_samples, size=n_samples, replace=True)
y_true_boot = y_true[indices]
y_pred_boot = y_pred[indices]
boot_metric = metric_func(y_true_boot, y_pred_boot)
bootstrap_metrics.append(boot_metric)
alpha = 1 - confidence_level
lower_percentile = (alpha / 2) * 100
upper_percentile = (1 - alpha / 2) * 100
lower_bound = np.percentile(bootstrap_metrics, lower_percentile) upper_bound = np.percentile(bootstrap_metrics, upper_percentile) return metric_value, lower_bound, upper_bound def calculate_all_confidence_intervals(y_true: np.ndarray, y_pred: np.ndarray, n_bootstrap: int = 1000,
confidence_level: float = 0.95) -> Dict[str, Dict[str, float]]: print(f'\n{'-*80}")
print("РАСЧЕТ ДОВЕРИТЕЛЬНЫХ ИНТЕРВАЛОВ")
print(f'{'-*80}")
print(f'\пПараметры:")
print(f Количество бутстреп-выборок: {n_bootstrap}") print(f' Уровень достоверности: {confidence_level*100:.0f}%") results = {}
n_correct = np.sum(y_true == y_pred) n_total = len(y_true) accuracy = n_correct / n_total
wilson_lower, wilson_upper = wilson_score_interval(n_correct, n_total, confidence_level)
results['accuracy'] = { 'value': accuracy, 'lower_bound': wilson_lower, 'upper_bound': wilson_upper, 'method': 'Wilson Score'} print(f'^Точность (Accuracy):")
print(f' Значение: {accuracy:.4f} ({accuracy*100:.2f}%)") print(f' {confidence_level*100:.0f}% ДИ (Уилсон): [{wilson_lower:.4f}, {wilson_upper:.4f}]")
print(f" {confidence_level* 100:.0f}% ДИ (Уилсон):
[{wilson_lower* 100:.2f}%, {wilson_upper* 100:.2f}%]")
precision_value, precision_lower, precision_upper =
bootstrap_confidence_interval( y_true, y_pred,
lambda yt, yp: precision_score(yt, yp, average='macro', zero_division=0),
n_bootstrap, confidence_level)
results['precision'] = {
'value': precision_value,
'lower_bound': precision_lower,
'upper_bound': precision_upper,
print(f,\nМакро-точность (Macro Precision):")
print(f' Значение: {precision_value:.4f} ({precision_value*100:.2f}%)") print(f' {confidence_level*100:.0f}% ДИ (Бутстреп): [{precision_lower:.4f}, {precision_upper: .4f}]")
print(f,{confidence_level*100:.0f}% ДИ (Бутстреп):
[{precision_lower*100: .2f}%, {precision_upper*100: .2f}%]")
recall_value, recall_lower, recall_upper = bootstrap_confidence_interval( y_true, y_pred,
lambda yt, yp: recall_score(yt, yp, average-macro', zero_division=0),
n_bootstrap, confidence_level)
results['recall'] - {
'value': recall_value,
'lower_bound': recall_lower,
'upper_bound': recall_upper,
'method': 'Bootstrap' }
print(f,\nМакро-полнота (Macro Recall):") print(f' Значение: {recall_value:.4f} ({recall_value*100:.2f}%)") print(f' {confidence_level*100:.0f}% ДИ (Бутстреп): [{recall_lower:.4f}, {recall_upper:.4f}]")
print(f' {confidence_level*100:.0f}% ДИ (Бутстреп):
[{recall_lower* 100:.2f}%, {recall_upper* 100:.2f}%]")
f1_value, f1_lower, f1_upper = bootstrap_confidence_interval( y_true, y_pred,
lambda yt, yp: f1_score(yt, yp, average-macro', zero_division=0),
n_bootstrap, confidence_level)
results['f1_score'] = {
'value': f1_value,
'lower_bound': f1_lower,
'upper_bound': f1_upper,
'method': 'Bootstrap'}
print(f,\nМакро Б1-мера:")
print(f" Значение: {f1_value:.4f} ({f1_value*100:.2f}%)") print(f,{confidence_level*100:.0f}% ДИ (Бутстреп): [{f1_lower:.4f}, {f1_upper:.4f}]")
print(f" {confidence_level*100: .0f}% ДИ (Бутстреп): [{f1_lower*100:.2f}%, {f1 _upper* 100:.2f}%]") return results
def plot_training_history(history: Dict[str, list], save_path: str = 'training_history.png'):
fig, axes = plt.subplots(1, 2, figsize=(15, 5))
axes[0].plot(history['loss'], label='Обучающая потеря', linewidth=2) axes[0].plot(history['val_loss'], label='Валидационная потеря', linewidth=2) axes[0].set_xlabel('Эпоха', fontsize=12) axes [0] .set_ylabel('Потеря', fontsize=12)
axes[0].set_title('Потеря модели', fontsize=14, fontweight='bold') axes [0] .legend(fontsize=10) axes[0].grid(True, alpha=0.3)
axes[1].plot(history['accuracy'], label='Обучающая точность', linewidth=2) axes[1].plot(history['val_accuracy'], label-Валидационная точность', linewidth=2)
axes [1].set_xlabel('Эпоха', fontsize= 12) axes [1].set_ylabel('Точно сть', fontsize=12)
axes[1].set_title('Точность модели', fontsize=14, fontweight='bold') axes [1].legend(fontsize=10) axes[1].grid(True, alpha=0.3) plt.tight_layout()
plt.savefig(save_path, dpi=300, bbox_inches='tight') print(f,\nГрафик истории обучения сохранен: {save_path}") plt.close()
def plot_confusion_matrix(cm: np.ndarray, class_names: list,
save_path: str = 'confusion_matrix.png'): plt.figure(figsize=(10, 8))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=class_names, yticklabels=class_names, cbar_kws={'label': 'Количество предсказаний'}) plt.xlabel('Предсказанный класс', fontsize=12)
plt.ylabel('Истинный класс', fontsize=12) plt.title('Матрица ошибок', fontsize=14, fontweight-'bold') plt.tight_layout()
plt.savefig(save_path, dpi-300, bbox_inches='tight') print(f Матрица ошибок сохранена: {save_path}") plt.close()
def plot_confidence_intervals(ci_results: Dict[str, Dict[str, float]], save_path: str = 'confidence_intervals.png'): metrics = ['accuracy', 'precision', 'recall', 'f1_score'] metric_names = ['Точность\n(Accuracy)', 'Точность\n(Precision)',
Полнота\n(Recall)', Т1-мера'] values = [ci_results[m]['value'] for m in metrics] lower_bounds = [ci_results[m]['lower_bound'] for m in metrics] upper_bounds = [ci_results[m]['upper_bound'] for m in metrics] errors_lower = [v - l for v, l in zip(values, lower_bounds)] errors_upper = [u - v for u, v in zip(upper_bounds, values)] fig, ax = plt.subplots(figsize=(12, 6)) x_pos = np.arange(len(metrics))
ax.bar(x_pos, values, alpha=0.7, color-'steelblue', label-'Значение метрики')
ax.errorbar(x_pos, values,
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.