Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 16(270)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6

Библиографическое описание:
Смирнов С.С. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ДИАГНОСТИКИ СЕРДЕЧНЫХ ЗАБОЛЕВАНИЙ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВОЙ СИСТЕМЫ И РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ // Студенческий: электрон. научн. журн. 2024. № 16(270). URL: https://sibac.info/journal/student/270/327690 (дата обращения: 17.05.2024).

РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ДИАГНОСТИКИ СЕРДЕЧНЫХ ЗАБОЛЕВАНИЙ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВОЙ СИСТЕМЫ И РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ

Смирнов Святослав Сергеевич

студент, Кафедра вычислительной математики и кибернетики, Уфимский университет науки и технологий,

РФ, г. Уфа

DEVELOPMENT OF SOFTWARE FOR DIAGNOSING HEART DISEASES USING A NEURAL NETWORK SYSTEM AND A DISTRIBUTED DATABASE

 

Svyatoslav Smirnov

student, Department of Computational Mathematics and Cybernetics, Ufa University of Science and Technology,

Russia, Ufa

 

АННОТАЦИЯ

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

ABSTRACT

This paper explores the development of software for diagnosing heart diseases based on the analysis of electrocardiogram (ECG) data using a neural network. For this purpose, a system was created that integrates patient information from a distributed database and knowledge. The neural network model was trained on a dataset provided by the Cleveland Clinic Heart Foundation, followed by analysis of the results and optimization of training parameters. The developed software allows you to download patient ECG data, analyze it and make a prediction of the presence of heart disease with high accuracy. The results of the system confirm the effectiveness of using neural network methods in medical applications.

 

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

Keywords: electrocardiogram, neural networks, medical diagnostics, cardiovascular diseases, software, data analysis, machine learning, databases, information support, distributed databases.

 

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

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

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

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

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

 

Изображение выглядит как текст, снимок экрана, Шрифт, число</p>
<p>Автоматически созданное описание

Рисунок 1. Логическое моделирование базы данных

 

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

База данных состоит из одной таблицы – HeartDiseaseRecord. Таблица содержит параметры, используемые при работе с нейронной сетью, а также уникальный идентификатор записи, дату создания записи, а также результат прогноза, сделанный нейронной сетью для этого набора данных [2].

Ниже приведено описание всех полей таблиц:

id – уникальный идентификатор записи;

date – дата создания записи;

age – возраст пользователя в полные годы;

sex – пол пользователя;

cp (chest pain type) – тип боли в груди;

trestbpd – артериальное давление в покое (в мм рт. ст.);

chol – холестерин в сыворотке крови в мг/дл;

fbs – уровень сахара в крови выше 120 мг/дл (1 = истинно; 0 = ложно);

restecg – результаты электрокардиограммы в покое;

thalach – максимальная частота сердечных сокращений;

exang – ангина, вызванная физическими упражнениями (1 = да; 0 = нет);

oldpeak – депрессия ST, вызванная физическими упражнениями по отдыху;

slope – наклон пикового сегмента упражнения ST;

ca – количество основных сосудов (0-3), окрашенных флюороскопией;

thal -3 = нормальный; 6 = исправленный дефект; 7 = обратимый дефект;

predict – спрогнозированная вероятность возникновения заболевания.

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

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

Следовательно, можно сформировать следующие требования к программе:

- возможность загрузки в систему данных электрокардиограммы конкретного пациента;

- отображение сигнала ЭКГ, который был загружен;

- отображение результатов анализа ЭКГ на экране.

Основные этапы работы программы изображены на рисунке 2.

 

Рисунок 2. Основные этапы работы программы

 

На рисунке 3 приведена архитектура построенной в работе системы.

 

Рисунок 3. Архитектура системы

 

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

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

Поскольку каждый сигнал имеет три составляющие, соответственно он будет иметь три спектрограммы. Для того чтобы передать этот сигнал сверточной нейронной сети три спектрограммы помещаются друг на друга, в результате чего образуется одно изображение с тремя каналами (рис. 4).

 

Изображение выглядит как диаграмма, линия, План, График</p>
<p>Автоматически созданное описание

Рисунок 4. Образование трехканального изображения для подачи на вход нейронной сети

 

Далее изображения подаются на вход нейронной сети, архитектура которой изображена на рисунке 5. и описан в таблице 1.

 

Изображение выглядит как текст, линия, Параллельный, Шрифт</p>
<p>Автоматически созданное описание

