Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Смирнов С.С. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ДИАГНОСТИКИ СЕРДЕЧНЫХ ЗАБОЛЕВАНИЙ.docx
Источник:
Скачиваний:
5
Добавлен:
14.05.2024
Размер:
725.34 Кб
Скачать

Представление данных в 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].

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

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

Рисунок 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