
- •Разработка программного обеспечения для диагностики сердечных заболеваний с использованием нейросетевой системы и распределенной базы данных
- •Аннотация
- •Архитектура сверточной нейронной сети
- •Оценки результатов работы инс
- •Описание признаков для выбранного датасета
- •Представление данных в csv файле
- •Точность и ошибка сети на тестовых данных в зависимости от использованного оптимизатора
- •Точность сети на тестовых данных в зависимости от количества эпох обучения
Представление данных в 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