Рисунок 5. Архитектура сверточной нейронной сети

 

Оценка результатов работы ИНС приведена в таблице 2. Все показатели высоки, поэтому можно считать, что реализация сети для классификации ЭКГ удачной.

Таблица 1

Архитектура сверточной нейронной сети

Шар

Тип

Размер ядра

Шаг

Фильтр ядра

Входящий размер

1

Conv2D

3*3

1

64

128*128*3

2

Conv2D

3*3

1

64

128*128*64

3

Pool

2*2

2

 

128*128*64

4

Conv2D

3*3

1

128

64*64*64

5

Conv2D

3*3

1

128

64*64*128

6

Pool

2*2

2

 

64*64*128

7

Conv2D

3*3

1

256

32*32*128

8

Conv2D

3*3

1

256

32*32*256

9

Pool

2*2

2

 

32*32*256

10

Full

 

 

2048

16*16*256

11

Out

 

 

8

2048

 

Таблица 2

Оценки результатов работы ИНС

AUC

Accuracy

Specificity

Sensitivity

0.914

92.10

90.56

94.13

 

Для обучения нейронной сети был использован набор данных предоставлен Кливлендским клиническим фондом для сердечных заболеваний (Cleveland Clinic Foundation for Heart Disease) [5]. Это файл CSV с 303 строками. Каждая строка содержит информацию о пациенте (образце), а каждый столбец описывает атрибут пациента (признак). Используем признаки прогнозирования наличия у пациента сердечных заболеваний (бинарная классификация).

Описание каждого из признаков представлено в таблице 3. В таблице 4 можно просмотреть как представленные данные в файле CSV.

Таблица 3

Описание признаков для выбранного датасета

Признак

Объяснение

Тип признака

Age

Возраст в годах

Числовой

Sex

Пол (1 – м, 0 – ж)

Категория

CP

Тип боли в груди (0, 1, 2, 3, 4)

Категория

Trestbpd

Артериальное давление в покое (в мм рт. ст.)

Числовой

Chol

Холестерин в сыворотке крови в мг/дл

Числовой

FBS

Уровень сахара в крови выше 120 мг/дл (1 = истинно; 0 = ложно)

Категория

RestECG

Результаты электрокардиограммы в покое (0, 1, 2)

Категория

Thalach

Максимальная частота сердечных сокращений

Числовой

Exang

Ангина, вызванная физическими упражнениями (1 = да; 0 = нет)

Категория

Oldpeak

Депрессия ST, вызванная физическими упражнениями по отдыху

Числовой

Slope

Наклон пикового сегмента упражнения ST

Числовой

CA

Количество основных сосудов (0-3), окрашенных флюороскопией

Числовой, категория

Thal

3 = нормальный; 6 = исправленный дефект;

7 = обратимый дефект

Категория

Target

Диагностированы сердечные заболевания (1 = правда; 0 = ложно)

Target

 

Таблица 4

Представление данных в CSV файле

 

age

sex

cp

trestbps

chol

fbs

restecg

thalach

exang

oldpeak

slope

ca

thal

target

0

63

1

1

145

233

1

2

150

0

2.3

3

0

fixed

0

1

67

1

4

160

286

0

2

108

1

1.5

2

3

normal

1

2

67

1

4

120

229

0

2

129

1

2.6

2

2

reversible

0

3

37

1

3

130

250

0

0

187

0

3.5

3

0

normal

0

4

41

0

2

130

204

0

2

172

0

1.4

1

0

normal

0

 

Последний столбец «target» указывает, есть ли у пациента сердечное заболевание (1) или нет (0).

Для обучения нейронной сети набор данных был разделен на обучающую (training set) и проверочную (validation set) выборки в классическом соотношении 80:20. Таким образом в обучающую выборку попало 242 образца, а в проверочную – 61 образец.

Далее были разработаны функции, нормализующие данные по нашему набору данных (рисунки 6 – 8). Исходя из таблицы 3, видно, что таких функций понадобилось 3, согласно количеству типов признаков, присутствующих в датасете [4].

 

Изображение выглядит как текст, снимок экрана, Шрифт</p>
<p>Автоматически созданное описание

Рисунок 6. Функция нормализации для числовых признаков

 

Изображение выглядит как текст, снимок экрана, Шрифт</p>
<p>Автоматически созданное описание

Рисунок 7. Функция нормализации для признаков типа категория, которые записаны в виде строки

 

Изображение выглядит как текст, снимок экрана, Шрифт</p>
<p>Автоматически созданное описание

Рисунок 8. Функция нормализации для признаков типа категория, которые записаны в виде числа

 

Для эксперимента топология нейронной сети изменялась путем изменения количества скрытых слоев (1, 3, 5 слоев).

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

В качестве метрики при обучении сети используется точность (accuracy) – удел правильных ответов сети.

Для выбора оптимального оптимизатора было проведено сравнение точности работы сети на тестовых данных при использовании трех популярных оптимизаторов – SGD, Rmsprop и Adam. Результаты эксперимента отражены в таблице 5. Видно, что самую высокую точность сеть показала при использовании оптимизатора Rmsprop.

Таблица 5

Точность и ошибка сети на тестовых данных в зависимости от использованного оптимизатора

Оптимизатор

Точность

Ошибка

1 шар

3 слоя

5 слоев

1 шар

3 слоя

5 слоев

SGD

80.06%

68.90%

69.86%

48.62%

55.74%

60.44%

Rmsprop

85.43%

89.71%

92.99%

30.81%

23.63%

19.45%

Adam

82.40%

90.56%

90.65%

35.50%

24.04%

20.64%

 

Размер мини-выборок выбран равным 32, то есть сеть изменяет весовые коэффициенты после обработки каждых 32 объектов.

Опытным путем было определено оптимальное количество эпох обучения. Было проведено обучение сети при разном количестве эпох – 15, 20, 25, 30, 35. Результаты эксперимента отражены в таблице 6. Таким образом оптимальное количество эпох обучения составило 30, так как при меньшем или большем количестве эпох обучения сеть показывала более низкую точность на тестовой выборке. При малом количестве эпох это обусловлено тем, что сеть не успела выделить достаточное количество признаков на обучающих данных, а при большем количестве эпох – из-за начальных признаков переобучения.

Таблица 6

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

Количество эпох обучения

15

20

25

30

35

Точность тестовой выборке

92.99%

90.93%

92.96%

97.89%

94.50%

 

Далее обученная нейронная сеть была сохранена в формате «*.mlmodel», чтобы ее можно было использовать при разработке приложения.

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

В конце обучения сети точность на данных, на которых проводилось обучение, составила 97.89%, а на проверочной выборке (validation data) – 81.97%. Значение функции потерь (loss) соответственно составили 9.81% на обучающей выборке 55.24% на проверочной выборке (validation loss) (рисунок 9).

 

Изображение выглядит как текст, документ, бумага, число</p>
<p>Автоматически созданное описание

Рисунок 9. Вывод библиотеки Keras

 

Были построены графики изменения ошибки (рисунок 10) и точности сети в процессе обучения (рисунок 11).

 

Изображение выглядит как текст, диаграмма, График, линия</p>
<p>Автоматически созданное описание

Рисунок 10. График изменения ошибки при обучении нейронной сети

 

Изображение выглядит как текст, диаграмма, График, линия</p>
<p>Автоматически созданное описание

Рисунок 11. График изменения точности при обучении нейронной сети

 

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

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

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

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

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

 

Список литературы:

  1. Школьникова М. А. и др. Основные тенденции заболеваемости и смертности от сердечно-сосудистых заболеваний детей и подростков в Российской Федерации //Российский вестник перинатологии и педиатрии. – 2008. – Т. 53. – №. 4.
  2. Максименко А. Н., Костылева В. В., Разин И. Б. Подходы к преобразованию реляционных баз данных в базы знаний // Международный журнал профессиональных наук. 2021. № 2-2021. С. 55-62.
  3. Олейник А.Г. Организация хранения «открытых» наборов атрибутов сущностей в реляционных базах данных // Труды Кольского научного центра РАН. Информационные технологии. 2021. Выпуск 12, Т.12 №5. С. 128-139.
  4. А.Ф. Берман, М.А. Грищенко, О.А. Николайчук, А.Ю. Юрин. Проблемно-ориентированный редактор продукционных баз знаний // Программные продукты и системы / Software & Systems № 2 (110), 2015. – с. 13-19.
  5. Kemp B., Olivan J. European data format ‘plus’(EDF+), an EDF alike standard format for the exchange of physiological data //Clinical neurophysiology. – 2003. – Т. 114. – №. 9. – С. 1755-1761.
Удалить статью(вывести сообщение вместо статьи): 

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.