Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6736| Title: | Застосування методів аналізу даних і машинного навчання в медицині на основі ансамблевих моделей |
| Authors: | Федоров, Євген Євгенович Ткаченко, Олександр Сергійович |
| Keywords: | МАШИННЕ НАВЧАННЯ, МЕДИЧНА ДІАГНОСТИКА, АНСАМБЛЕВІ МЕТОДИ, СТЕКІНГ, TOP-K ACCURACY, ПРОГРАМНИЙ ЗАСТОСУНОК;MACHINE LEARNING, MEDICAL DIAGNOSIS, ENSEMBLE METHODS, STACKING, TOP-K ACCURACY, SOFTWARE APPLICATION |
| Issue Date: | 18-Dec-2025 |
| Abstract: | Кваліфікаційна робота магістра присвячена розробленню гібридної ансамблевої системи для автоматизованої медичної діагностики на основі аналізу багатовимірних біомедичних даних. Актуальність теми зумовлена зростанням обсягів клінічної інформації та необхідністю підвищення точності й надійності рішень у медичній практиці. Об’єктом дослідження є процеси виявлення прихованих закономірностей у симптоматиці та класифікації нозологічних форм, а предметом — математичні моделі та методи ансамблевого машинного навчання в умовах невизначеності та розріджених даних.
У роботі розроблено програмний комплекс із графічним інтерфейсом, що реалізує повний цикл автоматизованої діагностики та формує ймовірнісні оцінки захворювань. Запропонована система виконує функцію «другої думки» лікаря, підвищуючи точність виявлення патологій, зокрема рідкісних, та зменшуючи ризик діагностичних помилок. Результати дослідження апробовано на міжнародній науково-практичній конференції. The master’s thesis is devoted to the development of a hybrid ensemble system for automated medical diagnosis based on the analysis of multidimensional biomedical data. The relevance of the study is driven by the rapid growth of clinical information and the need to improve the accuracy and reliability of diagnostic decisions. The object of the research is the identification of latent patterns in symptom data and the classification of diseases, while the subject includes mathematical models and ensemble machine learning methods under conditions of uncertainty and data sparsity. The work presents a software system with a graphical user interface that implements the full diagnostic workflow and provides probabilistic assessments of possible diseases. The proposed solution acts as a “second opinion” tool for physicians, reducing the risk of missing rare pathologies and improving overall diagnostic quality. The main results were presented at an international scientific and practical conference. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6736 |
| Appears in Collections: | 112 Статистика (Аналіз даних (DATA SCIENCE) та комп'ютерна статистика) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| ТКАЧЕНКО О.С. Кваліфікаційна робота магістра.pdf Restricted Access | 3.32 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
2
РЕФЕРАТ
Магістерська кваліфікаційна робота складається зі вступу, трьох розділів,
висновків, списку використаних джерел та додатків. Обсяг роботи становить 60
сторінок основного тексту, містить 22 рисунків, 3 таблиці, 17 найменувань у списку
використаних джерел і 3 додатки.
Актуальність теми. Величезні обсяги клінічних даних потребують
автоматизованих інструментів аналізу, здатних мінімізувати лікарські помилки.
Перспективним є створення гібридних ансамблевих систем, здатних компенсувати
недоліки окремих алгортитмів.
Об’єтом дослідження є процес аналізу багатовимірних біомедичних даних,
виявлення латентних закономірностей у симптоматиці та класифікація
нозологічних форм.
Предметом дослідження є математичні моделі та методи ансамблевого
машинного навчання, стратегії агрегації рішень в умовах невизначеності та
розрідженості інформації для задач медичної діагностики.
Метою дослідження є підвищення показників точності, надійності та
клінічної релевантності автоматизованого діагностування захворювань шляхом
розробки та програмної реалізації гібридної ансамблевої системи.
Практичне значне одержаних результатів полягає у розробці програмного
комлексу із графічним інтерфейсом, який реалізує повний цикл діагностики: від
вибору пацієнта до розподілу ймовір"ностей. Система виконує функцію «другої
думки», знижуючи ризик пропуску рідкісних пактологій.
Апробація результатів. Основні положення дослідження були представлені
на II міжнародній науково-практичній студентській конференції «IT простір
сьогодення: тенденції, інновації та перспективи розвитку».
Ключові слова: машинне навчання, медична діагностика, ансамблеві методи,
стекінг, Top-K Accuracy, програмний застосунок.
3
ABSTRACT
The Master's qualification paper consists of an introduction, three chapters,
conclusions, a list of references, and appendices.The volume of the work is 60 pages of
main text; it contains 22 figures, 3 tables, 17 items in the list of references, and 3
appendices.
Relevance of the topic. Huge volumes of clinical data require automated analysis
tools capable of minimizing medical errors. The creation of hybrid ensemble systems
capable of compensating for the shortcomings of individual algorithms is promising.
The object of the study is the process of analyzing multidimensional biomedical
data, identifying latent patterns in symptomatology, and classifying nosological forms.
The subject of the study is mathematical models and methods of ensemble machine
learning, decision aggregation strategies under conditions of uncertainty and information
sparsity for medical diagnosis tasks.
The goal of the study is to increase the accuracy, reliability, and clinical relevance
of automated disease diagnosis by developing and implementing a hybrid ensemble
system in software.
The practical significance of the obtained results lies in the development of a
software complex with a graphical interface that implements the full diagnostic cycle:
from patient selection to probability distribution. The system performs a "second opinion"
function, reducing the risk of missing rare pathologies.
Approbation of results. The main provisions of the study were presented at the II
International Scientific and Practical Student Conference "IT Space of the Present:
Trends, Innovations, and Development Prospects."
Keywords: machine learning, medical diagnosis, ensemble methods, stacking,
Top-K Accuracy, software application.
4
Зміст
ВСТУП .............................................................................................................................. 7
1 ОГЛЯД МЕТОДІВ МАШИННОГО НАВЧАННЯ В МЕДИЧНІЙ
ДІАГНОСТИЦІ .............................................................................................................. 11
1.1 Еволюція методів автоматизованої діагностики ........................................... 11
1.1.1 Етап експертних систем та логічних правил (1970 р.) .............................. 11
1.1.2 Період імовірнісних моделей та лінійної класифікації (1990 р.) ............. 11
1.1.3 Етап статистичного навчання (2000 р.) ...................................................... 12
1.1.4 Етап глибокого навчання та нейронних мереж (2010 р.) .......................... 12
1.2 Використання машинного навчання в клінічній медицині .......................... 13
1.2.1 Аналіз медичних зображень, радіологія та цифрова патологія ............... 13
1.2.2 Прогностична аналітика на основі електронних медичних записів ........ 14
1.2.3 Прискорення розробки лікарських препаратів .......................................... 14
1.2.4 Геноміка та персоналізована медицина ...................................................... 15
1.2.5 Виклики та проблеми впровадження .......................................................... 15
1.3 Стан наукових досліджень у сфері медичної діагностики ........................... 16
1.4 Особливості та проблеми аналізу медичних даних ....................................... 17
1.4.1 Багатовимірність простору ознак ................................................................ 17
1.4.2 Проблема розрідженості даних ................................................................... 18
1.4.3 Незбалансованість класів ............................................................................. 19
1.5 Алгоритми машинного навчання .................................................................... 20
1.5.1 Лінійна регресія ............................................................................................. 20
1.5.2 Логістична регресія ....................................................................................... 20
1.5.3 Наївний баєсівський класифікатор ............................................................. 21
1.5.4 Метод k-найближчих сусідів ....................................................................... 21
1.5.5 Метод опорних векторів ............................................................................... 21
1.5.6 Дерева рішень ................................................................................................ 22
1.5.7 Випадковий ліс .............................................................................................. 22
1.5.8 Градієнтний бустинг ..................................................................................... 23
1.5.9 XGBoost .......................................................................................................... 23
1.5.10 LightGBM ................................................................................................... 23
1.5.11 CatBoost ...................................................................................................... 24
1.5.12 Штучні нейронні мережі .......................................................................... 24
5
1.6 Теоретичні основи ансамблевих методів........................................................ 24
1.6.1 Беггінг ............................................................................................................. 26
1.6.2 Бустинг ........................................................................................................... 26
1.6.3 Стекінг та Блендінг ....................................................................................... 27
1.7 Постановка задачі дослідження ....................................................................... 27
1.8 Проміжні висновки ........................................................................................... 28
2 МЕТОДИКА ПІДГОТОВКИ ДАНИХ ТА ПРОЕКТУВАННЯ АРХІТЕКТУР
МОДЕЛЕЙ ..................................................................................................................... 30
2.1 Попередня обробка даних ................................................................................ 30
2.1.1 Опис даних ..................................................................................................... 30
2.1.2 Характеристика даних .................................................................................. 30
2.1.3 Аналіз дисбалансу класів ............................................................................. 31
2.1.4 Аналіз розрідженості даних ......................................................................... 31
2.1.5 Візуалізація простору ................................................................................... 32
2.1.6 Кодування цільової змінної ......................................................................... 33
2.1.7 Методологія формування вибірок ............................................................... 33
2.2 Логістична модель............................................................................................. 34
2.3 Наївний байєсівський класифікатор ............................................................... 35
2.4 Алгоритм випадкового лісу ............................................................................. 36
2.5 Градієнтний бустинг (XGBoost) ...................................................................... 37
2.6 Нейронна мережа .............................................................................................. 39
2.6.1 Вибір функції активації ................................................................................ 40
2.6.2 Механізми регуляризації .............................................................................. 41
2.6.3 Алгоритм оптимізації та функція втрат ...................................................... 41
2.6.4 Керування навчанням ................................................................................... 42
2.7 Обчислювальна складність алгоритмів .......................................................... 42
2.7.1 Наївний баєсівський класифікатор ............................................................. 43
2.7.2 Логістична регресія ....................................................................................... 43
2.7.3 Випадковий ліс .............................................................................................. 43
2.7.4 XGBoost .......................................................................................................... 44
2.7.5 Нейронна мережа .......................................................................................... 44
2.8 Методологія оцінки якості моделей ................................................................ 45
6
2.9 Обгрунтування вибору алгоритмів для ансамблю ........................................ 45
2.10 Проміжні висновки ........................................................................................... 47
3 ПРОГРАМНА РЕАЛІЗАЦІЯ ТА ЕКСПЕРЕМЕНТАЛЬНЕ ДОСЛІДЖЕННЯ . 49
3.1 Балансування та підготовка даних .................................................................. 49
3.2 Реалізація моделей ............................................................................................ 50
3.2.1 Реалізація логістичної регресії .................................................................... 50
3.2.2 Реалізація Наївного байєса ........................................................................... 51
3.2.3 Реалізація випадкового лісу ......................................................................... 51
3.2.4 Реалізація XGBoost ....................................................................................... 52
3.2.5 Реалізація нейронної моделі ........................................................................ 52
3.3 Побудова ансамблю .......................................................................................... 53
3.4 Точність та порівняння моделей ...................................................................... 54
3.5 Опис графічного інтерфейса ............................................................................ 58
3.5.1 Ініціалізація системи ..................................................................................... 58
3.5.2 Головне вікно................................................................................................. 59
3.5.3 Модуль керування пацієнтами та симптомами ......................................... 60
3.5.4 Візуалізація результатів діагностики .......................................................... 61
3.6 Оцінювання ефективності прикладного рішення .......................................... 62
3.7 Перспективи подальшого розвитку ................................................................. 63
3.8 Проміжні висновки ........................................................................................... 64
ВИСНОВКИ ................................................................................................................... 66
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ..................................................................... 67
ДОДАТОК А. Специфікація ........................................................................................ 69
ДОДАТОК Б. Інструкція користувача ........................................................................ 71
ДОДАТОК В. Опис датасету ....................................................................................... 76
ДОДАТОК Г. Текст програми ................................................................................... 107
7
ВСТУП
Актуальність теми. На сучасному етапі науково-технічного прогресу
світова система охорони здоров’я переживає період фундаментальної
парадигмальної трансформації, що характеризується переходом від традиційної
реактивної моделі до концепції прецизійної медицини. Глобальні процеси
цифровізації, зокрема повсюдне впровадження електронних медичних записів та
розвиток телемедичних платформ, призвели до експоненційно зростаючих обсягів
клінічних даних. Це явище створило парадоксальну ситуацію в клінічній практиці,
коли медичні фахівці мають доступ до величесної кількості інформації про
пацієнтів, проте фізіологічні обмеження ресурсів людей-лікарів та обмежений час
прийому унеможливлюють її глибокий, всебічний аналіз у режимі реального часу.
Згідно з результатами авторитетних міжнародних досліджень [1-2], частота
діагностичних помилок у світовій практиці становить від 10% до 15% клінічних
випадків, що не лише призводить до тяжких, а іноді й незворотних наслідків для
здоров’я пацієнта, але й завдає значних економічних збитків системам охорони
здоров’я. Особливу складність та високий рівень невизначеності становить
диференційна діагностика на етапі первинного огляду, коли симптоматика
рідкісних або орфанних захворювань може бути замаскована під клінічну картину
поширених патологій, що підвищує ризик помилкового лікування.
Існуючі на ринку системи підтримки прийняття клінічних рішень часто
стикаються з фундаментальною проблемою компромісу точності та
інтерпретованості. Класичні лінійні моделі забезпечують необхідну прозорість
рішень, але виявляються недостатньо точними для моделювання складних
нелінійних залежностей. Водночас сучасні методи глибокого навчання,
демонструючи високу точність, часто функціонують за принципом «чорної
скриньки» та характеризуються схильністю до перенавчання на незбалансованих
вибірках, що є типовим для медичної статистики.
Відповідно до фундаментальної теореми про «відсутність безкоштовних
обідів» [3] в теорії оптимізації, не існує універсального алгоритму, який був би
8
апріорі найефективнішим для вирішення всіх класів задач на всіх типах даних. У
зв’язку з цим, актуальним науково-прикладним завданням вбачається відмова від
пошуку ідеальної моделі на користь розробки гібридних ансамблевих систем. Такі
системи, базуючись на синергійному поєднанні різнорідних математичних підходів
здатні компенсувати індивідуальні зміщення окремих алгоритмів, забезпечуючи
високу робастність, стійкість до шумів та надійність діагностичного висновку.
Об’єкт дослідження – процес аналізу багатовимірних біомедичних даних,
виявлення латентних закономірностей у симптоматиці та класифікації
нозологічних форм.
Предмет дослідження – математичні моделі та методи ансамблевого
машинного навчання, стратегії агрегації рішень в умовах невизначеності та
розрідженості інформації для задач медичної діагностики
Мета та завдання дослідження. Основною метою роботи є підвищення
показників точності, надійності та клінічної релевантності автоматизованого
діагностування захворювань шляхом розробки та програмної реалізації гібридної
ансамблевої системи, що здійснює інтелектуальну агрегацію прогнозів різнорідних
методів машинного навчання.
Для досягнення поставленої мети необхідно вирішити такі завдання:
1 Проаналізувати сучасний стан методів машинного навчання в медичній
діагностиці, виявити обмеження існуючих підходів при роботі з розрідженими
та незбалансованими даними.
2 Обгрунтувати і побудувати архітектуру базових моделей та мета-класифікатора
для створення гетерогенного ансамблю.
3 Здійснити програмну реалізацію гібридної системи діагностики та провести
експериментальне дослідження її ефективності з використанням метрик Top-K
Accuracy.
4 Розробити рекомендації щодо практичного застосування створеної системи як
інструменту підтримки прийняття лікарських рішень.
9
Методи досліджень. У роботі використано комплекс сучасних методів
аналізу даних:
• Теоретичні методи – аналіз та узагальнення наукових джерел для виявлення
проблем діагностики в умовах невизначеності.
• Математичні та статистичні методи – методи лінійної алгебри для векторного
представлення простору ознак та операцій з матрицями, методи
математичної статистики для розвідувального аналізу даних, обробки
викидів та боротьби з дисбалансом класів.
• Методи машинного навчання – імовірносні класифікатори (наївний
баєсівський класифікатор та логістична регресія) як базові моделі.
Ансамблеві методи (випадковий ліс та XGBoost) для підвищення стійкості до
шуму. Методи глибокого навчання (багатошарові перцептрони) для
виявлення нелінійних патернів. Метод стекінгу для агрегації прогнозів.
• Комп’ютерні та емпіричні методи – програмна реалізація розроблених
архітектур мовою Python з використанням бібліотек для обробки даних
(Pandas, NumPy) та машинного навчання (Scikit-learn, XGBoost,
Keras/TensorFlow). Порівняльний аналіз ефективності алгоритмів за
метриками Top-K Categorical Accuracy та Log-loss.
Наукова новизна отриманих результатів:
• Удосконалено метод автоматизованої діагностики захворювань шляхом
створення гібридного ансамблю, який інтегрує лінійні класифікатори з
нелінійними моделями різної математичної природи, що дозволяє
забезпечити статистичну незалежність помилок та підвищити надійність
прогнозу.
• Набуло подальшого розвитку застосування метрики Top-K Accuracy як
основного критерію ефективності діагностичних систем, що дозволяє
оцінювати здатність моделі формувати коректний ранжований список
ймовірних діагнозів, а не лише одну детерміновану відповідь, що краще
відповідає потребам клінічної практики
10
Практичне значення одержаних результатів. На основі проведених
досліджень розроблено програмний комплекс медичного асистента, який дозволяє
здійснювати експрес-діагностику пацієнтів на основі введених симптомів. Система
генерує ранжований перелік з найбільш вірогідних діагнозів зі значенням рівня
впевненості для кожної моделі.
Апробація результатів. Основні положення та результати дослідження
доповідалися й обговорювалися на II Міжнародній науково-практичній
студентській конференції «IT-простір сьогодення: тенденції, інновації та
перспективи розвитку».
11
1 ОГЛЯД МЕТОДІВ МАШИННОГО НАВЧАННЯ В МЕДИЧНІЙ
ДІАГНОСТИЦІ
1.1 Еволюція методів автоматизованої діагностики
1.1.1 Етап експертних систем та логічних правил (1970 р.)
Історично першими способами автоматизації діагностики були експертні
системи на основі правил(Rule-Based Systems), класичним прикладом яких є
система MYCIN, розроблена в Стенфордському університеті для діагностики
інфекційних захворювань крові. Такі системи базувалися на використанні логічних
конструкцій «ЯКЩО-ТО», сформованих лікарями-експертами. Хоча такі системи
показували високу інтерпретованість, вони виявилися тупиковою гілкою еволюції
через низку фундаментальних обмежень. По-перше, процес вилучення та
формалізації інтуїтивних знань експертів був надсвичайно трудомістким та
повільним. По-друге, такі системи не могли адаптуватися до нових даних без
повного переписування коду і часто давали збій при зустрічі з суперечливими або
неповними клінічними картинами, які не були явно передбачені правилами.
З теоретичної точки зору, обмеженість підходів експертних систем полягала
у використанні виключно дедуктивного методу міркувань. Система могла
оперувати лише тим простором знань, який був явно запрограмований експертом.
Це призвело до проблеми, відомої як «вузьке місце набуття знань» [4]. Крім того,
жорстка булева логіка правил не дозволяла коректно моделювати невизначеність,
притаманну біологічним системам, що згодом стимулювало перехід до
стохастичних моделей.
1.1.2 Період імовірнісних моделей та лінійної класифікації (1990 р.)
З накопиченням цифрових даних наступним етапом стало застосування
класичних імовірнісних методів. Наївний баєсівський класифікатор завдяки
припущенню про незалежність ознак міг бути ефективним навіть на малих
вибірках, але у медицині ознаки можуть часто корелювати, що порушує базове
припущення методу.
12
Логістична регресія дозволяла оцінити не тільки ймовірність наявності
захворювання, але й кількісно виміряти вплив кожного фактора ризику через
коефіцієнти регресії. Проте, як лінійний класифікатор, вона не здатна моделювати
складні нелінійні взаємозв’язки між симптомами, що обмежувало її точність у
складних діагностичних задачах.
1.1.3 Етап статистичного навчання (2000 р.)
На межі століть домінування перейшло до методів, що базуються на теорії
статистичного навчання. Центральне місце посів метод опорних векторів (SVM).
Його революційність полягала у використанні «kernel trick», що дозволило
переводити лінійно нероздільні дані у простір ознак вищої розмірності, де їх
розділення ставало можливим за допомогою лінійної гіперплощини. Це вирішило
проблему нелінійності без використання нейромереж, які на той час були важкими
у навчанні. Паралельно розвивався напрямок ансамблевого навчання. Теоретичним
проривом стало розуміння того, що комбінація слабких моделей, помилки яких
некорельовані, здатна необмежено зменшувати дисперсію помилки, що дозволило
створювати стійкі робастні моделі, які стали стандартом для табличних медичних
даних.
1.1.4 Етап глибокого навчання та нейронних мереж (2010 р.)
Сучасний етап характеризується домінуванням методів «чорної скрині»,
зокрема штучних нейронних мереж та глибокого навчання. На відміну від
попередників багатошарові перцептрони здатні апроксимувати будь-яку
неперервну функцію, знаходячи приховані патерни у даних. Використання функції
активації та глибоких архітектур дозволяє моделювати складні нелінійні
залежності між симптомами та хворобами, що значно підвищує точність порівняно
з лінійними моделями. Головним недоліком є важкість інтерпретування
результатів, що вимагає розробки додаткових модулів для пояснення.
13
1.2 Використання машинного навчання в клінічній медицині
Інтеграція методів машинного навчання та штучного інтелекту у систему
охорони здоров’я є одним із найбільш значущих технологічних трендів XXI
століття, що трансформує саму філософію лікарської практики. Цей процес
зумовлює фундаментальний парадигмальний зсув від реактивної моделі медицини,
коли лікування хвороби відбувається після появи клінічних симптомів, до
концепції P4 Medicine:
• predictive – передбачення ризиків до їх реалізації
• preventive – запобігання розвитку патологій
• personalized – адаптація терапії під унікальний профіль пацієнта
• participatory – активне залучення пацієнта до контролю власного здоров’я
1.2.1 Аналіз медичних зображень, радіологія та цифрова патологія
Найбільш зрілою та успішною сферою застосування машинного навчання є
обробка візуальних даних. Алгоритми комп’ютерного зору, зокрема глибокі
згорткові мережі та трансформери візуального типу, демонструють результати, що
є порівнянними або навіть перевершують точність досвідчених лікарів-радіологів
у задачах детекції та сегментації [5].
Сучасні AI-системи здатні не просто знаходити пухлини, а й вилучати
кількісні ознаки з зображень, які невидимі для людського ока. Це дозволяє
автоматично виявляти злоякісні новоутворення на мамограмах, вузлики в легенях
на КТ та метастази на МРТ. Системи CAD виступають як «друга пара очей»,
знижуючи відсоток пропущених патологій через втому лікаря [6].
ML-алгоритми аналізують гістологічні слайди високої роздільної здатності
для підрахунку мітозів, оцінки ступеня агресивності пухлини та виявлення
рідкісних біомаркерів, що значно прискорює постановку онкологічного діагнозу.
Нейромережі, навчені на сотнях тисяч клінічних знімків, класифікують широкий
спектр шкірних уражень з точністю понад 95%, що робить скринінг доступним
навіть через мобільні додатки [7].
14
Автоматизована діагностика діабетичної ретинопатії та вікової макулярної
дегенерації шляхом сегментації судин очного дна дозволяє проводити масовий
скринінг пацієнтів у групах ризику без участі вузькопрофільних спеціалістів.
1.2.2 Прогностична аналітика на основі електронних медичних записів
Електронні медичні карти перетворилися на масивні сховища гетерогенних
даних, що включають структуровану інформацію, на кшталт лабораторних
показників, та неструктурований текст, як лікарські нотатки. Застосування
алгоритмів класичного навчання у поєднанні з методами обробки природної мови
дозволяє вирішувати комплексні задачі.
Динамічна оцінка ймовірності несприятливих подій, таких як повторна
госпіталізація протягом 30 днів, розвиток сепсису в умовах реанімації або
виникнення серцево-судинних патологій у найближчій перспективі.
Сучасні мовні моделі здатні автоматично вилучати симптоми, діагнози та
призначення з текстових описів, перетворюючи їх на структуровані дані для
подальшого аналізу.
ML-системи дозволяють автоматизувати сортування пацієнтів у
приймальних відділеннях на основі первинних симптомів, життєвих показників та
історії хвороби, визначаючи пріоритетність надання допомоги та оптимізуючи
навантаження на медичний персонал [8].
1.2.3 Прискорення розробки лікарських препаратів
Традиційний процес розробки нових ліків займає приблизно 10-15 років і
коштує мільярди доларів, причому більшість кандидатів відсіюється на пізніх
стадіях. Машинне навчання революціонізує цю сферу через методи in silico
Використання генеративних змагальних мереж та варіаційних автоенкодерів
дозволяє створювати нові молекулярні структури з наперед заданими
фармакологічними властивостями de novo.
15
Проривні моделі, такі як AlphaFold, вирішили 50-річну проблему фолдингу
білків, точно прогнозуючи їх тривимірну структуру. Це дозволяє моделювати
взаємодію потенційних ліків з мішенями з безпрецедентною точністю [9].
ML-моделі прогнозують абсорбцію, розподіл, метаболізм, виведення та
токсичність речовин ще до синтезу, дозволяючи відсіяти небезпечні або
неефективні сполуки на ранніх етапах.
1.2.4 Геноміка та персоналізована медицина
Секвенування геному людини генерує терабайти необроблених даних, які
неможливо інтерпретувати без потужних алгоритмів. ML-алгоритми шукають
складні кореляції між тисячами генетичних варіацій та схильністю до
мультифакторних захворювань, дозволяючи формувати індивідуальні плани
профілактики. Аналіз мутаційного профілю пухлини дозволяє алгоритмам
підбирати таргетну терапію, яка буде ефективною саме проти конкретного клону
ракових клітин, оминаючи здорові тканини. Прогнозування індивідуальних реакцій
пацієнта на медикаменти на основі його генетичного паспорту.
1.2.5 Виклики та проблеми впровадження
Незважаючи на вражаючий прогрес, широка імплементація машинного
навчання у рутинну клінічну практику стикається зі значними перешкодами.
Глибокі нейронні мережі часто приймають рішення непрозоро. Для лікарів
критично важливо розуміти чому алгоритм поставив певний діагноз. Саме тому
великий попит на методи пояснювального штучного інтелекту, які дозволяють
візуалізувати внесок ознак у рішення.
Вимоги законодавства накладають суворі обмеження на збір та обробку
даних. Це стимулює розвиток методів федеративного навчання, де модель
навчається на децентралізованих даних без їх передачі на єдиний сервер.
Відсутність єдиних стандартів даних у різних лікарнях ускладнює створення
універсальних моделей, здатних працювати в різних клінічних середовищах.
16
Таким чином, використання машинного навчання в медицині є не просто
автоматизацією рутинних процесів, а створення концепції «Розширеного
інтелекту». У цій парадигмі алгоритм бере на себе обробку великих масивів даних
і виявлення прихованих закономірностей, тоді як лікар бере на себе функцію
верифікації, емпатії та прийняття фінального етичного і клінічного рішення.
1.3 Стан наукових досліджень у сфері медичної діагностики
Значний масив досліджень фокусується на глибокому порівняльному аналізі
перевірених часом алгоритмів (рис. 1.1).
Рисунок 1.1 – Розподіл наукових публікацій за медичними напрямками та роками
Автори на великих вибірках демонструють, що для табличних наборів даних,
де ознаки є чітко визначеними, алгоритми випадкового лісу, наївного ьайєсу та
метод опорних векторів забезпечують високу стабільність та залишаються
«базовим стандартом» для галузі [10-11]. Але попри високу точність на
збалансованих даних існує суттєве обмеження цих методів. Лінійні та прості
ймовірносні моделі часто не здатні ефективно моделювати складні нелінійні
17
кореляції та перехресні взаємодії між симптомами, що дає «стелю» точності на
рівні 85-90% [12].
Методи глибокого навчання є альтернативним напрямком, який
зосереджений на використанні глибоких нейронних мереж [13]. Глибокі моделі є
вибагливими до обсягу даних, а в умовах медичної статистики, де дані про рідкісні
захворювання є обмеженими, застосування глибоких мереж без належної
регуляризації призводить до перенавчання.
Більшість досліджень фокусуються або виключно на класичних методах, або
на методах глибокого навчання, рідко розглядаючи їх гібридні комбінації в межах
одного ансамблю. У багатьох роботах(наприклад, [14]) моделі налаштовані на
видачу одного найімовірнішого класу.
Таким чином, наукова новизна даної роботи полягає у розробці гібридного
ансамблю, який інтегрує лінійні класифікатори з нелінійними базовими моделями,
та впровадженні метрики Top-K Accuracy як основного критерію ефективності, що
має збільшити практичну цінність такої системи.
1.4 Особливості та проблеми аналізу медичних даних
1.4.1 Багатовимірність простору ознак
Сучасні діагностичні системи еволюціонували від простих моделей з
обмеженою кількістю змінних до комплексних платформ, що оперують сотнями, а
іноді й тисячами параметрів пацієнтів. Простір ознак формується шляхом агрегації
гетерогенних даних, це можуть бути як і базові клінічні симптоми, так і кількісні
показники лабораторних досліджень або результати високоточних генетичних
тестів.
У математичному сенсі кожному клінічному випадку ставиться у
відповідність вектор ознак x = (x1,x2,…,xn) у n-вимірному просторі, де кількість
ознак n сягає значень порядку 102 – 103. У нашому дослідженні ми розглядаємо
бінарний простір, де кожна координата сигналізує про наявність або відсутність
певного симптому, така висока розмірність неминуче призводить до проблеми,
18
відомої в теорії машинного навчання як «прокляття розмірності», термін введений
Річардом Беллманом.
Суть цього феномену полягає в тому, що при лінійному збільшенні кількості
вимірів експоненційно зростає об’єм простору ознак. Наприклад, додавання
кожного нового бінарного симптому подвоює кількість можливих комбінацій. Щоб
зберегти статистичну значущість моделі та заповнити простір з тією ж щільністю,
що й у низьковимірному випадку, необхідний обсяг навчальних даних повинен
зростати експоненційно, що є фізично недосяжним в умовах реальної медичної
практики, де збір даних є дорогим та обмеженим процесом.
Наслідком високої розмірності є геометричні спотворення, які впливають на
роботу метричних алгоритмів. У просторах високої розмірності спостерігається
явище концентрації міри, де відстань між будь-якими двома випадковими точками
стає приблизно однаковою, а поняття найближчого сусіда втрачає свій
дискримінативний зміст. Це ускладнює роботу класичних методів кластеризації та
класифікації, що базуються на Евклідовій метриці.
1.4.2 Проблема розрідженості даних
Специфічною характеристикою наборів даних, сформованих на основі
анамнезу пацієнтів, є їхня екстремальна розрідженість. У задачах діагностики
простір ознак формується як об’єднання всіх відомих симптомів, кількість яких
може сягати сотень або тисяч. Водночас з цим, клінічна картина конкретного
пацієнта зазвичай складається з вкрай обмеженого набору активних симптомів.
Математично це означає, що вектор ознак xi складається переважно з нулів, а
щільність заповнення матриці даних часто становить менше 1%. Така структура
даних створює фундаментальні перешкоди для стандартних алгоритмів машинного
навчання, розроблених для щільних векторів.
При тренуванні моделей на розріджених даних існує ризик, що алгоритм
навчиться передбачати клас, спираючись на відсутність симптомів, оскільки вони
складають статистичну більшість. Це призводить до створення тривіальних
моделей, які ігнорують рідкісні, але діагностично значущі маркери хвороб.
19
1.4.3 Незбалансованість класів
Ключовим методологічним викликом при обробці реальних масивів
медичних даних є виражена асиметрія у розподілі даних . Обмежена кількість
поширених патологій формують мажоритарні класи, тоді як сотні рідкісних або
специфічних захворювань представлені у вибірках одиничними клінічними
випадками. Цей дисбаланс створює суттєві перешкоди для коректного
функціонування стандартних алгоритмів машинного навчання
Переважна більшість стандартних функцій втрат обчислює помилку як
середнє арифметичне значення по всій вибірці, але за умов співвідношення класів
на рівні 100 до 1, внесок міноритарного класу у формування загального градієнта
помилки стає статистично незначущим. У процесі оптимізації модель схильна
мінімізувати глобальну помилку шляхом прогнозування виключно мажоритарного
класу, ігноруючи при цьому рідкісні висновки.
Через це виникає парадокс точності. Даний феномен характеризується
ситуацією, за якої модель демонструє високі показники формальної точності,
залишаючись при цьому неефективною для практичного застосування.
У класичних задачах машинного навчання помилки першого та другого роду
часто розглядаються як еквівалентні. Проте у сфері медичної діагностики
спостерігається принципова відмінність у наслідках помилкових рішень:
• Помилка I роду (False Positive): хибнопозитивна діагностика захворювань у
здорового пацієнта. Наслідки включають додаткові діагностичні процедури,
психоемоційне напруження та фінансові витрати, що є небажаним, але
зазвичай не несе безпосередньої загрози життю.
• Помилка II роду (False Negative): хибнонегативний результат, або ж пропуск
патології у хворого пацієнта. Наслідки можуть включати відсутність
своєчасного лікування, прогресування захворювання та летальний кінець.
Стандартні алгоритми, що не адаптовані до чутливості вартості помилок,
мають тенденцію до мінімізації загальної кількості помилок, що призводить до
максимізації кількості критичних пропусків рідкісних діагнозів. У зв’язку з цим,
20
при проектуванні діагностичних систем необхідним є впровадження
спеціалізованих методів, таких як зважування класів для загальної компенсації
дисбалансу та точкове дублювання для критично малих класів-одинаків, з метою
надання пріоритету ідентифікації саме міноритарних патологій.
1.5 Алгоритми машинного навчання
Для вирішення задач медичної діагностики застосовується великий спектр
алгоритмів, кожен з яких має як свої переваги, так і обмеження в контексті роботи
з бінарними симптомами даних. Вибір конкретного методу завжди є компромісом
між точністю, швидкістю роботи та інтерпретованості.
1.5.1 Лінійна регресія
Лінійна регресія є базовим статистичним методом, призначеним для
моделювання лінійної залежності між скалярною залежною змінною та однією або
декількома незалежними змінними.Метод базується на мінімізації суми квадратів
похибок. Хоча лінійна регресія не використовується безпосередньо для задач
класифікації хвороб, вона є теоретично фундаментальною для розуміння принципу
зважування ознак. У медичних задачах вона дозволяє оцінити силу впливу окремих
факторів ризику на прогресування хвороби, якщо цільова змінна є неперервною.
1.5.2 Логістична регресія
Логістична регресія є адаптацією лінійного підходу до задач класифікації і
довгий час була «золотим стандартом» у медичній статистиці. Вона моделює
ймовірність належності пацієнта до класу хвороби за допомогою сигмоїдальної
функції активації, яка перетворює лінійну комбінацію ознак у значення ймовірності
в межах (0,1). Важливою перевагою цього методу є висока інтерпретованість,
коефіцієнти, які показують напрямок та силу впливу кожного симптому можна
трансформувати у відношення шансів, що є стандартною метрикою в епідеміології.
21
Головний недолік методу – лінійність границі прийняття рішень, що робить модель
нездатною вирішувати задачі з нелінійною взаємодією симптомів.
1.5.3 Наївний баєсівський класифікатор
Це ймовірносний алгоритм, що базується на теоремі Байєса з припущенням
про те, що всі ознаки вхідних даних є повністю незалежними одна від одної. Таке
спрощення дозволяє звести складну задачу багатовимірної класифікації до серії
простих обчислень, що робить метод надзвичайно швидким та обчислювально
ефективним, особливо для просторів високої розмірності. Головною перевагою є
здатність давати прийнятний результат навіть на малих вибірках даних. Однак,
суттєвим недоліком є те, що в реальних задачах, особливо медичних, ознаки часто
корелюють між собою, а ігнорування цих залежностей алгоритмом призводить до
зниження точності прогнозування.
1.5.4 Метод k-найближчих сусідів
Це непараметричний алгоритм «лінивого навчання», який не будує модель
заздалегідь, а класифікує новий об’єкт на основі голосування k найближчих до
нього об’єктів з навчальної вибірки. Перевагами такого методу є простота
реалізації, відсутність тривалого етапу навчання, а також здатність адаптуватися до
локальних особливостей даних. Але в той же час алгоритм дуже чутливий до
«прокляття розмірності», де у просторі з сотнями симптомів поняття «відстані»
втрачає зміст. Крім того, обчислювальна складність на етапі прогнозування зростає
лінійно з розмірами бази даних, що робить його непридатним до систем реального
часу.
1.5.5 Метод опорних векторів
Цей метод шукає у багатовимірному просторі гіперплощину, що найкраще
розділяє класи з максимальною «смугою розділення». Використання «kernel trick»
дозволяє ефективно працювати з нелінійними даними, неявно проектуючи їх у
22
простір вищої розмірності, де розділення стає можливим. Метод опорних векторів
є потужним інструментом для бінарної класифікації та малих датасетів, але погано
масштабується для задач із великою кількістю класів.
1.5.6 Дерева рішень
Це непараметричний метод навчання з учителем, що використовується як для
задач класифікації, так і для регресії. Принцип роботи алгоритму полягає у
рекурсивному розбитті простору ознак на менші підпростори, формуючи
ієрархічну структуру правил типу «ЯКЩО-ТО». Побудова дерева відбувається за
«жадібним» алгоритмом, де на кожному вузлі обирається ознака та порогове
значення, які забезпечують найкраще розділення класів. Критерієм якості розбиття
виступають метрики, що оцінюють зменшення невизначеності. Головною
перевагою дерев рішень є їхня інтерпретованість, однак, поодинокі дерева мають
суттєвий недолік – високу дисперсію, через що вони схильні до перенавчання.
1.5.7 Випадковий ліс
Випадковий ліс вирішує проблему перенавчання поодиноких дерев шляхом
використання ансамблевого підходу. Це метод, який базується на технології
беггінгу. Суть методу полягає у паралельному навчанні сотень незалежних дерев
рішень. Ключовими особливостями є по-перше бутстреп, завдяки якому кожне
дерево навчається на власній випадковій підвибірці даних, сформованій методом
вибірки з поверненням, а по-друге – випадковий простір ознак, де при кожному
розбитті вузла дерево розглядає не всі доступні симптоми, а лише їх випадкову
підмножину, що зменшує кореляцію між деревами. Фінальний прогноз формується
шляхом мажоритарного голосування для класифікації і усередненням для регресії.
Завдяки усередненню помилок для окремих дерев, метод демонструє високу
стійкість до шуму та викидів, не вимагає нормалізації даних та забезпечує високу
точність без складного налаштування гіперпараметрів.
23
1.5.8 Градієнтний бустинг
Метод ансамблевого навчання, який будує прогностичну модель у вигляді
зваженої суми слабких базових алгоритмів. На відміну від випадкового лісу, де
дерева будуються паралельно і незалежно, у бустингу процес є строго послідовним.
Ідея методу полягає в ітеративному виправленні помилок. Спочатку перша модель
робить грубий прогноз, після обчислюється різниця між реальним значенням та
прогнозом. Наступна модель навчається передбачати саме ці залишки, а не цільову
змінну напряму, процес повторюється, а фінальний результат формується як сума
прогнозів усіх моделей. Математично цей процес є реалізацією методу
градієнтного спуску в просторі функцій. Всі нові дерева додаються до ансамблю
таким чином, щоб мінімізувати задану функцію втрат. Хоч класичний градієнтний
бустинг і забезпечує високу точність, він схильний до перенавчання при великій
кількості ітерацій та низьку швидкість навчання через неможливість
розпаралелювання послідовного процесу.
1.5.9 XGBoost
XGBoost є вдосконаленою реалізацією градієнтного бустингу, яка
оптимізована для швидкості та продуктивності. Ключовою особливістю є
використання регуляризації у цільовій функції, що дозволяє ефективно
контролювати складність моделі та запобігати перенавчанню. Для медичних даних
критично важливою є здатність методу працювати з розрідженими даними.
1.5.10 LightGBM
Розроблений Microsoft, LightGBM використовує принципово інший підхід до
побудови дерев – листове зростання. Це дозволяє будувати глибші та складніші
дерева, що часто призводить до вищої точності. Для прискорення роботи метод
використовує гістограмні алгоритми та техніку GOSS, яка відкидає екземпляри з
малими градієнтами, фокусуючись на складних випадках.
24
1.5.11 CatBoost
Алгоритм розроблений для ефективної роботи з категоріальними ознаками.
Головною інновацією є використання симетричних дерев рішень, які мають
однакову структуру розбиття на всіх рівнях. Через це процес передбачення є
швидким та стійким до перенавчання. CatBoost використовує метод
впорядкованого бустингу для боротьби зі зміщенням прогнозу, що є поширеною
проблемою в інших алгоритмах бустингу на малих датасетах.
1.5.12 Штучні нейронні мережі
Багатошарові перцептрони та глибокі мережі імітують роботу людського
мозку через систему шарів нейронів. Завдяки нелінійним функціям активації та
алгоритму зворотного поширення помилки, вони здатні виявляти надзвичайно
складні, ієрархічні патерни у даних. У задачах з великою кількістю класів
нейромережі часто перевершують інші методи, оскільки здатні формувати
компактні векторні представлення для вхідних даних. Це дозволяє моделі розуміти,
що певні групи симптомів корелюють між собою, навіть якщо вони не зустрічались
у навчальній вибірці.
1.6 Теоретичні основи ансамблевих методів
Ансамблеве навчання є стратегічною парадигмою машинного навчання, що
базується на гіпотезі, згідно з якою агреговане рішення групи різнорідних
алгоритмів є статистично більш точним та робастним, ніж рішення будь-якого
окремого його члена. У контексті медичної діагностики, де ціна помилки є
критично високою, ансамблювання виступає не просто способом підвищення
метрик точності, а механізмом забезпечення надійності та стійкості системи до
аномалій у даних.
Фундаментальним обґрунтуванням ефективності ансамблів є теорема про
журі присяжних [15]. Вона стверджує, що якщо кожен індивідуальний
класифікатор має ймовірність правильного рішення більше 0,5 і помилки
25
класифікаторів є статистично незалежними, то ймовірність правильного рішення
більшістю голосів прямує до 1 при збільшенні кількості моделей.
На додаток до імовірнісного підходу теореми про журі, фундаментальне
пояснення ефективності ансамблів дає теорія розкладання помилки, запропонована
Крогом та Ведельсбі [16]. Вона стверджує, що квадратична помилка гарантовано
менші або дорівнює середній квадратичній помилці окремих моделей, і ця
залежність описується рівнянням(1.1):
= ?̅? − ?̅? , (1.1)
де – квадратична помилка ансамблю;
?̅? – зважена середня помилка базових моделей;
?̅? – ступінь декорельованості прогнозів між членами ансамблю.
Це призводить до ключової вимоги при побудові ансамблю – забезпечення
різноманітності. Для того щоб ансамбль працював ефективно, помилки базових
моделей мають бути некорельованими. У даній роботі це досягається шляхом
об’єднання алгоритмів принципово різної математичної природи, що дозволяє
створювати стійкі робастні моделі (рис. 1.2).
Рисунок 1.2 – Компроміс між зміщенням та дисперсією
26
1.6.1 Беггінг
Метод побудови однорідних ансамблів, метою якого є зменшення дисперсії
моделі та запобіганню перенавчанню. Алгоритм працює за системою паралельного
навчання. З вхідного набору даних формується N нових підвибірок шляхом
випадкового відбору спостережень із поверненням. Це означає, що деякі пацієнти
можуть потрапити в одну підвибірку кілька разів, а інші не потрапити зовсім. На
кожній з цих підвибірок незалежно один від одного навчається свій базовий
алгоритм. Фінальне рішення приймається колективно. Для задач регресії
результати всіх моделей усереднюють, а для класифікації застосовують
мажоритарне голосування. Класичним випадком беггінгу є випадковий ліс.
Головною перевагою методу в медичних задачах є висока стійкість до викидів та
шуму в даних, оскільки помилка окремої моделі нівелюється правильними
відповідями більшості.
1.6.2 Бустинг
Сімейство алгоритмів для побудови ансамблів, які перетворюють набір
слабких моделей на одну сильну. На відміну від беггінгу, тут моделі будуються
послідовно, а не паралельно. Ключова ідея методу полягає в ітеративному
виправленні помилок, коли кожна наступна модель в ансамблі фокусується на
виправленні помилок, допущених композицією всіх попередніх моделей.
Фінальний прогноз формується як зважена сума прогнозів усіх моделей.
Математично бустинг спрямований на зменшення зміщення моделі. Сучасні
реалізації, такі як XGBoost, LightGBM та CatBoost, використовують регуляризацію
для контролю перенавчання та оптимізовані алгоритми пошуку розбиттів, що
робить їх стандартом для табличних даних.
27
1.6.3 Стекінг та Блендінг
Це методи різнорідного ансамблювання, які використовують дворівневу
архітектуру навчання.
На першому рівні навчається набір різноманітних моделей. Сила підходу
полягає в тому, що ці моделі мають різну математичну природу і роблять помилки
на різних типах даних.
На другому рівні прогнози моделей першого рівня виводяться як вхідні
ознаки для нової моделі – мета-класифікатора. Мета-модель вчиться ефективно
комбінувати думки базових експертів, визнаючи, кому з них варто довіряти в
конкретній ситуації. Мета-модель не просто усереднює результати, а виконує
функцію динамічної кореляції помилок, навчаючись ідентифікувати який з базових
алгоритмів є більш компетентним у конкретній області простору ознак, і надає його
голосу більшої ваги при прийнятті фінального рішення.
Різниця методів полягає в тому, що стекінг використовує крос-валідацію для
генерації мета-ознак, що дозволяє використовувати весь обсяг даних. Тоді як
блендінг використовує просте розбиття на відкладену вибірку, що швидше
обчислювати, але менш ефективно при малій кількості даних.
1.7 Постановка задачі дослідження
Проведений у першому розділі критичний аналіз методів машинного
навчання показав, що сучасна медична діагностика стикається з проблемою вибору
інтерпретованістю та точністю. Встановлено, що класичні лінійні моделі є
прозорими, але не здатні охопити складні нелінійні залежності симптоматики.
Водночас потужні методи глибокого навчання часто страждають від перенавчання
на специфічних даних та працюють як «чорна скринька».
Крім того, виявлено, що специфіка вхідних даних створює суттєві бар’єри
для стандартних алгоритмів:
28
• Проблема розмірності та розрідженості. Простір ознак є багатовимірним, але
вектори симптомів заповнені переважно нулями, що ускладнює роботу
метричних класифікаторів.
• Дисбаланс класів. Значна перевага поширених хвороб над рідкісними у
навчальних вибірках призводить до зміщення прогнозів у бік мажоритарних
класів та ігнорування критично важливих діагнозів.
Спираючись на теорему про «відсутність безкоштовних обідів», яка
стверджує неможливість існування одного універсального алгоритму для всіх
задач, науково-прикладною проблемою дослідження є необхідність створення
комбінованої системи, яка б нівелювала недоліки окремих методів.
1.8 Проміжні висновки
Методи медичного діагностування пройшли шлях від детермінованих
експертних систем на основі правил до стохастичних моделей та алгоритмів
глибокого навчання. Найбільш значущі результати було досягнуто в радіології, де
алгоритми комп’ютерного зору ефективно виявляють патології на знімках; у
прогностичній аналітиці, де моделі оцінюють ризики на основі електронних карт;
у фармакології для прискорення розробки ліків; у геноміці для персонілізації
терапії. Проте широка імплементація цих технологій стимується проблемами
інтерпретованості рішень та складністю інтеграції різнорідних даних.
Систематизація методів класифікації виявила, що жоден із існуючих
алгоритмів не є універсальним для медичних задач. Базові статистичні методи, такі
як логістична регресія та наївний байєсівський класифікатор, забезпечують високу
швидкість та прозорість, але мають обмежену точність через нездатність
моделювати складні нелінійні взаємодії симптомів. Метод k-найближчих сусідів
та метод опорних векторів ефективні на малих вибірках, але погано
масштабуються. Дерева рішень, випадковий ліс та градієнтний бустинг
демонструють високу стійкість до шуму, тоді як нейронні мережі мають найвищу
29
апроксимаційну здатність, але схильні до перенавчання на незбалансованих
вибірках.
Дослідження специфіки біомедичних даних виявило три критичні проблеми.
«Прокляття розмірності» при роботі з великим простором ознак, екстремальна
розрідженість векторів та суттєвий дисбаланс класів, що призводить до
ігнорування рідкісних патологій. Теоретично обгрунтовано, що вирішення цих
проблем можливе через застосування гібридних ансамблів. Поєднання різнорідних
моделей дозволяє забезпечити статистичну незалежність помилок та підвищити
надійність діагностики.
30
2 МЕТОДИКА ПІДГОТОВКИ ДАНИХ ТА ПРОЕКТУВАННЯ
АРХІТЕКТУР МОДЕЛЕЙ
2.1 Попередня обробка даних
Якість роботи алгоритмів машинного навчання, особливо в медичній сфері,
критично залежить від етапу підготовки даних. Етап попередньої обробки та
розвідувального аналізу є фундаментом дослідження, оскільки необроблені
медичні дані часто містять шум, пропуски або мають формат непридатний для
безпосередньої подачі на вхід алгоритмам.
2.1.1 Опис даних
В якості основи для експериментального дослідження було використано
відкритий масив даних «Disease-Symptom Dataset», валідований фахівцями World
Bank Group. Структура датасету є вибіркою з 246 946 клінічних випадків. Простір
ознак сформований на основі 377 унікальних симптомів, які виступають
предикторами для класифікації. Цільова змінна представлена 773 класами
захворювань.
2.1.2 Характеристика даних
Вхідний набір даних являє собою структуровану таблицю симптомів, де
кожен рядок відповідає унікальному клінічному випадку, а стовпці репрезентують
простір ознак та цільову змінну. Датасет не містить персональних даних, що
відповідає вимогам етичних норм.
Векторне представлення: Кожен пацієнт описується бінарним вектором:
= (1, 2, … , n) ,
де n – загальна кількість унікальних симптомів.
Бінарна природа: значення i = 1 свідчить про наявність i-го симптому, а
i = 0 – про його відсутність.
Розмірність: кількість ознак значно перевищує кількість активних симптомів
у одного пацієнта.
31
2.1.3 Аналіз дисбалансу класів
Аналіз цільової змінної виявив суттєвий дисбаланс класів. Найбільш
представлений клас містить 1219 прикладів, тоді як найменш представлений – 1.
Це обґрунтовує використання стратифікованого розбиття при валідації та зважених
функцій втрат при навчанні. Але наявність класів, які представлені в наборі даних
малою кількістю екземплярів, унеможливлює проведення коректного
стратифікованого розбиття вибірки на навчальну та тестову. Щоб вирішити
проблему таких класів, замість видалення рідкісних хвороб з розгляду було
застосовано дублювання.
2.1.4 Аналіз розрідженості даних
В ході EDA виявлено, що матриця ознак є сильно розрідженою.
Співвідношення ненульових елементів до загальної кількості становить лише
1,41% і це відповідає реальній практиці, де у пацієнта може бути лише декілька
симптомів із сотень можливих (рис. 2.1).
Рисунок 2.1 – Розподіл частоти симптомів
32
З теоретичної точки зору, роботу з такими високовимірними розрідженими
векторами можна описати в рамках Гіпотези многовидів [17]. Ця гіпотеза
стверджує, що реальні дані не розподілені рівномірно на всьому n-вимірному
просторі ознак, а сконцентровані поблизу певних нелінійних підмноговидів значно
меншої розмірності.
Проблема розрідженості створює ситуацію, коли більшість ознак мають нульову
ентропію для конкретного пацієнта, що ускладнює оцінку щільності розподілу
ймовірностей. У контексті метричних алгоритмів це призводить до втрати
дискримінативної здатності Евклідової відстані, оскільки в високовимірному
просторі відстані між будь-якими парами точок стають майже однаковими. Саме
тому для ефективної класифікації необхідно використовувати моделі, здатні
формувати нелінійні розділяючі гіперповерхні або працювати з підпросторами
ознак.
2.1.5 Візуалізація простору
Візуалізація простору методом PCA (рис. 2.2) демонструє, що класи не є
лінійно роздільними у просторі ознак низької розмірності. Це свідчить про
необхідність застосування моделей з високою роздільною здатністю для побудови
складних нелінійних границь рішень.
33
Рисунок 2.2 – Візуалізація простору симптомів
2.1.6 Кодування цільової змінної
Цільова змінна diseases містить 772 унікальні класи, для її обробки
застосовано Factorization для створення Dict («Індекс <> Назва»). Це забезпечує
швидке декодування результатів.
2.1.7 Методологія формування вибірок
Для валідації застосовано метод Hold-out validation. Пропорції навчальної та
тестової вибірки розділені у співвідношенні 80\20. Вхідні дані приведені до типу
bool.
34
2.2 Логістична модель
Логістична регресія є адаптацією лінійного підходу до задач класифікації і
тривалий час залишалася «золотим стандартом» у медичній статистиці. В основі
методу лежить гіпотеза, що логарифм відношення шансів лінійно залежить від
вхідних ознак.
Для задач бінарної класифікації модель прогнозує ймовірність належності
пацієнта до позитивного класу (y=1) за допомогою сигмоїдальної функції активації
σ(z), яка відображає вихід лінійної комбінації ознак у діапазон (0,1):
1
( = 1|) = ( + ) = , (
2.1)
1 + −( +)
де – вектор ваг, що характеризує внесок кожного симптому;
b – зсув.
Оскільки в дослідженні розглядається мультикласова класифікація, була
використана мультиноміальна логістична регресія, яка розглядає задачу
класифікації як оцінку апостеріорної ймовірності. У цьому випадку модель будує
K лінійних гіперплощин, виходи яких нормалізуються функцією Softmax:
+
( = |) = () = , ( )
2.2
∑ +
=1
де k – вектор ваг для k-го класу;
bk – зміщення.
Softmax гарантує, що сума ймовірностей всіх класів дорівнює одиниці, що
дозволяє інтерпретувати вихід як розподіл ймовірностей. Модель навчається
шляхом мінімізації функції втрат категоріальної перехресної ентропії.
Враховуючи високу розмірність даних та велику кількість класів, стандартні
методи оптимізації є обчислювально витратними. Планується використання
алгоритмів SAGA або L-BFGS, які спеціально розроблені для задач великої
розмірності та можуть працювати з розрідженими даними. Для запобігання
перенавчанню та мультиколінеарності між симптомами використовується l2-
регуляризація (рис. 2.3).
35
Рисунок 2.3 – Архітектура мультиноміальної логістиної регресії
2.3 Наївний байєсівський класифікатор
Метод базується на імовірносному підході до класифікації з використанням
теореми Байєса та «наївного» припущення про повну незалежність ознак одна від
одної (рис 2.4). У контексті діагностики це означає, що алгоритм розглядає появу
кожного симптому як подію, не пов’язану з наявністю інших симптомів, за умови
фіксованого діагнозу. Якщо x = (x1,x2,…,xn) – вектор симптомів, то фінальний
діагноз ′ визначається за принципом максимальної апостеріорної ймовірності:
′ = () ∏ (|) , (2.3)
=1
де () – апріорна ймовірність хвороби k;
(|) – умовна ймовірність наявності симптому xi при захворюванні k,
добуток використовується через припущення про незалежність подій.
Специфіка застосування методу в даній роботі враховує бінарну природу
вхідних даних. Для цього обрано модель Bernoulli Naive Bayes, яка явно працює з
булевими ознаками. Це дозволяє досягти високої швидкості навчання та
прогнозування навіть на великому просторі ознак. Водночас, через ігнорування
36
кореляції між симптомами, оцінки ймовірності можуть бути зміщеними, тому
даний алгоритм використовується в роботі переважно як базовий рівень для
перевірки складніших ансамблевих моделей.
Рисунок 2.4 – Схема класифікації методом байєсівського класифікатора
2.4 Алгоритм випадкового лісу
Метод Random Forest базується на концепції зменшення дисперсії шляхом
побудови множини декорельованих дерев рішень (2.5). Кожне дерево навчається
на бутстреп-вибірці, а при розщеплені вузлів розглядається лише випадкова
підмножина ознак. Задача класифікації вирішується шляхом мажоритарного
голосування базових алгоритмів. Якщо N – кількість дерев в ансамблі, а hn(x) –
прогноз n-го дерева для вектора симптомів x, то фінальний діагноз ′ визначається
як клас, що набрав найбільшу суму голосів:
′ = ∑ (ℎ() = ) , (2.4)
=1
де I() – індикаторна функція, яка дорівнює 1, якщо дерево n проголосувало за
хворобу k, і 0 в іншому випадку.
37
Такий підхід робить модель стійкою до шуму у вхідних даних, оскільки помилки
окремих дерев взаємно компенсуються.
Специфіка побудови моделі в даній роботі враховує високу розрідженість
вектору ознак. Для запобігання перенавчанню розгалуження вузла дерева
відбувається лише за умови наявності у ньому статистично значущої кількості
прикладів. Це фільтрує унікальні комбінації симптомів, які не є репрезентативними
для генеральної сукупності. Зважаючи на швидку збіжність алгоритму на бінарних
даних, розмір ансамблю можна обмежити компактною кількістю естиматорів. Це
дозволить досягнути балансу між точністю та швидкістю, а незалежність побудови
дерев дає можливість повного розпаралелювання обчислень на всіх ядрах
процесора.
Рисунок 2.5 – Схема роботи алгоритму випадкового лісу
2.5 Градієнтний бустинг (XGBoost)
XGBoost реалізує концепцію послідовного бустингу. Математична суть
методу полягає в побудові адитивної композиції алгоритмів, де кожна наступна
модель ft(x) навчається не передбачати цільову змінну безпосередньо, а коригувати
38
залишки, зроблені композицією попередніх моделей (рис 2.6). Прогноз моделі на
кроці t визначається рекурентною формулою:
′() (−1)
= ′
+ (), (2.5)
(−1)
де ′
– прогноз на попередньому кроці;
() – нове дерево рішень, що мінімізує залишковий градієнт;
n – швидкість навчання, яка запобігає перенавчанню.
Рисунок 2.6 – Принцип навчання в алгоримі XGBoost
Специфіка задачі медичної діагностики вимагає не просто класифікації, а
ранжування ймовірностей діагнозів. Тому як цільову метрику було обрано режим
multi:softprob. У цьому режимі вихід ансамблю проходить через функцію Softmax,
повертаючи матрицю ймовірностей розмірності N x K, де N – кількість пацієнтів, а
K – кількість хвороб. Це дозволить інтерпретувати результат як розподіл
впевненості системи, на відміну від режиму multi:softmax, який повертає лише
жорстку мітку найімовірнішого класу, втрачаючи інформацію про альтернативні
діагнози.
Критичною перевагою XGBoost для даного дослідження є вбудований
алгоритм обробки розрідженості – Sparsity-aware Split Finding. Оскільки вхідна
39
матриця симптомів містить понад 95% нульових значень, алгоритм автоматично
вивчає напрямок за замовчуванням у кожному вузлі дерева. Це дозволяє
пропускати нульові елементи при пошуку розгалужень, фокусуючись лише на
наявних симптомах, що набагато прискорює навчання порівняно з класичними
реалізаціями.
З метою оптимізації обчислювальних витрат на великому просторі ознак
було задіяно гістограмний метод побудови дерева. Замість точного сортування
значень ознак, яке має складність N·logN, алгоритм дискретизує безперервні
ознаки у фіксовану кількість кошиків. Це знижує алгоритмічну складність пошуку
оптимального спліту до N, суттєво зменшуючи споживання пам’яті та час
тренування без втрати точності прогнозування.
2.6 Нейронна мережа
В якості основного інструменту класифікації обрано багатошаровий
перцептрон на базі Keras. Для подолання проблеми «інформаційного вузького
місця» розроблено архітектуру з поступовим зменшенням кількості нейронів.
Архітектуру розробленої нейронної мережі наведено на рисунку (2.7). Вона
складається з трьох повнозв’язних блоків, що звужуються. Таке звуження кількості
нейронів дозволяє мережі поступово стискати інформацію, виділяючи найбільш
значущі абстрактні ознаки симптомів перед фінальною класифікацією.
40
Рисунок 2.7 – Структура багатошарового перцептрона
2.6.1 Вибір функції активації
ReLu – приховані шари. На відміну від сигмоїдальних функцій (Sigmoid або
Tanh), похідна ReLu для додатних значень завжди буде 1. Це дозволяє ефективно
навчати глибокі мережі, передаючи градієнт помилки через багато шарів без його
втрати. ReLu зануляє виходи для всіх від’ємних значень, це призводить до того, що
в будь-який момент часу активною є лише частина нейронів. Така поведінка
ідеально корелює з природою вхідних метричних даних, де вектори симптомів є
сильно розрідженими. Також обчислення максимуму відбувається швидше ніж
обчислення експоненти, що пришвидшує процес навчання на великому датасеті.
Softmax – вихідний шар. Перетворює вектор «сирих» виходів мережі у
нормалізований розподіл ймовірностей. Це гарантує, що всі вихідні значення
знаходяться в діапазоні (0,1), а їх сума дорівнює одиниці. Це дозволяє
інтерпретувати рузультат як ймовірність приналежності пацієнта до конкретного
діагнозу.
41
2.6.2 Механізми регуляризації
Для запобігання перенавчанню, яке є типовою проблемою для задач з
великою кількістю параметрів, впроваджено шари Dropout з коефіцієнтом 0.3.
Метод полягає у випадковому виключенні з процесу обчислень певної частини
нейронів під час кожної ітерації навчання. Тобто 30% нейронів прихованого шару
випадковим чином деактивуються. Такий підхід змушує кожен нейрон навчатися
знаходити корисні ознаки самостійно, не покладаючись на наявність інших
специфічних нейронів-сусідів. Важливо зазначити що на етапі використання
навченої моделі механізм Dropout вимикається.
2.6.3 Алгоритм оптимізації та функція втрат
В якості алгоритму оптимізації було обрано Adam, який поєднує переваги
двох інших популярних методів – AdaGrab, який добре працює з розрідженими
градієнтами, та RMSProp, що добре працює з нестаціонарними цілями. У наших
даних вектори симптомів містять багато нулів, для рідкісних симптомів алгоритм
автоматично збільшує крок навчання, що дає змогу моделі ефективно враховувати
навіть рідкісні клінічні ознаки. Також метод демонструє швидшу збіжність до
локального мінімума функції втрат порівняно з стохастичним градієнтним
спуском.
Оскільки розв’язується задача мультикласової класифікації, де кожен пацієнт може
мати лише один основний діагноз із множини взаємовиключних класів, було
використано функцію втрат Sparse Categorical Crossentropy. Математично вона
оцінює розбіжність між істинним розподілом y та прогнозованим розподілом ′:
(, ′) = ∑ (′
) . (2.6)
=1
Використання саме Sparse-версії цієї функції зумовлено форматом цільової
змінної, де при кодуванні векторами One-Hot Encoding кожна хвороба мала б
вектор із 771 нулів і однією одиницею.
42
2.6.4 Керування навчанням
Для забезпечення стібільності процесу оптимізації та економії
обчислювальних ресурсів було впроваджено стратегію динамічного керування
навчанням за допомогою механізму зворотних викликів.
Рання зупинка виступає запобіжником проти перенавчання. Алгоритм
перевіряє значення функції втрат на валідаційній множині після кожної епохи,
якщо протягом п’яти епох не спостерігається зменшення помилки, навчання
примусово зупиняється. Це дозволяє уникнути ситуацій коли модель запам’ятовує
шум навчальної вибірки.
Критично важливим після зупинки моделі повернути до стану тієї епохи, де
метрики були найкращими, а не залишитись в останньому стані.
2.7 Обчислювальна складність алгоритмів
Ефективність впровадження системи діагностики у клінічну практику
залежить не лише від точності прогнозування, але й від обчислювальної складності
алгоритмів. Аналіз часової складності та просторової складності дозволяє оцінити
вимоги до апаратного забезпечення та масштабованість системи при збільшення
кількості пацієнтів. У рамках цього дослідження введено наступні позначення для
оцінки асимптотичної складності:
• N – кількість екземплярів у навчальній вибірці (246 946 випадків);
• M – кількість ознак (377 симптомів);
• K – кількість класів захворювань (773 діагнози);
• T – кількість дерев в ансамблевих методах;
• d – максимальна глибина дерева;
• E – кількість епох у нейронній мережі;
• W – загальна кількість вагових коефіцієнтів у нейронній мережі.
43
2.7.1 Наївний баєсівський класифікатор
Це найбільш обчислювально ефективний алгоритм серед розглянутих.
Процес його навчання має складність порядку O(N·M), оскільки він зводиться до
одноразового проходу по вибірці для підрахунку частот появи кожного симптому
для кожного класу. Враховуючи використання бінарних ознак, операції є
елементарними, що робить цей метод ідеальним кандидатом на роль базового
орієнтира швидкодії, прогнозування для нового пацієнта відбувається зі
складністю O(M·K), що дозволяє отримувати результат миттєво навіть на слабкому
обладнанні.
2.7.2 Логістична регресія
Значно більших обчислювальних ресурсів вимагає мультиноміальна
логістична регресія, складність навчання якої оцінюється як O(I·N·M·K).
Критичним фактором тут стає велика кількість класів діагнозів, оскільки на кожній
I ітерацій градієнтного спуску відбувається оновлення ваг для кожної з 773
гіперплощин. Хоча використання спеціалізованого алгоритму L-BFGS дозволяє
пришвидшити збіжність на розріджених даних, лінійна залежність навчання від
кількості хвороб робить цей метод чутливим до розширення діагностичної бази.
2.7.3 Випадковий ліс
Алгоритм випадкового лісу демонструє іншу природу складності, що
оцінюється як O(T·N·logN·M). основні витрати часу припадають на сортування
значень ознак у кожному вузлі для пошуку оптимального розбиття, що додає
множник logN. Проте, завдяки незалежності побудови кожного окремого дерева,
цей алгоритм ефективно використовує багатоядерну архітектуру процесора,
дозволяючи досягти майже лінійного прискорення при паралелізації обчислень.
44
2.7.4 XGBoost
Хоча класична побудова дерев має складність, подібну до випадкового лісу,
використаний у роботі гістограмний метод дозволяє дискретизувати безперервні
ознаки, знижуючи алгоритмічну складність пошуку розбиття до лінійної
залежності від N замість N·logN. Крім того, критично важливою для даного
дослідження є здатність XGBoost ігнорувати нульові значення в розріджених
векторах. Оскільки матриця симптомів заповнена лише на 1,41%, алгоритм
обробляє лише наявні симптоми, що прискорює навчання на порядки порівняно з
теоретичною оцінкою O(T·N·M).
2.7.5 Нейронна мережа
Найбільш ресурсоємним методом є багатошаровий перцептрон. Складність
його навчання становить O(E·N·W). Розроблена архітектура мережі формує
простір параметрів, що налічує понад 1 мільйона вагових коефіцієнтів. Кожна
ітерація навчання вимагає виконання величезної кількості операцій матричного
множення та обчислення градієнтів методом зворотного поширення помилки.
Ефективна реалізація такого методу можлива лише за використанням графічних
прискорювачів (GPU), які дозволяють паралельно обробляти великі пакети даних.
Підсумовуючи проведений аналіз (табл 2.1), можна стверджувати, що попри
високу складність етапу навчання, час формування прогнозу для всіх розглянутих
моделей становить секунди. Це повністю задовольняє вимоги до системи
підтримки прийняття лікарських рішень, яка повинна працювати в режимі
реального часу. Найбільш критичним ресурсом є оперативна пам’ять для
зберігання структур випадкового лісу та матриць ваг нейронної мережі, що було
враховано при проектуванні програмного комплексу.
45
Таблиця 2.1 – Порівняння часової складності алгоритмів
Алгоритм Часова складність Часова складність
навчання прогнозування
Наївний баєсівський O(N·M) O(M·K)
класифікатор
Мультиномінальна O(I·N·M·K) O(M·K)
логістична регресія
Випадковий ліс O(T·N·logN·M) O(T·d)
XGBoost O(T·N·M) O(T·d)
Нейронна мережа O(E·N·W) O(W)
2.8 Методологія оцінки якості моделей
Специфіка медичної діагностики вимагає використання метрик, що
відображають клінічну корисність систем, а не лише математичну точність. Окрім
стандартних метрик було використано Top-K Categorical Accuracy. У медичній
практиці діагностика передбачає формування списку ймовірних діагнозів, а не
одного вердикту. Метрика вважає прогноз коректним, якщо істиний діагноз
входить до множини K класів з найвищими передбаченими ймовірностями.
Високий показник свідчить про те, що система ефективно звужує коло пошуку для
лікаря, навіть якщо найімовірніший діагноз не є вірним.
2.9 Обгрунтування вибору алгоритмів для ансамблю
Формування складу гібридного ансамблю базується на необхідності
забезпечення статистичної різноманітності базових моделей, оскільки
ефективність мета-класифікатора безпосередньо залежить від того, наскільки
некорельовані є помилки вхідних алгоритмів. Враховуючи специфіку
досліджуваного набору даних, який характеризується екстремальною
розрідженістю, високою розмірністю та бінарною природою ознак, для побудови
системи було відібрано п’ять алгоритмів, кожен з яких вирішує специфічну задачу
обробки інформації та компенсує недоліки інших.
В якості еталонної моделі для оцінки допустимого рівня точності було обрано
мультиномінальну логістичну регресію. Її використання в даній роботі зумовлено
46
не стільки очікуванням високої прогностичної здатності, скільки необхідність
валідації результатів з точки зору доказової медицини. На відміну від складніших
алгоритмів, логістична регресія забезпечує повну прозорість прийняття рішень,
дозволяючи інтерпретувати вагові коефіцієнти як силу впливу конкретного
симптому на ймовірність діагнозу. Хоча лінійність границі рішень обмежує
здатність методу моделювати складні синдроми, наявність l2-регуляризації
дозволяє ефективно контролювати мультиколінеарність ознак та запобігати
перенавчанню на початкових етапах моделювання.
Для роботи з високовимірним простором бінарних ознак до складу ансамблю
включено алгоритм Наївного Байєса. Доцільність його застосування
обґрунтовується математичною природою вхідних векторів симптомів, які є
булевими величинами. Незважаючи на теоретичне спрощення щодо незалежності
ознак, яке часто критикується в літературі, саме цей алгоритм демонструє найвищу
обчислювальну ефективність на розріджених даних, ігноруючи неінформативні
нульові значення. У контексті ансамблювання цінність цього методу полягає у його
схильності генерувати поляризовані оцінки ймовірностей, що додає необхідну
варіативність у простір мета-ознак для фінального класифікатора.
З метою зменшення дисперсії загальної системи та підвищення стійкості до
шуму в клінічних даних застосовано алгоритм випадкового лісу. Оскільки медичні
записи часто містять помилкові або випадкові симптоми, поодинокі дерева рішень
схильні до перенавчання та запам’ятовування шумів. Використання технології
беггінгу, яка передбачає агрегацію рішень множини незалежних дерев,
побудованих на бутстреп-вибірках, дозволяє нівелювати вплив викидів та
стабілізувати прогноз. Критично важливою особливістю методу для даного
дослідження є його здатність автоматично відсіювати нерелевантні симптоми під
час побудови розбиттів, що фактично виконує роль вбудованого відбору ознак без
необхідності попередньої фільтрації даних.
В якості алгоритму для зменшення зміщення моделі обрано градієнтний
бустинг у реалізації XGBoost. Вибір саме цієї бібліотеки зумовлено наявністю
спеціалізованого механізму «Sparsity-aware Split Finding», який є критично
47
необхідним для роботи з матрицею симптомів, щільність заповнення якої
становить лише 1,41%. На відміну від класичних реалізацій бустингу, XGBoost не
витрачає обчислювальні ресурси на перебір нульових значень, а вивчає
оптимальний напрямок розгалуження за замовчуванням для відсутніх даних. Це
дозволяє не тільки суттєво прискорити процес навчання, але й ефективніше
виявляти закономірності для рідкісних захворювань, що підтвердження
використанням функції втрат для ранжування ймовірностей.
Завершує архітектуру ансамблю глибока нейронна мережа, завданням якої є
виявлення латентних нелінійних патернів, недоступних для методів на основі
дерев. Архітектура мережі спроектована за принципом поступового звуження
кількості нейронів у прихованих шарах, що змушує модель виконувати компресію
вхідної інформації та формувати компактні векторні представлення клінічних
випадків. Такий підхід дозволяє знаходити приховані кореляції між групами
симптомів, формуючи абстрактні ознаки вищого порядку.
2.10 Проміжні висновки
Розроблена комплексна методологія побудови гібридної системи
діагностики, яка охоплює повний цикл проектування, від попереднього аналізу та
підготовки даних до конструювання архітектури окремих алгоритмів та визначення
стратегії їх валідації.
Під час етапу розвідувального аналізу даних було виявлено критичні
особливості досліджуваного простору ознак, які визначають специфіку
подальшого моделювання. Встановлено, що вхідний масив даних характеризується
екстремальною розрідженістю, крім того, виявлено суттєвий дисбаланс класів. Для
вирішення цієї проблеми було розроблено процедуру попередньої обробки, яка, на
відміну від стандартного видалення викидів, використовує метод точкового
дублювання для критично малих класів. Це дозволило зберегти інформацію про
орфанні захворювання та запобігти зміщенню моделей в бік мажоритарних класів.
На основі теоретичного обґрунтування спроектовано архітектуру п’яти
різнорідних моделей, що увійдуть до складу гібридного ансамблю. В якості
48
базового лінійного класифікатора обрано мультиномінальну логістичну регресію з
l2-регуляризацією для забезпечення стабільного базового прогнозу. Наївний
байєсівський класифікатор обрано через його унікальну властивість – припущення
про незалежність ознак. Випадковий ліс імплементовано для зменшення дисперсії
загальної системи. XGBoost включено для зменшення зміщення, на відміну від
випадкового лісу, цей метод працює послідовно. Нейронна мережа додана для
виявлення складних ієрархічних та нелінійних патернів, які недоступні для дерев
рішень та лінійних моделей.
Для валідації цієї системи розроблено стратегію оцінювання на основі Top-
K Accuracy, яка враховує імовірнісну природу медичної діагностики та здатність
ансамблю формувати коректний ранжований список гіпотез для лікаря.
49
3 ПРОГРАМНА РЕАЛІЗАЦІЯ ТА ЕКСПЕРЕМЕНТАЛЬНЕ
ДОСЛІДЖЕННЯ
3.1 Балансування та підготовка даних
Враховуючи специфіку медичного набору даних, який характеризується
значним дисбалансом класів та наявністю рідкісних діагнозів, було розроблено
спеціалізований алгоритм попередньої обробки (рис.3.1).
Рисунок 3.1 - Дублювання класів частота яких менше 10
Створення надлишкової вибірки було важливе для того щоб модель не
ігнорувала рідкісні діагнози, вважаючи їх статистичним шумом та для коректного
розбиття на навчальну та тестову вибірки.
Для перетворення категоріальної змінної діагнозу в числовий формат було
застосовано метод факторизації, а для можливості зворотного декодування
створено словник відповідностей (рис.3.2).
Рисунок 3.2 – Кодування ознак
50
Розбиття даних на навчальну та тестову у співвідношені 80/20 було
реалізоване за допомогою функції «train_test_split». Параметр «stratify=df.diseases»
забезпечує збереження пропорцій класів. Для відтворюваності результатів, що є
важливим для ансамблю, було використано «random_state=666». Для економії
оперативної пам’яті вхідні вектори симптомів було приведено до типу «bool», що
відповідає бінарній природі даних (рис.3.3).
Рисунок 3.3 – Розбиття на навчальну та тестову вибірки
3.2 Реалізація моделей
3.2.1 Реалізація логістичної регресії
Для прискорення навчання на великому масиві даних задіяно паралелізацію
обчислень на всіх доступних ядрах процесора за допомогою «n_jobs=-1».
Збільшена кількість ітерацій до 500, щоб алгоритм встиг знайти мінімум функції
втрат на складному датасеті. Для захисту від дисбалансу, помилкам на рідкісних
класах було призначено більшу вагу за допомогою «class_weight=’balanced’»
(рис.3.4).
Рисунок 3.4 – Реалізація алгоритму логістичної регресії
51
3.2.2 Реалізація наївного байєса
Враховуючи бінарну природу вхідних даних, стандартний Гаусівський
наївний баєс є непридатним, оскільки розподіл ознак не є нормальним. Тому для
реалізації ймовірносної моделі було обрано модифікацію Бернуллі (рис.3.5).
Рисунок 3.5 – Реалізація алгоритму наївного байєса
Оскільки на етапі попередньої обробки вхідні дані вже були приведені до
бінарного формату, то додаткова порогова фільтрація не потрібна (binarize=None).
alpha=0.1 відповідає за адитивне згладжування. Це важливо для медичних даних,
якщо у навчальній вибірці певний синдром ніколи не зустрічався при конкретній
рідкісній хворобі, без згладжування модель присвоїла б цьому варіанту нульову
ймовірність. Параметр a > 0 дозволяє уникнути проблеми нульової частоти та
підвищити стабільність прогнозу на нових даних.
3.2.3 Реалізація випадкового лісу
Експериментально доведено, що збільшення кількості дерев понад 20 не дає
суттєвого приросту точності, але лінійно збільшує час роботи та розмір моделі.
Встановлення параметру «min_sample_split=2» дозволяє побудувати максимально
глибокі дерева (рис.3.6).
Рисунок 3.6 – Реалізація алгоритму випадкового лісу
52
3.2.4 Реалізація XGBoost
Для такого великого датасету звичайний перебір варіантів розгалуження був
би занадто повільним, через що був обраний метод «hist», який групує значення
ознак у гістограми. Для більш точного глобального мінімуму функції втрат обрано
500 ітерацій із кроком навчання 0.05. Щоб модель не навчалась безрезультатно,
була введена рання зупинка, якщо протягом 10 ітерацій точність не зростає(рис3.7).
Рисунок 3.7 – Реалізація алгоритму XGBoost
3.2.5 Реалізація нейронної моделі
Для побудови глибокої архітектури було застосовано три повнозв’язні шари,
на кожному з яких використовується функція активації «ReLu», яка дозволяє
уникнути проблем затухання градієнта при навчанні та пришвидшує обчислення.
Для вирішення задачі мультикласової класифікації вихідний шар містить функцію
«Softmax». З метою мінімізації функції втрат обрано адаптивний оптимізатор
«Adam» з кроком навчання 0.0001, який забезпечує більш стабільний процес
оновлення ваг та для знаходження точнішого глобального мінімуму. З метою
запобігання перенавчання впроваджено шари регуляризації «Dropout», які
випадковим чином вимикають 30% зв’язків (рис.3.8).
53
Рисунок 3.8 – Навчання моделі нейронної мережі
3.3 Побудова ансамблю
Основна ідея полягає у використанні прогнозів, отриманих від базових
моделей, як нові ознаки для навчання фінального мета-класифікатора. Функція
«get_meta_features» об’єднує вектори ймовірностей від попередньо навчених
моделей. Отримані дані об’єднуються за допомогою «np.hstack», формуючи новий
простір ознак, де кожен стовпець відображає впевненість конкретної моделі в
певному діагнозі (рис.3.9).
Рисунок 3.9 – Створення мета-даних
Оскільки мета-модель не повинна шукати складні патерни, а зважити
відповіді вже навчених, то у якості мета-моделі була обрана Логістична регресія.
Параметр регуляризації залишено за замовчуванням для балансу, а кількість
ітерацій збільшено до 1000 для гарантованої збіжності на нових мета-даних
(рис.3.10).
54
Рисунок 3.10 – Навчання мета-моделі
3.4 Точність та порівняння моделей
Оцінка якості класифікаторів проводилась на тестовій вибірці за метриками
Top-1 Accuracy та Top-3 Accuracy (табл.3.1).
Таблиця 3.1 – Точність моделей
Модель Top-1 Accuracy Top-3 Accuracy
Логістична регресія 86,2% 96%
Наївний Байєс 86,9% 96,2%
Випадковий ліс 84,2% 95,6%
XGBoost 84,7% 95,2%
Нейронна модель 85,9% 95,8%
Мета-модель 86,1% 95%
Незважаючи на те що всі 4 моделі мають різну математичну природу, вони
продемонстрували майже ідентичні показники точності. Очікувалось, що ансамбль
зможе виправити помилки окремих моделей і підвищити загальну точність. Однак
результати показали відсутність приросту якості.
Для з’ясування причин відсутності синергійного ефекту при ансамблюванні
було проведено поглиблений аналіз структури помилок базових класифікаторів.
Ансамбль коректно працює за умови, що моделі помиляються на різних об’єктах.
Для перевірки цієї умови була розроблена функція порівняльного аналізу, яка
виявляє пари «Істиний клас – Передбачений клас» з найбільшою частотою
помилок(рис.3.11).
55
Рисунок 3.11 – Функція порівняльного аналізу «Істиний клас – Передбачений
клас»
Результати аналізу для п’ятьох моделей (табл. 3.2) виявили високу схожість
у патернах помилок.
Таблиця 3.2 - Топ-10 помилок передбачення базових моделей
Алгоритм Передбачений клас Справжній клас Частота
infectious gastroenteritis noninfectious gastroenteritis 78
noninfectious gastroenteritis infectious gastroenteritis 68
schizophrenia psychotic disorder 37
chronic obstructive pulmonary disease
acute bronchitis 35
(copd)
XGBoost cholecystitis gallstone 35
gum disease tooth disorder 35
skin polyp skin disorder 34
spinal stenosis degenerative disc disease 32
marijuana abuse personality disorder 30
pneumonia acute bronchospasm 29
56
Продовження таблиці 3.2
infectious gastroenteritis noninfectious gastroenteritis 75
noninfectious gastroenteritis infectious gastroenteritis 72
psychotic disorder schizophrenia 38
cholecystitis gallstone 38
gallstone cholecystitis 37
Випадковий
personality disorder schizophrenia 37
ліс
schizophrenia psychotic disorder 36
kidney stone pyelonephritis 35
pyelonephritis kidney stone 33
chronic obstructive pulmonary disease
acute bronchitis 33
(copd)
noninfectious gastroenteritis infectious gastroenteritis 65
cholecystitis gallstone 52
gum disease tooth disorder 44
chronic obstructive pulmonary disease
acute bronchitis 42
(copd)
Логістична
infectious gastroenteritis noninfectious gastroenteritis 41
регресія
skin polyp skin disorder 39
dry eye of unknown cause corneal disorder 36
spinal stenosis degenerative disc disease 35
schizophrenia psychotic disorder 34
marijuana abuse personality disorder 33
infectious gastroenteritis noninfectious gastroenteritis 72
personality disorder marijuana abuse 57
vaginal cyst spontaneous abortion 48
spinal stenosis degenerative disc disease 42
personality disorder schizophrenia 41
Нейронна
gum disease tooth disorder 40
мережа
skin pigmentation disorder skin polyp 39
psychotic disorder schizophrenia 38
retinal detachment cataract 38
chronic obstructive pulmonary disease
acute bronchitis 38
(copd)
noninfectious gastroenteritis infectious gastroenteritis 68
dry eye of unknown cause corneal disorder 40
infectious gastroenteritis noninfectious gastroenteritis 38
chronic obstructive pulmonary disease
acute bronchitis 37
(copd)
Наївний
skin polyp skin disorder 37
Байєс
marijuana abuse personality disorder 36
cholecystitis gallstone 33
pneumonia acute bronchospasm 31
depression post-traumatic stress disorder (ptsd) 31
spontaneous abortion vaginal cyst 31
57
Така синхронність помилок свідчить про те, що різні моделі впираються в
одну й ту ж саму проблему – інформаційну недостатність вхідних даних.
Симптомні профілі зазначених пар хвороб у наборі даних є настільки схожими, що
їх розділення методами машинного навчання без додаткових ознак є неможливим.
Для остаточного підтвердження гіпотези про відсутність синергійного
ефекту в розробленому ансамблі було проведено кількісний аналіз узгодженості
рішень базових класифікаторів. Для цього була побудована матриця кореляції
прогнозів (рис. 3.12), яка відображає ступінь лінійної залежності між векторами
ймовірностей, згенерованими кожною моделлю на тестовій вибірці.
Рисунок 3.12 – Матриця кореляції прогнозів базових моделей
58
Як видно з теплової карти, коефіцієнти кореляції Пірсона між усіма парами
моделей є екстремально високими. Згідно з теорією ансамблевого навчання,
ключовою умовою ефективності стекінгу є статистична незалежність помилок
базових моделей. Отримані результати математично доводять, що помилки не є
різноманітними. Вони мають однакові помилки, через що мета-класифікатор не
отримує додаткової інформації, що і пояснює відсутність приросту точності
загальної системи.
3.5 Опис графічного інтерфейса
Для забезпечення взаємодії медичного персоналу з розробленими моделями
машинного навчання було створено графічний інтерфейс користувача на базі
бібліотеки «Tkinter». Інтерфейс спроектовано за блочним принципом, що дозволяє
інтуїтивно розділити зону керування даними пацієнта та зону діагностичного
висновку.
3.5.1 Ініціалізація системи
Процес роботи з програмою розпочинається з етапу ініціалізації. Оскільки до
складу програми входять ресурсомісткі моделі, їх завантаження в оперативну
пам’ять займає певний час. Для покращення користувацького досвіду реалізовано
стартове вікно завантаження (рис.3.13). Воно візуалізує процес завантаження
збережених моделей. Це надає користувачеві зворотний зв’язок про те, що система
готується до роботи, а не зависла.
Рисунок 3.13 – Вікно завантаження програми
59
3.5.2 Головне вікно
Після завантаження відкривається головне робоче вікно програми (рис.3.14).
Інтерфейс розділено на дві функціональні зони:
• Панель управління (Ліва панель) – відповідає за введення даних, вибір
пацієнта, маніпуляція з додаванням симптомів, запуск аналізу та
відображення мета-моделі.
• Панель діагностики (Права панель) – відображає результати прогнозування
кожної окремої базової моделі, що входять до складу системи.
Рисунок 3.14 – Загальний вид головного вікна
Така реалізація дозволяє лікарю бачити вхідні дані та результат одночасно,
без необхідності перемикання між вкладками.
60
3.5.3 Модуль керування пацієнтами та симптомами
Робота з пацієнтом реалізована через систему розкривних списків, що
мінімізує ризик помилки при введені даних.
Користувач має можливість обрати вже існуючого пацієнта з бази даних
(рис.3.15). При виборі пацієнта та показу його симптомів програма підтягує його
історію (раніше введені симптоми) з CSV-файлу бази даних. Також реалізовано
функціонал створення нового запису пацієнта та видалення неактуальних карток.
Рисунок 3.15 – Вибір карти пацієнта з бази даних
Важливим елементом є стандартизація вхідних даних. Оскільки моделі
навчилися на фіксованому словнику симптомів, ручне введення тексту могло б
призвести до помилок. Тому реалізовано розкривний список усіх доступних
симптомів українською мовою. Лікар обирає симптом із списку та натискає кнопку
61
«додати симптом». Система формує список активних скарг, який візуалізується у
відповідному текстовому полі (рис.3.16).
Рисунок 3.16 – Вибір клінічних симптомів із словника ознак
3.5.4 Візуалізація результатів діагностики
Після формування клінічної картини користувач натискає кнопку
«Аналізувати пацієнта». Система векторизує список симптомів у бінарний вектор
та передає його на вхід усім підключеним моделям.
Результат роботи базових моделей відображається у правій частині
інтерфейсу, де напроти назви кожної моделі виводиться список топ-3 ймовірних
діагнозів зі значенням рівня впевненості. У нижньому лівому куті виводиться
результат роботи мета-моделі, що являє собою підсумковий та зважений висновок
системи який ранжує хвороби з урахуванням «авторитетності» кожної
моделі(рис.3.17).
62
Рисунок 3.17 – Результат роботи діагностичного комлексу
3.6 Оцінювання ефективності прикладного рішення
Крім кількісної оцінки точності моделей на тестовій вибірці, критичним
етапом перевірки системи підтримки прийняття лікарських рішень є якісна
експертна оцінка. Для визначення практичної придатності розробленого
програмного комплексу було проведено випробування за участі студента
медичного факультету.
За результатами тестування експертом було відзначено, що система генерує
«цікаві та реалістичні висновки». Це підтверджує, що розроблений гібридний
ансамбль, який поєднує лінійні моделі, методи на основі дерев та нейронну мережу,
здатний коректно виявити патофізіологічні закономірності навіть в умовах
розрідженості вхідних даних. Алгоритми не просто реагують на ключові слова, а
формують комплексний прогноз, що відповідає медичній практиці.
63
Особливу цінність продемонстрував підхід із використанням метрики
Top-K Accuracy та ранжування діагнозів. Експерт зауважив, що перелік ймовірних
хвороб «змушує задуматись про можливість помилкового діагнозу». Це свідчить
про досягнення однієї з головних цілей роботи – створення інструменту другої
думки. Система ефективно виконує функцію зниження навантаження на лікаря та
запобігання помилкам, пропонуючи альтернативні варіанти, які могли бути
пропущені при первинному огляді.
Додатково було оцінено технічні параметри взаємодії. Час генерації прогнозу
не перевершує однієї секунди, що дозволяє використовувати інструмент у режимі
реального часу без затримок прийому.
Загальна оцінка була сформульована як задовільна. У контексті розробки
медичного програмного забезпечення це свідчить про те, що на даному етапі
програмний комплекс успішно пройшов стадію прототипу.
Система сприймається користувачем як інструмент придатний для:
• Освітніх цілей;
• Первинного діагностичного огляду;
• Перевірки діагностичних гіпотез.
Отримані результати підтверджують доцільність подальшого розвитку проекту.
3.7 Перспективи подальшого розвитку
Проведений аналіз ефективності розробленого програмного комплексу
продемонстрував, що створена архітектура є дієздатною та має потенціал для
практичного застосування. Водночас виявлені під час тестування обмеження,
зокрема висока кореляція помилок моделей та складність розділення клінічно
схожих діагнозів, окреслюючи чіткий напрямок для подальшої модернізації
системи.
Як показав аналіз матриці помилок, основною причиною відсутності
покращення точності в ансамблі є «інформаційний голод» моделей. Симптомні
профілі багатьох хвороб у поточному наборі даних є занадто схожими для їх
ефективного розділення. Збільшення кількості унікальних симптомів та інтеграція
64
результатів лабораторних та інструментальних досліджень (аналізи крові,
показники МРТ/КТ), що дозволить підвищити роздільну здатність моделей та
зменшити кількість помилок на схожих класах.
Також є варіант переходу до ієрархічної архітектури класифікації. Поточна
реалізація розглядає задачу діагностики як «плоску», намагаючись одразу обрати
із 773 класів. Це створює значне навантаження на класифікатори. При
впровадженні ієрархічного підходу архітектура буде змінена на каскадну систему.
На першому етапі модель визначатиме загальну категорію патологій, а на другому
етапі – спеціалізовані моделі проводитимуть диференційну діагностику всередині
обраної групи. Це дозволить суттєво звузити простір пошуку та зменшити
ймовірність діагностичних помилок.
Доцільним напрямком є інтеграція модуля обробки приробної мови (NLP) на
базі спеціалізованих мовних моделей. Це дозволить автоматизувати процес
вилучення симптомів безпосередньо з неструктурованих тектових записів лікаря в
електронній медичній картці, замінивши ручний вибір зі списку.
3.8 Проміжні висновки
Здійснено програмну реалізацію та експериментальне дослідження
запропонованої гібридної системи. У ході роботи було впроваджено алгоритм
попередньої обробки даних, який включає балансування класів методом точкового
дублювання для рідкісних діагнозів та векторизацію симптомів. Проведено
навчання та порівняльний аналіз п’яти базових моделей різної математичної
природи: мультиноміальна логістична регресія, наївний Байєс, випадковий ліс,
XGBoost та нейронна мережа. Встановлено, що всі моделі демонструють високу
швидкість прогнозування та близькі показники точності на тестовій вибірці.
Досліджено ефективність методу стекінгу для прийняття рішень базових
моделей. Експериментально доведено, що ансамблювання не забезпечило
очікуваного покращення, а точність мета-моделі залишилася на рівні окремих
алгоритмів. Побудована матриця кореляції прогнозів виявила екстремально високу
корельованість помилок між моделями, що свідчить про досягнення інформаційної
65
межі наявного набору даних, яку неможливо подолати лише ускладненням
архітектури без залучення додаткових клінічних даних.
Встановлено, що метрика Top-3 Accuracy значно перевершує Top-1 Accuracy,
що підтверджує ефективність ранжування гіпотез для клінічної практики.
Розроблено прикладний програмний комплекс із графічним інтерфейсом
користувача, який забезпечує повний цикл взаємодії з лікарем, від вибору пацієнта
та стандартизованого введення симптомів до візуалізації впевненості системи.
66
ВИСНОВКИ
У кваліфікаційній роботі вирішено науково-прикладне завдання підвищення
надійності автоматизованої медичної діагностики шляхом розроблення та
дослідження гібридної ансамблевої системи машинного навчання.
1. Аналіз сучасних методів діагностики виявив фундаментальну проблему
компромісу між інтерпретованістю та точністю. Обґрунтовано, що в умовах
медичної невизначеності найбільш перспективним є перехід від пошуку
універсального алгоритму до створення гетерогенних ансамблів, здатних
компенсувати недоліки окремих методів.
2. Виявлено та вирішено специфічні проблеми обробки медичних записів,
велика розмірність та критичний дисбаланс класів. Впроваджено стратегію
попередньої обробки, що включає адаптивне дублювання даних та
використання алгоритмів із підтримкою розрідженості, яка дозволила
зберегти інформацію про рідкісні захворювання.
3. Набуло подальшого розвитку застосування метрики Top-K Accuracy як
основного критерію ефективності діагностичних систем. Експериментально
доведено, що для задач первинної діагностики показник присутності
істинного діагнозу у списку ймовірних є більш значущим та надійним
критерієм, ніж детермінована точність, яка обмежена схожістю симптомів
різних хвороб.
4. Встановлено, що на досліджуваному наборі даних метод стекінгу не
забезпечує значного приросту точності через високу кореляцію помилок
базових моделей. Це дозволило сформулювати висновок про вичерпання
інформаційності вхідних ознак і необхідність залучення додаткових даних
для подальшого покращення якості розпізнавання.
5. Розроблено у вигляді прототипу програмний комплекс. Система реалізує
повний цикл діагностики та надає лікарю інтерпретований результат у
вигляді розподілу ймовірностей, що відповідає концепції «другого погляду»
та знижує навантаження на медичного працівника.
67
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Peerally M. F., Carr S., Waring J., Dixon-Woods M. The problem with root cause
analysis. BMJ Quality & Safety. 2017. Vol. 26. P. 417–422. URL:
https://qualitysafety.bmj.com/content/22/Suppl_2/ii21
2. Improving Diagnosis in Health Care / National Academies of Sciences,
Engineering, and Medicine. Washington, DC: The National Academies Press,
2015. URL: https://www.nationalacademies.org/projects/IOM-HCS-13-03/about
3. No Free Lunch Theorem: A Review / S. P. Adam et al. Approximation and
Optimization. Springer, Cham, 2019. P. 57–82. URL:
https://www.researchgate.net/publication/333007007_No_Free_Lunch_Theorem
_A_Review
4. Edwards D. What is the Knowledge Acquisition Bottleneck problem? Steemit.
URL: https://steemit.com/ai/@dana-edwards/what-is-the-knowledge-acquisition-
bottleneck-problem
5. Dermatologist-level classification of skin cancer with deep neural networks / A.
Esteva et al. Nature. 2017. Vol. 542, no. 7639. P. 115–118. URL:
https://pubmed.ncbi.nlm.nih.gov/28117445/
6. Deep learning algorithm vs. XGBoost using Wisconsin breast cancer diagnosis /
W. A. Wan Abu Bakar et al. Proceedings of SPIE. 2022. Vol. 12506. URL:
https://www.researchgate.net/publication/366671797_Deep_learning_algorithm_
vs_XGBoost_using_Wisconsin_breast_cancer_diagnosis
7. Sidey-Gibbons J. A. M., Sidey-Gibbons C. J. Machine learning in medicine: a
practical introduction. BMC Medical Research Methodology. 2019. Vol. 19. Art.
64. URL:
https://www.sciencedirect.com/science/article/abs/pii/S1361841517301135?via%
3Dihub
8. Symptom-Based Disease Prediction Using Machine Learning / M. A. Khan et al.
ResearchGate. URL:
https://www.researchgate.net/publication/392157203_SYMPTOM-
BASED_DISEASE_PREDICTION_USING_MACHINE_LEARNING
9. Highly accurate protein structure prediction with AlphaFold / J. Jumper et al.
Nature. 2021. Vol. 596. P. 583–589. URL:
https://pubmed.ncbi.nlm.nih.gov/34265844/
10. A comparative study of machine learning techniques / AIP Conference
Proceedings. 2020. Vol. 2200. No. 1. 020005. URL:
https://pubs.aip.org/aip/acp/article-abstract/3153/1/020005/3299942/A-
comparative-study-of-machine-learning-techniques
11. Machine Learning Based Disease Diagnosis: A Comprehensive Review / IEEE
Xplore. URL: https://ieeexplore.ieee.org/document/9388603
12. Ahsan M. M., Siddique Z. Machine-Learning-Based Disease Diagnosis: A
Comprehensive Review. Healthcare. 2022. Vol. 10(3). 541. URL:
https://www.researchgate.net/publication/359285491_Machine-Learning-
Based_Disease_Diagnosis_A_Comprehensive_Review
68
13. Deep learning algorithm vs. XGBoost using Wisconsin breast cancer diagnosis /
W. A. Wan Abu Bakar et al. Proceedings of SPIE. 2022. Vol. 12506. URL:
https://www.spiedigitallibrary.org/conference-proceedings-of-
spie/12506/2663128/Deep-learning-algorithm-vs-XGBoost-using-Wisconsin-
breast-cancer-diagnosis/10.1117/12.2663128.full
14. A diagnosis of ovarian cyst using deep learning neural network with XGBoost
algorithm / ResearchGate. URL:
https://www.researchgate.net/publication/373231446_A_diagnosis_of_ovarian_c
yst_using_deep_learning_neural_network_with_XGBoost_algorithm
15. Condorcet M. Essai sur l’application de l’analyse à la probabilité des décisions
rendues à la pluralité des voix. Paris: L'Imprimerie Royale, 1785.
16. Bias, Variance and the Combination of Least Squares Estimators / R. Meir.
Advances in Neural Information Processing Systems (NeurIPS). 1994. Vol. 7.
URL:
https://proceedings.neurips.cc/paper/1994/file/b8c37e33defde51cf91e1e03e51657
da-Paper.pdf
17. Olah C. Neural Networks, Manifolds, and Topology. Colah's Blog. 2014. URL:
https://colah.github.io/posts/2014-03-NN-Manifolds-Topology/
69
ДОДАТОК А
«Затверджую»
Завідувач кафедри статистики
та прикладної математики
____________ Анаіт КАРАПЕТЯН
«___» ________2025 р.
ЗАСТОСУВАННЯ МЕТОДІВ АНАЛІЗУ ДАНИХ І МАШИННОГО
НАВЧАННЯ В МЕДИЦИНІ НА ОСНОВІ АНСАМБЛЕВИХ МОДЕЛЕЙ
Специфікація
482.ЧДТУ.5 2437-01
Листів 2
Розробник __________________ Олександр ТКАЧЕНКО
Керівник __________________ Євген ФЕДОРОВ
Черкаси - 2025
70
Позначення Найменування Примітка
Документація
482.ЧДТУ.5 2437-01 34 01 Інструкція користувача
482.ЧДТУ.5 2437-01 90 01 Структура бази даних
482.ЧДТУ.5 2437-01 12 01 Текст програми
71
ДОДАТОК Б
ЗАСТОСУВАННЯ МЕТОДІВ АНАЛІЗУ ДАНИХ І МАШИННОГО
НАВЧАННЯ В МЕДИЦИНІ НА ОСНОВІ АНСАМБЛЕВИХ МОДЕЛЕЙ
Інструкція користувача
482.ЧДТУ.5 2437-01 34 01
Листів 5
Розробник __________________ Олександр ТКАЧЕНКО
Черкаси - 2025
72
Створення картки нового пацієнта
Для створення нового пацієнта потрібно вписати його ім’я в поле, що на
рисунку Б.1 виділено червоним контуром, після чого натиснути на кнопку “додати
пацієнта”, що виділена зеленим контуром.
Рисунок Б.1 – Створення файлу нового пацієнта
Додавання симптомів до файлу пацієнту
Для того, щоб додати симптом існуючому пацієнту ви повинні обрати
пацієнта з випадаючиго списку в полі, що виділено червоним контуром на рисунку
Б.2, після чого обрати симптом з випадаючого списку в полі, що виділене
помаранчевим кольором, після чого натиснути кнопку “додати симптом”, що
виділена зеленим контуром.
73
Рисунок Б.2 - Додавання симптому до файлу пацієнта
Видалення файлу пацієнта
Щоб видалити пацієнта ви повинні обрати існуючого пацієнта з випадаючого
списку в полі, що виділене червоним контуром і натиснути кнопку “видалити
пацієнта”, що виділена зеленим контуром на рисунку Б.3.
Рисунок Б.3 - Видалення файлу пацієнта
74
Демонстрація симптомів пацієнта
Для того, щоб побачити список симптом пацієнта необхідно обрати пацієнта
з випадаючого списку в полі, що виділене чероним кольором на рисунку Б.4, після
чого натиснути кнопку “показати симптоми”, що виділена зеленим кольором. У
разі, якщо після проведених операцій поле з симптомами, виділено синім контуром,
залишається порожнім – пацієнт ще не має записаних симптом.
Рисунок Б.4 - Демонстрація симптомів пацієнта
Аналіз пацієнта
Для проведення аналізу пацієнта необхідно обрати пацієнта з випадаючого
списку в полі, що виділене червоним кольором, натиснути кнопку “показати
симптоми”, що виділена зеленим контуром, після чого натиснути кнопку
“аналізувати пацієнта”, виділену синім кольором, як показано на рисунку Б.5
75
Рисунок Б.5 - Аналіз пацієнта
Результати аналізу будуть виведені в поля, що на рисунку Б.6 виділені
жовтим кольором. Метааналіз, тобто компіляція результатів аналізу всіх моделей,
буде виведено в поле, що виділене синім контуром. Назви моделей зазначені
лейблами, що стоять кожна навпроти поля своєї моделі, на рисунку виділені сірим
контуром.
Рисунок Б.6 - Результати аналізу
76
ДОДАТОК В
ЗАСТОСУВАННЯ МЕТОДІВ АНАЛІЗУ ДАНИХ І МАШИННОГО
НАВЧАННЯ В МЕДИЦИНІ НА ОСНОВІ АНСАМБЛЕВИХ МОДЕЛЕЙ
Опис датасету
482.ЧДТУ.5 2437-01 90 01
Листів 31
Розробник __________________ Олександр ТКАЧЕНКО
Черкаси – 2025
77
Датасет «Final_Augmented_dataset_Diseases_and_Symptoms» таблиці
переліку хвороб і симптомів таблиці В.1 і В.2, відповідно.
Таблиця В.1 – хвороби українською і англійською мовами
Назва хвороби англійською Назва хвороби українською
Panic disorder Панічний розлад
Vocal cord polyp Поліп голосових зв'язок
Turner syndrome Синдром Тернера
Cryptorchidism Крипторхізм
Poisoning due to ethylene glycol Отруєння етиленгліколем
Atrophic vaginitis Атрофічний вагініт
Fracture of the hand Перелом руки
Cellulitis or abscess of mouth Целюліт або абсцес рота
Eye alignment disorder Порушення вирівнювання очей
Headache after lumbar puncture Головний біль після люмбальної пункції
Pyloric stenosis Пілоростеноз
Salivary gland disorder Порушення слинних залоз
Osteochondrosis Остеохондроз
Injury to the knee Травма коліна
Metabolic disorder Метаболічний розлад
Vaginitis Вагініт
Sick sinus syndrome Синдром слабкості синусового вузла
Tinnitus of unknown cause Шум у вухах невідомої причини
Glaucoma Глаукома
Eating disorder Розлад харчової поведінки
Transient ischemic attack Транзиторна ішемічна атака
Pyelonephritis Пієлонефрит
Rotator cuff injury Травма обертальної манжети плеча
Chronic pain disorder Хронічний больовий розлад
Problem during pregnancy Проблема під час вагітності
Liver cancer Рак печінки
Atelectasis Ателектаз
Injury to the hand Травма руки
Choledocholithiasis Холедохолітіаз
Injury to the hip Травма стегна
Cirrhosis Цироз
Thoracic aortic aneurysm Аневризма грудного відділу аорти
78
Продовження таблиці В.1
Subdural hemorrhage Субдуральна кровотеча
Diabetic retinopathy Діабетична ретинопатія
Fibromyalgia Фіброміалгія
Ischemia of the bowel Ішемія кишечника
Fetal alcohol syndrome Алкогольний синдром плода
Peritonitis Перитоніт
Injury to the abdomen Травма живота
Acute pancreatitis Гострий панкреатит
Thrombophlebitis Тромбофлебіт
Asthma Астма
Foreign body in the vagina Чужорідне тіло у вагіні
Restless leg syndrome Синдром неспокійних ніг
Emphysema Емфізема
Cysticercosis Цистицеркоз
Induced abortion Індукований аборт
Teething syndrome Синдром прорізування зубів
Infectious gastroenteritis Інфекційний гастроентерит
Acute sinusitis Гострий синусит
Substance-related mental disorder Психічний розлад, пов'язаний з вживанням
речовин
Postpartum depression Післяпологова депресія
Coronary atherosclerosis Коронарний атеросклероз
Spondylitis Спондиліт
Pituitary adenoma Аденома гіпофізу
Uterine fibroids Фіброми матки
Idiopathic nonmenstrual bleeding Ідіопатична неменструальна кровотеча
Chalazion Халазіон
Ovarian torsion Торсія яєчника
Retinopathy due to high blood pressure Ретинопатія через високий кров'яний тиск
Vaginal yeast infection Вагінальна дріжджова інфекція
Mastoiditis Мастоїдит
Lung contusion Контузія легені
Hypertrophic obstructive cardiomyopathy Гіпертрофічна обструктивна кардіоміопатія
(HOCM) (ГОКМ)
Ingrown toe nail Врослий ніготь
Pulmonary eosinophilia Легенева еозинофілія
Corneal disorder Порушення рогівки
Foreign body in the gastrointestinal tract Чужорідне тіло в шлунково-кишковому тракті
79
Продовження таблиці В.1
Endophthalmitis Ендофтальміт
Intestinal malabsorption Кишкове порушення всмоктування
Viral warts Вірусні бородавки
Hyperhidrosis Гіпергідроз
Stroke Інсульт
Pilonidal cyst Пілонідальна кіста
Crushing injury Розчавлююча травма
Normal pressure hydrocephalus Нормотензивна гідроцефалія
Alopecia Алопеція
Hashimoto thyroiditis Тиреоїдит Хашимото
Flat feet Плоскостопість
Nonalcoholic liver disease (NASH) Неалкогольна жирова хвороба печінки
(НАЖХП)
Hemarthrosis Гемартроз
Pelvic organ prolapse Пролапс органів малого таза
Fracture of the arm Перелом руки
Coagulation (bleeding) disorder Порушення згортання крові
Intracranial hemorrhage Внутрішньочерепна кровотеча
Hyperkalemia Гіперкаліємія
Cornea infection Інфекція рогівки
Abscess of the lung Абсцес легені
Dengue fever Лихоманка денге
Chronic sinusitis Хронічний синусит
Cholesteatoma Холестеатома
Volvulus Заворот кишок
Injury to the finger Травма пальця
Poisoning due to analgesics Отруєння анальгетиками
Atrial fibrillation Фібриляція передсердь
Pinworm infection Інфекція гостриками
Urethral valves Клапани уретри
Open wound of the neck Відкрита рана шиї
Achalasia Ахалазія
Conductive hearing loss Кондуктивна втрата слуху
Abdominal hernia Грижа живота
Cerebral palsy Церебральний параліч
Marijuana abuse Зловживання марихуаною
Cryptococcosis Криптококоз
80
Продовження таблиці В.1
Obesity Ожиріння
Indigestion Розлад травлення
Bursitis Бурсит
Esophageal cancer Рак стравоходу
Pulmonary congestion Легенева застій
Juvenile rheumatoid arthritis Ювенільний ревматоїдний артрит
Actinic keratosis Актинічний кератоз
Acute otitis media Гострий середній отит
Astigmatism Астигматизм
Tuberous sclerosis Туберозний склероз
Empyema Емпієма
Presbyacusis Пресбіакузіс
Neonatal jaundice Неонатальна жовтяниця
Chronic obstructive pulmonary disease Хронічне обструктивне захворювання легень
(COPD) (ХОЗЛ)
Dislocation of the elbow Вивих ліктя
Spondylosis Спондилоз
Herpangina Герпангіна
Injury to the shoulder Травма плеча
Poisoning due to antidepressants Отруєння антидепресантами
Infection of open wound Інфекція відкритої рани
Deep vein thrombosis (DVT) Тромбоз глибоких вен (ТГВ)
Protein deficiency Білкова недостатність
Myoclonus Міоклонус
Bone spur of the calcaneus Кістковий шпора п'яткової кістки
Von Willebrand disease Хвороба фон Віллебранда
Open wound of the back Відкрита рана спини
Heart block Серцева блокада
Colonic polyp Поліп ободової кишки
Magnesium deficiency Магнієва недостатність
Female infertility of unknown cause Жіноче безпліддя невідомої причини
Pericarditis Перикардит
Attention deficit hyperactivity disorder Синдром дефіциту уваги з гіперактивністю
(ADHD) (СДУГ)
Pulmonic valve disease Захворювання легеневого клапана
Tietze syndrome Синдром Тітце
Cranial nerve palsy Параліч черепного нерва
Injury to the arm Травма руки
81
Продовження таблиці В.1
Conversion disorder Розлад конверсії
Complex regional pain syndrome Комплексний регіональний больовий синдром
Otosclerosis Ото склероз
Injury to the trunk Травма тулуба
Hypothyroidism Гіпотиреоз
Primary insomnia Первинне безсоння
Lice Воші
Vitamin B12 deficiency Недостатність вітаміну B12
Diabetes Діабет
Vulvodynia Вульводинія
Endometriosis Ендометріоз
Vasculitis Васкуліт
Concussion Струс мозку
Oral leukoplakia Оральний лейкоплакія
Chronic kidney disease Хронічна хвороба нирок
Bladder disorder Порушення сечового міхура
Chorioretinitis Хоріоретиніт
Priapism Приапізм
Myositis Міозит
Mononucleosis Мононуклеоз
Neuralgia Невралгія
Polycystic kidney disease Полікістозна хвороба нирок
Bipolar disorder Біполярний розлад
Amyloidosis Амилоїдоз
Chronic inflammatory demyelinating Хронічна запальна демієлінізуюча
polyneuropathy (CIDP) полінейропатія (ХЗДП)
Gastroesophageal reflux disease (GERD) Гастроезофагеальна рефлюксна хвороба
(ГЕРХ)
Vitreous hemorrhage Склоподібна кровотеча
Poisoning due to antimicrobial drugs Отруєння через антимікробні препарати
Open wound of the mouth Відкрита рана рота
Scleroderma Склеродермія
Myasthenia gravis Міастенія гравіс
Hypoglycemia Гіпоглікемія
Idiopathic absence of menstruation Ідіопатична відсутність менструації
Dislocation of the ankle Вивих щиколотки
Carbon monoxide poisoning Отруєння чадним газом
Panic attack Панічна атака
82
Продовження таблиці В.1
Plantar fasciitis Підошовний фасциїт
Hyperopia Далекозорість
Poisoning due to sedatives Отруєння через седативи
Pemphigus Пемфігус
Peyronie disease Хвороба Пейроні
Hiatal hernia Грижа стравохідного отвору діафрагми
Extrapyramidal effect of drugs Екстрапірамідний ефект препаратів
Meniere disease Хвороба Меньєра
Anal fissure Анальна тріщина
Allergy Алергія
Chronic otitis media Хронічний середній отит
Fracture of the finger Перелом пальця
Hirschsprung disease Хвороба Гіршпрунга
Polymyalgia rheumatica Поліміалгія ревматична
Lymphedema Лімфедема
Bladder cancer Рак сечового міхура
Acute bronchospasm Гострий бронхоспазм
Acute glaucoma Гостра глаукома
Open wound of the chest Відкрита рана грудної клітини
Dislocation of the patella Вивих надколінника
Sciatica Ішіас
Hypercalcemia Гіперкальціємія
Stress incontinence Стресове нетримання сечі
Varicose veins Варикозні вени
Benign kidney cyst Доброякісна киста нирки
Hydrocele of the testicle Гідроцеле яєчка
Degenerative disc disease Дегенеративне захворювання дисків
Hirsutism Гірсутизм
Dislocation of the foot Вивих стопи
Hydronephrosis Гідронефроз
Diverticulosis Дивертикульоз
Pain after an operation Біль після операції
Huntington disease Хвороба Гантінгтона
Lymphoma Лімфома
Dermatitis due to sun exposure Дерматит через сонячне випромінювання
Anemia due to chronic kidney disease Анемія через хронічну хворобу нирок
Injury to internal organ Травма внутрішнього органу
83
Продовження таблиці В.1
Scleritis Склерит
Pterygium Птерігіум
Fungal infection of the skin Грибкова інфекція шкіри
Insulin overdose Передозування інсуліну
Syndrome of inappropriate secretion of ADH Синдром неадекватної секреції АДГ
(SIADH) (СНСАДГ)
Foreign body in the ear Чужорідне тіло у вусі
Premenstrual tension syndrome Передменструальний напруження синдром
Orbital cellulitis Орбітальний целюліт
Injury to the leg Травма ноги
Hepatic encephalopathy Печінкова енцефалопатія
Bone cancer Рак кісток
Syringomyelia Сирингомієлія
Pulmonary fibrosis Легеневий фіброз
Mitral valve disease Захворювання мітрального клапана
Parkinson disease Хвороба Паркінсона
Gout Подагра
Otitis media Середній отит
Drug abuse (opioids) Зловживання наркотиками (опіоїди)
Myelodysplastic syndrome Мієлодиспластичний синдром
Fracture of the shoulder Перелом плеча
Acute kidney injury Гостра травма нирки
Threatened pregnancy Загроза вагітності
Intracranial abscess Внутрішньочерепний абсцес
Gum disease Захворювання ясен
Open wound from surgical incision Відкрита рана від хірургічного розрізу
Gastrointestinal hemorrhage Шлунково-кишкова кровотеча
Seborrheic dermatitis Себорейний дерматит
Drug abuse (methamphetamine) Зловживання наркотиками (метамфетамін)
Torticollis Тортиколіс
Poisoning due to antihypertensives Отруєння через антигіпертензивні препарати
Tension headache Напружений головний біль
Alcohol intoxication Алкогольне інтоксикація
Scurvy Цинга
Narcolepsy Нарколепсія
Food allergy Харчова алергія
Labyrinthitis Лабіринтит
84
Продовження таблиці В.1
Anxiety Тривога
Impulse control disorder Розлад контролю імпульсів
Stenosis of the tear duct Стеноз слізного каналу
Abscess of nose Абсцес носа
Omphalitis Омфаліт
Leukemia Лейкемія
Bell palsy Параліч Белла
Conjunctivitis due to allergy Алергічний кон'юнктивіт
Drug reaction Реакція на ліки
Adrenal cancer Рак надниркової залози
Myopia Міопія
Osteoarthritis Остеоартрит
Thyroid disease Захворювання щитовидної залози
Pharyngitis Фарингіт
Chronic rheumatic fever Хронічна ревматична лихоманка
Hypocalcemia Гіпокальціємія
Macular degeneration Макулярна дегенерація
Pneumonia Пневмонія
Cold sor Герпес
Premature ventricular contractions (PVCs) Передчасні шлуночкові скорочення
Testicular cancer Рак яєчка
Hydrocephalus Гідроцефалія
Breast cancer Рак молочної залози
Anemia due to malignancy Анемія через злоякісну пухлину
Esophageal varices Варикозне розширення вен стравоходу
Endometrial cancer Рак ендометрія
Cystic fibrosis Кістозний фіброз
Intertrigo (skin condition) Інтертриго (стан шкіри)
Parathyroid adenoma Аденома паращитовидної залози
Glucocorticoid deficiency Недостатність глюкокортикоїдів
Temporomandibular joint disorder Порушення скронево-нижньощелепного
суглоба
Wilson disease Хвороба Вільсона
Vesicoureteral reflux Везико-уретеральний рефлюкс
Vitamin A deficiency Недостатність вітаміну А
Gonorrhea Гонорея
Fracture of the rib Перелом ребра
85
Продовження таблиці В.1
Ependymoma Епендимома
Hepatitis due to a toxin Гепатит через токсин
Vaginal cyst Вагінальна кіста
Open wound of the shoulder Відкрита рана плеча
Ectopic pregnancy Позаматкова вагітність
Chronic knee pain Хронічний біль у коліні
Pinguecula Пінгекула
Hypergammaglobulinemia Гіпергаммаглобулінемія
Alcohol abuse Зловживання алкоголем
Carpal tunnel syndrome Синдром карпального тунелю
Pituitary disorder Порушення гіпофізу
Kidney stone Камінь у нирці
Autism Аутизм
Cat scratch disease Хвороба котячих подряпин
Chronic glaucoma Хронічна глаукома
Retinal detachment Відшарування сітківки
Aplastic anemia Апластична анемія
Overflow incontinence Переповнюване нетримання сечі
Hemolytic anemia Гемолітична анемія
Lateral epicondylitis (tennis elbow) Латеральний епікондиліт (тенісний лікоть)
Open wound of the eye Відкрита рана ока
Syphilis Сифіліс
Diabetic kidney disease Діабетична хвороба нирок
Nose disorder Захворювання носа
Drug withdrawal Відмова від наркотиків
Dental caries Карієс
Hypercholesterolemia Гіперхолестеринемія
Fracture of the patella Перелом надколінника
Kidney failure Ниркова недостатність
Fracture of the neck Перелом шиї
Muscle spasm М'язовий спазм
Hemophilia Гемофілія
Hyperosmotic hyperketotic state Гіперосмотичний гіперкетотичний стан
Peritonsillar abscess Перитонзилярний абсцес
Gastroparesis Гастропарез
Itching of unknown cause Свербіж невідомої причини
Polycythemia vera Поліцитемія вера
86
Продовження таблиці В.1
Thrombocytopenia Тромбоцитопенія
Head and neck cancer Рак голови та шиї
Pseudohypoparathyroidism Псевдогіпопаратиреоз
Goiter Зоб
Urge incontinence Неутримання позиву
Edward syndrome Синдром Едвардса
Open wound of the arm Відкрита рана руки
Muscular dystrophy М'язова дистрофія
Mittelschmerz Міттельшмерц
Corneal abrasion Відшарування рогівки
Anemia of chronic disease Анемія хронічного захворювання
Dysthymic disorder Дистимічний розлад
Scarlet fever Скарлатина
Hypertensive heart disease Гіпертонічне серцеве захворювання
Drug abuse (barbiturates) Зловживання барбітуратами
Polycystic ovarian syndrome (PCOS) Синдром полікістозних яєчників (СПКЯ)
Encephalitis Енцефаліт
Cyst of the eyelid Кіста повіки
Balanitis Баланіт
Foreign body in the throat Чужорідне тіло в горлі
Drug abuse (cocaine) Зловживання кокаїном
Optic neuritis Оптичний неврит
Alcohol withdrawal Алкогольна абстиненція
Premature atrial contractions (PACs) Передчасні скорочення передсердь
Hemiplegia Геміплегія
Hammer toe Палець у вигляді молотка
Open wound of the cheek Відкрита рана щоки
Joint effusion Накопичення рідини в суглобі
Open wound of the knee Відкрита рана коліна
Meningioma Менінгіома
Brain cancer Рак мозку
Placental abruption Відшарування плаценти
Seasonal allergies (hay fever) Сезонні алергії (сінна лихоманка)
Lung cancer Рак легені
Primary kidney disease Первинне захворювання нирок
Uterine cancer Рак матки
Dry eye of unknown cause Сухе око невідомої причини
87
Продовження таблиці В.1
Fibrocystic breast disease Фіброзно-кістозна хвороба молочної залози
Fungal infection of the hair Грибкова інфекція волосся
Tooth abscess Абсцес зуба
Envenomation from spider or animal bite Отруєння від укусу павука або тварини
VACTERL syndrome Синдром VACTERL
Vertebrobasilar insufficiency Вертибробазилярна недостатність
Rectal disorder Ректальний розлад
Atonic bladder Атонічний сечовий міхур
Benign paroxysmal positional vertigo (BPPV) Доброякісне пароксизмальне позиційне
запаморочення (ДППЗ)
Blepharospasm Блефароспазм
Sarcoidosis Саркоїдоз
Metastatic cancer Метастатичний рак
Trigger finger (finger disorder) Триггерний палець (розлад пальця)
Stye Ячмінь
Hemochromatosis Гемохроматоз
Osteochondroma Остеохондрома
Cushing syndrome Синдром Кушинга
Typhoid fever Тифозна лихоманка
Vitreous degeneration Дегенерація склоподібного тіла
Atrophic skin condition Атрофічний стан шкіри
Aspergillosis Аспергільоз
Uterine atony Атонія матки
Trichinosis Трихіноз
Whooping cough Кашлюк
Open wound of the lip Відкрита рана губи
Subacute thyroiditis Підгострий тиреоїдит
Oral mucosal lesion Ураження слизової оболонки рота
Open wound due to trauma Відкрита рана через травму
Intracerebral hemorrhage Внутрішньомозкова кровотеча
Alzheimer disease Хвороба Альцгеймера
Vaginismus Вагінізм
Systemic lupus erythematosus (SLE) Системний червоний вовчак (СЧВ)
Premature ovarian failure Передчасна недостатність яєчників
Thoracic outlet syndrome Синдром верхнього отвору грудної клітки
Ganglion cyst Гангліозна кіста
Dislocation of the knee Вивих коліна
88
Продовження таблиці В.1
Crohn disease Хвороба Крона
Postoperative infection Післяопераційна інфекція
Folate deficiency Недостатність фолатів
Fluid overload Перевантаження рідиною
Atrial flutter Тріпотіння передсердь
Skin disorder Захворювання шкіри
Floaters Плаваючі помутніння
Tooth disorder Порушення зубів
Heart attack Інфаркт міокарда
Open wound of the abdomen Відкрита рана живота
Fracture of the leg Перелом ноги
Oral thrush (yeast infection) Кандидоз рота (дріжджова інфекція)
Pityriasis rosea Лишай Жибера
Allergy to animals Алергія на тварин
Orthostatic hypotension Ортостатична гіпотензія
Obstructive sleep apnea (OSA) Обструктивне апное сну (ОАС)
Hypokalemia Гіпокаліємія
Psoriasis Псоріаз
Dislocation of the shoulder Вивих плеча
Intussusception Інвагінація
Cervicitis Цервіцит
Abscess of the pharynx Абсцес глотки
Primary thrombocythemia Первинна тромбоцитемія
Arthritis of the hip Артрит стегна
Decubitus ulcer Пролежень
Hypernatremia Гіпернатріємія
Sensorineural hearing loss Сенсоневральна втрата слуху
Chronic ulcer Хронічна виразка
Osteoporosis Остеопороз
Ileus Кишковий параліч
Sickle cell crisis Криза при серповидноклітинній анемії
Urethritis Уретрит
Prostatitis Простатит
Otitis externa (swimmer's ear) Зовнішній отит (вухо плавця)
Poisoning due to anticonvulsants Отруєння антиконвульсантами
Testicular torsion Торсія яєчка
Tricuspid valve disease Захворювання трикуспідального клапана
89
Продовження таблиці В.1
Urethral stricture Стриктура уретри
Vitamin D deficiency Недостатність вітаміну D
Hydatidiform mole Пухлиноподібне розростання трофобласта
Pain disorder affecting the neck Больовий розлад, що впливає на шию
Tuberculosis Туберкульоз
Pelvic fistula Тазова фістула
Acute bronchiolitis Гострий бронхіоліт
Presbyopia Пресбіопія
Dementia Деменція
Insect bite Укус комахи
Paroxysmal ventricular tachycardia Пароксизмальна шлуночкова тахікардія
Congenital heart defect Вроджена вада серця
Connective tissue disorder Розлад сполучної тканини
Foreign body in the eye Чужорідне тіло в оці
Poisoning due to gas Отруєння газом
Pyogenic skin infection Піогенна інфекція шкіри
Endometrial hyperplasia Гіперплазія ендометрія
Acanthosis nigricans Чорний акантоз
Central atherosclerosis Центральний атеросклероз
Viral exanthem Вірусна екзантема
Noninfectious gastroenteritis Неінфекційний гастроентерит
Benign prostatic hyperplasia (BPH) Доброякісна гіперплазія простати (ДГП)
Menopause Менопауза
Primary immunodeficiency Первинна імунодефіцит
Ovarian cancer Рак яєчника
Cataract Катаракта
Dislocation of the hip Вивих стегна
Spinal stenosis Стеноз хребта
Intestinal obstruction Кишкова непрохідність
Heart contusion Контузія серця
Congenital malformation syndrome Синдром вроджених вад
Sporotrichosis Споротрихоз
Lymphangitis Лімфангіт
Wernicke-Korsakoff syndrome Синдром Верніке-Корсакова
Intestinal disease Захворювання кишечника
Acute bronchitis Гострий бронхіт
Persistent vomiting of unknown cause Постійне блювання невідомої причини
90
Продовження таблиці В.1
Open wound of the foot Відкрита рана стопи
Myocarditis Міокардит
Preeclampsia Прееклампсія
Ischemic heart disease Ішемічна хвороба серця
Neurofibromatosis Нейрофіброматоз
Chickenpox Вітряна віспа
Pancreatic cancer Рак підшлункової залози
Neuropathy due to drugs Невропатія через ліки
Croup Круп
Idiopathic excessive menstruation Ідіопатичні надмірні менструації
Amblyopia Амбліопія
Meckel diverticulum Дивертикул Меккеля
Dislocation of the wrist Вивих зап'ястя
Ear drum damage Пошкодження барабанної перетинки
Erectile dysfunction Еректильна дисфункція
Temporary or benign blood in urine Тимчасова або доброякісна кров у сечі
Kidney disease due to longstanding Захворювання нирок через тривалу
hypertension гіпертензію
Chondromalacia of the patella Хондромаляція надколінника
Onychomycosis Оніхомікоз
Urethral disorder Порушення уретри
Lyme disease Хвороба Лайма
Iron deficiency anemia Анемія через дефіцит заліза
Acute respiratory distress syndrome (ARDS) Гострий респіраторний дистрес-синдром
(ГРДС)
Toxic multinodular goiter Токсичний багатовузловий зоб
Open wound of the finger Відкрита рана пальця
Autonomic nervous system disorder Порушення автономної нервової системи
Psychosexual disorder Психосексуальний розлад
Anemia Анемія
Tendinitis Тендиніт
Common cold Застуда
Amyotrophic lateral sclerosis (ALS) Аміотрофічний латеральний склероз (АЛС)
Central retinal artery or vein occlusion Оклюзія центральної артерії або вени сітківки
Paroxysmal supraventricular tachycardia Пароксизмальна суправентрикулярна
тахікардія
Venous insufficiency Венозна недостатність
Trichomonas infection Інфекція трихомонас
91
Продовження таблиці В.1
Acne Акне
Depression Депресія
Drug abuse Зловживання наркотиками
Urinary tract obstruction Обструкція сечовивідних шляхів
Diabetes insipidus Нецукровий діабет
Iridocyclitis Іридоцикліт
Varicocele of the testicles Варикоцеле яєчок
Irritable bowel syndrome Синдром роздратованого кишечника
Fracture of the foot Перелом стопи
Ovarian cyst Кіста яєчника
Chlamydia Хламідія
Parasitic disease Паразитарне захворювання
Fracture of the jaw Перелом щелепи
Lipoma Ліпома
Female genitalia infection Інфекція жіночих статевих органів
Pulmonary hypertension Легенева гіпертензія
Thyroid nodule Вузол щитовидної залози
Broken tooth Зламаний зуб
Dumping syndrome Синдром швидкого спорожнення
Lymphadenitis Лімфаденіт
Injury to the face Травма обличчя
Aortic valve disease Захворювання аортального клапана
Rheumatoid arthritis Ревматоїдний артрит
Spermatocele Сперматоцеле
Impetigo Імпетиго
Anal fistula Анальна фістула
Hypothermia Гіпотермія
Oppositional disorder Розлад опозиційної поведінки
Migraine Мігрень
Diabetic peripheral neuropathy Діабетична периферійна нейропатія
Testicular disorder Порушення яєчка
Gestational diabetes Гестаційний діабет
Hidradenitis suppurativa Гідраденіт супуративний
Valley fever Каліфорнійська гарячка
Conjunctivitis due to bacteria Бактеріальний кон'юнктивіт
Lewy body dementia Деменція з тільцями Леві
Multiple myeloma Множинна мієлома
92
Продовження таблиці В.1
Head injury Травма голови
Ascending cholangitis Висхідний холангіт
Idiopathic irregular menstrual cycle Ідіопатичний нерегулярний менструальний
цикл
Interstitial lung disease Інтерстиціальне захворювання легень
Mononeuritis Мононеврит
Malaria Малярія
Somatization disorder Соматизаційний розлад
Hypovolemia Гіповолемія
Schizophrenia Шизофренія
Knee ligament or meniscus tear Розрив зв'язки або меніска коліна
Endocarditis Ендокардит
Sepsis Сепсис
Heat stroke Сонячний удар
Cholecystitis Холецистит
Cardiac arrest Зупинка серця
Cardiomyopathy Кардіоміопатія
Social phobia Соціальна фобія
Meningitis Менінгіт
Spherocytosis Сфероцитоз
Hormone disorder Гормональний розлад
Raynaud disease Хвороба Рейно
Reactive arthritis Реактивний артрит
Scabies Короста
Ear wax impaction Закупорка вушної сірки
Hypertension of pregnancy Гіпертензія під час вагітності
Peripheral arterial embolism Периферійна артеріальна емболія
Rosacea Розацеа
Fracture of the skull Перелом черепа
Uveitis Увіїт
Fracture of the facial bones Перелом кісток обличчя
Tracheitis Трахеїт
Jaw disorder Порушення щелепи
Perirectal infection Перианальна інфекція
Breast cyst Кіста молочної залози
Post-traumatic stress disorder (PTSD) Посттравматичний стресовий розлад (ПТСР)
Kidney cancer Рак нирки
93
Продовження таблиці В.1
Vulvar cancer Рак вульви
Blepharitis Блефарит
Celiac disease Целіакія
Cystitis Цистит
Sickle cell anemia Серповидноклітинна анемія
Subconjunctival hemorrhage Підкон'юнктивальна кровотеча
Hemorrhoids Геморой
Contact dermatitis Контактний дерматит
Sinus bradycardia Синусова брадикардія
High blood pressure Високий кров'яний тиск
Pelvic inflammatory disease Запальне захворювання тазових органів
Liver disease Захворювання печінки
Chronic constipation Хронічний запор
Thyroid cancer Рак щитовидної залози
Flu Грип
Friedrich ataxia Атаксія Фрідріха
Tic (movement) disorder Розлад тік (руху)
Skin polyp Поліп шкіри
Brachial neuritis Плечовий неврит
Cervical cancer Рак шийки матки
Adrenal adenoma Аденома надниркової залози
Esophagitis Езофагіт
Gas gangrene Газова гангрена
Yeast infection Дріжджова інфекція
Spina bifida Розщеплення хребта
Drug poisoning due to medication Отруєння через ліки
Alcoholic liver disease Алкогольне захворювання печінки
Malignant hypertension Злоякісна гіпертензія
Diverticulitis Дивертикуліт
Moyamoya disease Хвороба Моямоя
Heat exhaustion Виснаження від спеки
Psychotic disorder Психотичний розлад
Frostbite Обмороження
Atrophy of the corpus cavernosum Атрофія печеристих тіл
Smoking or tobacco addiction Куріння або залежність від тютюну
Sprain or strain Розтягнення або розрив
Essential tremor Первинний тремор
94
Продовження таблиці В.1
Open wound of the ear Відкрита рана вуха
Foreign body in the nose Чужорідне тіло в носі
Idiopathic painful menstruation Ідіопатичні болісні менструації
Down syndrome Синдром Дауна
Idiopathic infrequent menstruation Ідіопатичні рідкісні менструації
Pneumothorax Пневмоторакс
De Quervain disease Хвороба де Кервена
Fracture of the vertebra Перелом хребця
Human immunodeficiency virus infection Інфекція вірусу імунодефіциту людини (ВІЛ)
(HIV)
Mumps Свинка
Subarachnoid hemorrhage Субарахноїдна кровотеча
Acute fatty liver of pregnancy (AFLP) Гостра жирова дистрофія печінки під час
вагітності (ГЖДП)
Ectropion Ектропіон
Scar Шрам
Lactose intolerance Непереносимість лактози
Eustachian tube dysfunction (ear disorder) Порушення функції євстахієвої труби
(захворювання вуха)
Appendicitis Апендицит
Graves disease Хвороба Грейвса
Dissociative disorder Дисоціативний розлад
Open wound of the face Відкрита рана обличчя
Dislocation of the vertebra Вивих хребця
Phimosis Фімоз
Hyperemesis gravidarum Гіперемезис вагітних
Pregnancy Вагітність
Thalassemia Таласемія
Placenta previa Передлежання плаценти
Epidural hemorrhage Епідуральна кровотеча
Septic arthritis Септичний артрит
Athlete's foot Грибок стопи
Pleural effusion Плевральний випіт
Aphakia Афакія
Vulvar disorder Порушення вульви
Sialoadenitis Сіаладеніт
Gynecomastia Гінекомастія
Urinary tract infection Інфекція сечовивідних шляхів
95
Продовження таблиці В.1
Histoplasmosis Гістоплазмоз
Erythema multiforme Багатоформна еритема
Scoliosis Сколиоз
Bunion Кісточка
Arrhythmia Аритмія
Trigeminal neuralgia Тригемінальна невралгія
Ankylosing spondylitis Анкілозуючий спондиліт
Peripheral nerve disorder Периферійний нервовий розлад
Sebaceous cyst Сальна кіста
Poisoning due to antipsychotics Отруєння антипсихотиками
Neurosis Невроз
Prostate cancer Рак простати
Cerebral edema Мозковий набряк
Dislocation of the finger Вивих пальця
Birth trauma Травма при народженні
Chronic pancreatitis Хронічний панкреатит
Hematoma Гематома
Carcinoid syndrome Карциноїдний синдром
Open wound of the head Відкрита рана голови
Seborrheic keratosis Себорейний кератоз
Burn Опік
Spontaneous abortion Мимовільний аборт
Genital herpes Генітальний герпес
Adjustment reaction Адаптаційна реакція
Gallstone Жовчний камінь
Multiple sclerosis Розсіяний склероз
Zenker diverticulum Дивертикул Зенкера
Fracture of the pelvis Перелом тазу
Pneumoconiosis Пневмоконіоз
Hyperlipidemia Гіперліпідемія
Ulcerative colitis Виразковий коліт
Male genitalia infection Інфекція чоловічих статевих органів
HPV Вірус папіломи людини (ВПЛ)
Angina Стенокардія
Injury to the spinal cord Травма спинного мозку
Nasal polyp Назальний поліп
Lichen simplex Простий лишай
96
Продовження таблиці В.1
Trichiasis Трихиаз
Acariasis Акараз
Colorectal cancer Колоректальний рак
Skin pigmentation disorder Порушення пігментації шкіри
Factitious disorder Фіктивний розлад
Lymphogranuloma venereum Венерична лімфогранулема
Galactorrhea of unknown cause Галакторея невідомої причини
G6PD enzyme deficiency Недостатність ферменту Г6ФД
Nerve impingement near the shoulder Затискання нерва біля плеча
Toxoplasmosis Токсоплазмоз
Fibroadenoma Фіброаденома
Open wound of the hand Відкрита рана руки
Missed abortion Перерваний аборт
Diabetic ketoacidosis Діабетичний кетоацидоз
Granuloma inguinale Гранульома пахова
Obsessive compulsive disorder (OCD) Обсесивно-компульсивний розлад (ОКР)
Injury of the ankle Травма щиколотки
Hyponatremia Гіпонатріємія
Stricture of the esophagus Стеноз стравоходу
Fracture of the ankle Перелом щиколотки
Soft tissue sarcoma Саркома м'яких тканин
Bone disorder Порушення кісток
Epilepsy Епілепсія
Personality disorder Розлад особистості
Shingles (herpes zoster) Опоясуючий лишай (герпес зостер)
Tourette syndrome Синдром Туретта
Avascular necrosis Авскулярний некроз
Strep throat Стрептококовий фарингіт
Spinocerebellar ataxia Спіноцеребелярна атаксія
Osteomyelitis Остеомієліт
Sjogren syndrome Синдром Шегрена
Adhesive capsulitis of the shoulder Адгезивний капсуліт плеча
Viral hepatitis Вірусний гепатит
Tonsillar hypertrophy Гіпертрофія мигдаликів
Gastritis Гастрит
Skin cancer Рак шкіри
Rheumatic fever Ревматична гарячка
97
Продовження таблиці В.1
Aphthous ulcer Афтозний виразок
Tonsillitis Тонзиліт
Intestinal cancer Рак кишечника
Rocky Mountain spotted fever Лихоманка Скелястих гір
Stomach cancer Рак шлунка
Developmental disability Розвиткові вади
Acute stress reaction Гостра стресова реакція
Delirium Делірій
Callus Мозоль
Guillain Barre syndrome Синдром Гієна-Барре
Lumbago Люмбаго
Deviated nasal septum Викривлення носової перегородки
Hemangioma Гемангіома
Peripheral arterial disease Периферійна артеріальна хвороба
Chronic back pain Хронічний біль у спині
Heart failure Серцева недостатність
Conjunctivitis Кон'юнктивіт
Herniated disk Грижа міжхребцевого диска
Rhabdomyolysis Рабдоміоліз
Breast infection (mastitis) Інфекція молочної залози (мастит)
Abdominal aortic aneurysm Аневризма черевної аорти
Pulmonary embolism Легенева емболія
Conduct disorder Розлад поведінки
Mastectomy Мастектомія
Epididymitis Епідидиміт
Premature rupture of amniotic membrane Передчасний розрив амніотичної оболонки
Molluscum contagiosum Контагіозний молюск
Necrotizing fasciitis Некротизуючий фасціит
Benign vaginal discharge (leukorrhea) Доброякісні вагінальні виділення (лейкорея)
Bladder obstruction Обструкція сечового міхура
Melanoma Меланома
Cervical disorder Порушення шийки матки
Laryngitis Ларингіт
Dyshidrosis Дисгідроз
Poisoning due to opioids Отруєння через опіоїди
Diaper rash Попрілості
Lichen planus Плоский лишай
98
Продовження таблиці В.1
Gastroduodenal ulcer Гастродуоденальна виразка
Inguinal hernia Пахова грижа
Eczema Екзема
Asperger syndrome Синдром Аспергера
Mucositis Мукозит
Paronychia Пароніхія
Open wound of the jaw Відкрита рана щелепи
White blood cell disease Захворювання білих кров'яних клітин
Kaposi sarcoma Саркома Капоші
Spondylolisthesis Спондилолістез
Pseudotumor cerebri Псевдопухлина мозку
Conjunctivitis due to virus Вірусний кон'юнктивіт
Open wound of the nose Відкрита рана носа1
Таблиця В.2 – симптоми українською і англійською мовами
Назва симптому англійською Назва симптому українською
Anxiety and nervousness Тривога та нервозність
Depression Депресія
Shortness of breath Задишка
Depressive or psychotic symptoms Депресивні або психотичні симптоми
Sharp chest pain Гострий біль у грудях
Dizziness Запаморочення
Insomnia Безсоння
Abnormal involuntary movements Ненормальні мимовільні рухи
Chest tightness Стиснення у грудях
Palpitations Серцебиття
Irregular heartbeat Нерегулярний серцевий ритм
Breathing fast Швидке дихання
Hoarse voice Хрипкий голос
Sore throat Біль у горлі
Difficulty speaking Труднощі з мовою
Cough Кашель
Nasal congestion Закладеність носа
Throat swelling Набряк горла
Diminished hearing Зниження слуху
Lump in throat Комок у горлі
Throat feels tight Відчуття стиснення у горлі
Difficulty in swallowing Труднощі з ковтанням
Skin swelling Набряк шкіри
Retention of urine Затримка сечі
Groin mass Пухлина в паху
Leg pain Біль у нозі
99
Продовження таблиці В.2
Hip pain Біль у стегні
Suprapubic pain Біль у надлобковій зоні
Blood in stool Кров у калі
Lack of growth Відсутність росту
Emotional symptoms Емоційні симптоми
Elbow weakness Слабкість ліктя
Back weakness Слабкість спини
Pus in sputum Гній у мокроті
Symptoms of the scrotum and testes Симптоми мошонки та яєчок
Swelling of scrotum Набряк мошонки
Pain in testicles Біль у яєчках
Flatulence Метеоризм
Pus draining from ear Виділення гною з вуха
Jaundice Жовтяниця
Mass in scrotum Пухлина у мошонці
White discharge from eye Біле виділення з ока
Irritable infant Дитяча роздратованність
Abusing alcohol Зловживання алкоголем
Fainting Непритомність
Hostile behavior Ворожа поведінка
Drug abuse Зловживання наркотиками
Sharp abdominal pain Гострий біль у животі
Feeling ill Відчуття нездужання
Vomiting Блювання
Headache Головний біль
Nausea Нудота
Diarrhea Діарея
Vaginal itching Свербіж вагіни
Vaginal dryness Сухість вагіни
Painful urination Болісне сечовипускання
Involuntary urination Мимовільне сечовипускання
Pain during intercourse Біль під час статевого акту
Frequent urination Часте сечовипускання
Lower abdominal pain Біль у нижній частині живота
Vaginal discharge Виділення з вагіни
Blood in urine Кров у сечі
Hot flashes Припливи
Intermenstrual bleeding Міжменструальна кровотеча
Hand or finger pain Біль у руках або пальцях
Wrist pain Біль у зап'ясті
Hand or finger swelling Набряк рук або пальців
Arm pain Біль у руці
Wrist swelling Набряк зап'ястя
Arm stiffness or tightness Скутість або стиснення у руці
Arm swelling Набряк руки
Hand or finger stiffness or tightness Скутість або стиснення у руках або пальцях
Wrist stiffness or tightness Скутість або стиснення у зап'ясті
Lip swelling Набряк губ
Toothache Зубний біль
100
Продовження таблиці В.2
Abnormal appearing skin Аномальний вигляд шкіри
Skin lesion Ураження шкіри
Acne or pimples Акне або прищі
Dry lips Сухі губи
Facial pain Біль на обличчі
Mouth ulcer Виразка у роті
Skin growth Ріст шкіри
Eye deviation Відхилення ока
Diminished vision Зниження зору
Double vision Подвійне бачення
Cross-eyed Косоокість
Symptoms of eye Симптоми ока
Pain in eye Біль в оці
Eye moves abnormally Ненормальні рухи ока
Abnormal movement of eyelid Ненормальні рухи повіка
Foreign body sensation in eye Відчуття чужорідного тіла в оці
Irregular appearing scalp Аномальний вигляд скальпу
Swollen lymph nodes Набряк лімфатичних вузлів
Back pain Біль у спині
Neck pain Біль у шиї
Low back pain Біль у попереку
Pain of the anus Біль у анусі
Pain during pregnancy Біль під час вагітності
Pelvic pain Біль у тазі
Impotence Імпотенція
Infant spitting up Відрижка у немовляти
Vomiting blood Блювання кров'ю
Regurgitation Регургітація
Burning abdominal pain Пекучий біль у животі
Restlessness Неспокій
Symptoms of infants Симптоми у немовлят
Wheezing Хрипи
Peripheral edema Периферійний набряк
Neck mass Пухлина на шиї
Ear pain Біль у вусі
Jaw swelling Набряк щелепи
Mouth dryness Сухість у роті
Neck swelling Набряк шиї
Knee pain Біль у коліні
Foot or toe pain Біль у нозі або пальцях стопи
Bowlegged or knock-kneed Вигнуті або збиті коліна
Ankle pain Біль у щиколотці
Bones are painful Біль у кістках
Knee weakness Слабкість коліна
Elbow pain Біль у лікті
Knee swelling Набряк коліна
Skin moles Родимки на шкірі
Knee lump or mass Пухлина або вузлик на коліні
Weight gain Набір ваги
101
Продовження таблиці В.2
Problems with movement Проблеми з рухом
Knee stiffness or tightness Скутість або стиснення в коліні
Leg swelling Набряк ноги
Foot or toe swelling Набряк ноги або пальців стопи
Heartburn Печія
Smoking problems Проблеми з курінням
Muscle pain М'язовий біль
Infant feeding problem Проблема з годуванням немовляти
Recent weight loss Остання втрата ваги
Problems with shape or size of breast Проблеми з формою або розміром грудей
Underweight Недостатня вага
Difficulty eating Труднощі з їжею
Scanty menstrual flow Мізерні менструації
Vaginal pain Біль у вагіні
Vaginal redness Почервоніння вагіни
Vulvar irritation Подразнення вульви
Weakness Слабкість
Decreased heart rate Зниження серцевого ритму
Increased heart rate Підвищення серцевого ритму
Bleeding or discharge from nipple Кровотеча або виділення з соска
Ringing in ear Дзвін у вусі
Plugged feeling in ear Відчуття закладеності у вусі
Itchy ear(s) Свербіж у вусі (вухах)
Frontal headache Лобовий головний біль
Fluid in ear Рідина у вусі
Neck stiffness or tightness Скутість або стиснення шиї
Spots or clouds in vision Плями або хмари в зору
Eye redness Почервоніння очей
Lacrimation Сльозотеча
Itchiness of eye Свербіж очей
Blindness Сліпота
Eye burns or stings Печіння або поколювання очей
Itchy eyelid Свербіж повіка
Feeling cold Відчуття холоду
Decreased appetite Зниження апетиту
Excessive appetite Надмірний апетит
Excessive anger Надмірна лють
Loss of sensation Втрата чутливості
Focal weakness Фокусна слабкість
Slurring words Нечітка мова
Symptoms of the face Симптоми на обличчі
Disturbance of memory Порушення пам'яті
Paresthesia Парестезія
Side pain Біль у боці
Fever Гарячка
Shoulder pain Біль у плечі
Shoulder stiffness or tightness Скутість або стиснення у плечі
Shoulder weakness Слабкість плеча
Arm cramps or spasms Судоми або спазми у руці
102
Продовження таблиці В.2
Shoulder swelling Набряк плеча
Tongue lesions Ураження язика
Leg cramps or spasms Судоми або спазми в нозі
Abnormal appearing tongue Ненормальний вигляд язика
Ache all over Біль по всьому тілу
Lower body pain Біль у нижній частині тіла
Problems during pregnancy Проблеми під час вагітності
Spotting or bleeding during pregnancy Кровотеча або виділення під час вагітності
Cramps and spasms Судоми та спазми
Upper abdominal pain Біль у верхній частині живота
Stomach bloating Здуття живота
Changes in stool appearance Зміни у вигляді калу
Unusual color or odor to urine Незвичайний колір або запах сечі
Kidney mass Пухлина нирки
Swollen abdomen Набряклий живіт
Symptoms of prostate Симптоми простати
Leg stiffness or tightness Скутість або стиснення ніг
Difficulty breathing Труднощі з диханням
Rib pain Біль у ребрах
Joint pain Біль у суглобах
Muscle stiffness or tightness Скутість або стиснення м'язів
Pallor Блідість
Hand or finger lump or mass Пухлина або вузлик на руці чи пальці
Chills Озноб
Groin pain Біль у паху
Fatigue Втома
Abdominal distention Здуття живота
Regurgitation Регургітація
Symptoms of the kidneys Симптоми нирок
Melena Мелена
Flushing Припливи
Coughing up sputum Кашель із виділенням мокротиння
Seizures Судоми
Delusions or hallucinations Марення або галюцинації
Shoulder cramps or spasms Судоми або спазми у плечі
Joint stiffness or tightness Скутість або стиснення суглобів
Pain or soreness of breast Біль або біль у грудях
Excessive urination at night Надмірне сечовипускання вночі
Bleeding from eye Кровотеча з ока
Rectal bleeding Ректальна кровотеча
Constipation Запор
Temper problems Проблеми з настроєм
Coryza Риніт
Wrist weakness Слабкість зап'ястя
Eye strain Напруга очей
Hemoptysis Кровохаркання
Lymphedema Лімфедема
Skin on leg or foot looks infected Шкіра на нозі або стопі виглядає зараженою
Allergic reaction Алергічна реакція
103
Продовження таблиці В.2
Congestion in chest Застій у грудях
Muscle swelling Набряк м'язів
Pus in urine Гній у сечі
Abnormal size or shape of ear Ненормальний розмір або форма вуха
Low back weakness Слабкість попереку
Sleepiness Сонливість
Apnea Апное
Abnormal breathing sounds Ненормальні звуки дихання
Excessive growth Надмірний ріст
Elbow cramps or spasms Судоми або спазми у лікті
Feeling hot and cold Відчуття спеки та холоду
Blood clots during menstrual periods Згустки крові під час менструацій
Absence of menstruation Відсутність менструації
Pulling at ears Потягування за вуха
Gum pain Біль у яснах
Redness in ear Почервоніння у вусі
Fluid retention Затримка рідини
Flu-like syndrome Грипоподібний синдром
Sinus congestion Закладеність носових пазух
Painful sinuses Болісні пазухи
Fears and phobias Страхи та фобії
Recent pregnancy Недавня вагітність
Uterine contractions Маткові скорочення
Burning chest pain Пекучий біль у грудях
Back cramps or spasms Судоми або спазми у спині
Stiffness all over Скутість у всьому тілі
Muscle cramps, contractures, or spasms М'язові судоми, контрактури або спазми
Low back cramps or spasms Судоми або спазми у попереку
Back mass or lump Пухлина або вузлик на спині
Nosebleed Носова кровотеча
Long menstrual periods Довгі менструації
Heavy menstrual flow Рясні менструації
Unpredictable menstruation Непередбачувані менструації
Painful menstruation Болісні менструації
Infertility Безпліддя
Frequent menstruation Часті менструації
Sweating Потовиділення
Mass on eyelid Пухлина на повіці
Swollen eye Набрякле око
Eyelid swelling Набряк повіки
Eyelid lesion or rash Ураження або висип на повіці
Unwanted hair Небажане волосся
Symptoms of bladder Симптоми сечового міхура
Irregular appearing nails Ненормальний вигляд нігтів
Itching of skin Свербіж шкіри
Hurts to breathe Біль при диханні
Nailbiting Гризіння нігтів
Skin dryness, peeling, scaliness, or roughness Сухість шкіри, лущення, лускатість або
шорсткість
104
Продовження таблиці В.2
Skin on arm or hand looks infected Шкіра на руці або кисті виглядає зараженою
Skin irritation Подразнення шкіри
Itchy scalp Свербіж скальпу
Hip swelling Набряк стегна
Incontinence of stool Нетримання калу
Foot or toe cramps or spasms Судоми або спазми в стопі або пальцях
Warts Бородавки
Bumps on penis Горбики на пенісі
Too little hair Занадто мало волосся
Foot or toe lump or mass Пухлина або вузлик на стопі або пальцях
Skin rash Висип на шкірі
Mass or swelling around the anus Пухлина або набряк навколо ануса
Low back swelling Набряк попереку
Ankle swelling Набряк щиколотки
Hip lump or mass Пухлина або вузлик на стегні
Drainage in throat Виділення у горлі
Dry or flaky scalp Сухий або лущиться скальп
Premenstrual tension or irritability Передменструальне напруження або
дратівливість
Feeling hot Відчуття спеки
Feet turned in Підвернуті стопи
Foot or toe stiffness or tightness Скутість або стиснення в стопі або пальцях
Pelvic pressure Тиск у тазі
Elbow swelling Набряк ліктя
Elbow stiffness or tightness Скутість або стиснення у лікті
Early or late onset of menopause Ранній або пізній початок менопаузи
Mass on ear Пухлина на вусі
Bleeding from ear Кровотеча з вуха
Hand or finger weakness Слабкість руки або пальців
Low self-esteem Низька самооцінка
Throat irritation Подразнення горла
Itching of the anus Свербіж ануса
Swollen or red tonsils Набряклі або червоні мигдалики
Irregular belly button Нерівний пупок
Swollen tongue Набряк язика
Lip sore Болячка на губі
Vulvar sore Болячка на вульві
Hip stiffness or tightness Скутість або стиснення в стегні
Mouth pain Біль у роті
Arm weakness Слабкість руки
Leg lump or mass Пухлина або вузлик на нозі
Disturbance of smell or taste Порушення запаху або смаку
Discharge in stools Виділення у калі
Penis pain Біль у пенісі
Loss of sex drive Втрата статевого потягу
Obsessions and compulsions Нав'язливі ідеї та дії
Antisocial behavior Антисоціальна поведінка
Neck cramps or spasms Судоми або спазми шиї
Pupils unequal Нерівні зіниці
105
Продовження таблиці В.2
Poor circulation Погане кровообіг
Thirst Спрага
Sleepwalking Лунатизм
Skin oiliness Жирність шкіри
Sneezing Чхання
Bladder mass Пухлина сечового міхура
Knee cramps or spasms Судоми або спазми коліна
Premature ejaculation Передчасна еякуляція
Leg weakness Слабкість ніг
Posture problems Проблеми з поставою
Bleeding in mouth Кровотеча в роті
Tongue bleeding Кровотеча язика
Change in skin mole size or color Зміна розміру або кольору родимки
Penis redness Почервоніння пеніса
Penile discharge Виділення з пеніса
Shoulder lump or mass Пухлина або вузлик на плечі
Polyuria Поліурія
Cloudy eye Каламутне око
Hysterical behavior Істерична поведінка
Arm lump or mass Пухлина або вузлик на руці
Nightmares Нічні кошмари
Bleeding gums Кровотеча ясен
Pain in gums Біль у яснах
Bedwetting Нічне нетримання сечі
Diaper rash Попрілості
Lump or mass of breast Пухлина або вузлик у грудях
Vaginal bleeding after menopause Вагінальна кровотеча після менопаузи
Infrequent menstruation Рідкісні менструації
Mass on vulva Пухлина на вульві
Jaw pain Біль у щелепі
Itching of scrotum Свербіж мошонки
Postpartum problems of the breast Післяпологові проблеми грудей
Eyelid retracted Втягнута повіка
Hesitancy Вагання
Elbow lump or mass Пухлина або вузлик на лікті
Muscle weakness М'язова слабкість
Throat redness Почервоніння горла
Joint swelling Набряк суглобів
Tongue pain Біль у язикові
Redness in or around nose Почервоніння у або навколо носа
Wrinkles on skin Зморшки на шкірі
Foot or toe weakness Слабкість стопи або пальців
Hand or finger cramps or spasms Судоми або спазми у руках або пальцях
Back stiffness or tightness Скутість або стиснення у спині
Wrist lump or mass Пухлина або вузлик на зап'ясті
Skin pain Біль у шкірі
Low back stiffness or tightness Скутість або стиснення у попереку
Low urine output Мала кількість сечі
Skin on head or neck looks infected Шкіра на голові або шиї виглядає зараженою
106
Продовження таблиці В.2
Stuttering or stammering Заїкання
Problems with orgasm Проблеми з оргазмом
Nose deformity Деформація носа
Lump over jaw Пухлина над щелепою
Sore in nose Болячка у носі
Hip weakness Слабкість стегна
Back swelling Набряк спини
Ankle stiffness or tightness Скутість або стиснення у щиколотці
Ankle weakness Слабкість щиколотки
Neck weakness Слабкість шиї
107
ДОДАТОК Г
ЗАСТОСУВАННЯ МЕТОДІВ АНАЛІЗУ ДАНИХ І МАШИННОГО
НАВЧАННЯ В МЕДИЦИНІ НА ОСНОВІ АНСАМБЛЕВИХ МОДЕЛЕЙ
Текст програми
482.ЧДТУ.5 2437-01 12 01
Листів 6
Розробник __________________ Олександр ТКАЧЕНКО
Черкаси – 2025
108
import tkinter as tk
from tkinter import ttk
import database
from joblib import load
import numpy as np
import scripts_for_models
def create_loadscrean():
root = tk.Tk()
root.title("Load models")
root.geometry("400x100")
load_label = ttk.Label(root, text="LOADING")
load_label.pack(side="top", padx=5, pady=5)
load_frame = ttk.Frame(root, padding="10")
load_frame.pack(side="left", fill="y", padx=5, pady=5)
prog_bar = ttk.Progressbar(load_frame, orient="horizontal", length=350,
mode="determinate")
prog_bar.pack(side="bottom", fill="y")
prog_bar["value"] = 0
load_label['text'] = 'Random forest'
root.update()
Random_Forest_Model = load('Random_Forest.joblib')
prog_bar["value"] = 20
load_label['text'] = 'Naive Bayes'
root.update()
Nayive_Bayes_Model = load('Nayive_Bayes.joblib')
prog_bar["value"] = 40
load_label['text'] = 'Logistic Regression'
root.update()
Logistic_Regression_Model = load('Logistic_Regression.joblib')
prog_bar["value"] = 60
load_label['text'] = 'XGBoost'
root.update()
XGBoost_Model = load('XGBoost.joblib')
prog_bar["value"] = 80
load_label['text'] = 'Neural Network'
root.update()
Neural_Network_Model = load('Neural_Network.joblib')
prog_bar["value"] = 90
load_label['text'] = 'KNN'
root.update()
KNN_Model = load('KNN.joblib')
prog_bar["value"] = 100
root.update()
root.destroy()
root = tk.Tk()
root.geometry("900x600")
root.title("Neural_Doctor")
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
# frame 1 config
frame_database = ttk.Frame(root, padding="10", relief="groove")
frame_database.grid(row=0, column=0, sticky="nsew", padx=5, pady=5)
frame_database.columnconfigure(0, weight=2)
frame_database.columnconfigure(1, weight=2)
frame_database.columnconfigure(2, weight=2)
frame_database.columnconfigure(3, weight=3)
frame_database.rowconfigure(0, weight=1)
frame_database.rowconfigure(1, weight=1)
frame_database.rowconfigure(2, weight=1)
109
frame_database.rowconfigure(3, weight=1)
frame_database.rowconfigure(4, weight=1)
frame_database.rowconfigure(5, weight=1)
Patients = ttk.Combobox(frame_database, values =
sorted(database.GET_ALL_PATIENTS_NAMES()), width=40)
Patients.grid(row=0, column=0, padx=5, pady=5, sticky="nsew")
def Delete():
if Patients.get() == '':
print('error')
else:
database.DELETE_PATIENT(Patients.get())
Patients.config(values=database.GET_ALL_PATIENTS_NAMES())
Patients.set('')
Delete_Patient = ttk.Button(frame_database, text='видалити пацієнта',
command=Delete)
Delete_Patient.grid(row=0, column=1, padx=5, pady=5, sticky="nsew")
Patient_sympthoms = ttk.Entry(frame_database, width=40)
Patient_sympthoms.grid(row=1, column=0, padx=5, pady=5, sticky="nsew")
def ShowSympthoms():
try:
Patient_sympthoms.delete(0, 'end')
Patient_sympthoms.insert(0,
database.GET_PATIENT_SYMPTHOMS_RAW(Patients.get()))
except:
print("nine")
Show_Symthoms = ttk.Button(frame_database, text="показати симптоми",
command=ShowSympthoms)
Show_Symthoms.grid(row=1, column=1, padx=5, pady=5, sticky="nsew")
def addSympthoms():
try:
if Patients.get() == '' or Sympthoms.get() == '':
print('error')
else:
database.UPPDATE_PATIENT(Patients.get(), Sympthoms.get())
ShowSympthoms()
except: print('error')
Add_Sympthoms = ttk.Button(frame_database, text = 'додати симптом',
command=addSympthoms)
Add_Sympthoms.grid(row=2, column=1, padx=5, pady=5, sticky="nsew")
Sympthoms = ttk.Combobox(frame_database,
values=(sorted(database.B_ukr)+sorted(database.B_eng)), width=40)
Sympthoms.grid(row=2, column=0, padx=5, pady=5, sticky="nsew")
Patient_Create_Entry = ttk.Entry(frame_database, width=40)
Patient_Create_Entry.insert(0, "новий пацієнт")
Patient_Create_Entry.grid(row=3, column=0, padx=5, pady=5, sticky="nsew")
def patient_create():
try:
if Patient_Create_Entry.get() == '':
print("error")
else:
database.ADD_NEW_PATIENT(Patient_Create_Entry.get())
Patients.config(values=sorted(database.GET_ALL_PATIENTS_NAMES()))
Patient_Create_Entry.insert(0, '')
except: print('error')
Patient_create = ttk.Button(frame_database, text='додати пацієнта',
command=patient_create)
110
Patient_create.grid(row=3, column=1, padx=5, pady=5, sticky="nsew")
def Analyse():
S = np.array(database.Vector_Maker(Patient_sympthoms.get())).reshape(1, -
1)
Bayes_prediction = Nayive_Bayes_Model.predict_proba(S)
Bayes_sorted_indices = np.argsort(Bayes_prediction[0])[::-1]
Bayes_top_diag = Bayes_sorted_indices[:3]
Bayes_top_prob = Bayes_prediction[0][Bayes_top_diag]
diagnos = f"{scripts_for_models.real_ukr[Bayes_top_diag[0]]} :
{round(float(Bayes_top_prob[0]),
3)}\n{scripts_for_models.real_ukr[Bayes_top_diag[1]]} :
{round(float(Bayes_top_prob[1]),
3)}'\n{scripts_for_models.real_ukr[Bayes_top_diag[2]]} :
{round(float(Bayes_top_prob[2]), 3)}"
Bayes.delete("1.0", tk.END)
Bayes.insert('1.0', diagnos)
Log_reg_prediction = Logistic_Regression_Model.predict_proba(S)
Log_Reg_sorted_indices = np.argsort(Log_reg_prediction[0])[::-1]
Log_reg_top_diag = Log_Reg_sorted_indices[:3]
Log_reg_top_prob = Log_reg_prediction[0][Log_reg_top_diag]
diagnos = f"{scripts_for_models.real_ukr[Log_reg_top_diag[0]]} :
{round(float(Log_reg_top_prob[0]),
3)}\n{scripts_for_models.real_ukr[Log_reg_top_diag[1]]} :
{round(float(Log_reg_top_prob[1]),
3)}'\n{scripts_for_models.real_ukr[Log_reg_top_diag[2]]} :
{round(float(Log_reg_top_prob[2]), 3)}"
Log_reg.delete("1.0", tk.END)
Log_reg.insert('1.0', diagnos)
Random_Forest_prediction = Random_Forest_Model.predict_proba(S)
Random_Forest_sorted_indices = np.argsort(Random_Forest_prediction[0])[::-
1]
Random_Forest_top_diag = Random_Forest_sorted_indices[:3]
Random_Forest_top_prob =
Random_Forest_prediction[0][Random_Forest_top_diag]
diagnos = f"{scripts_for_models.real_ukr[Random_Forest_top_diag[0]]} :
{round(float(Random_Forest_top_prob[0]),
3)}\n{scripts_for_models.real_ukr[Random_Forest_top_diag[1]]} :
{round(float(Random_Forest_top_prob[1]),
3)}'\n{scripts_for_models.real_ukr[Random_Forest_top_diag[2]]} :
{round(float(Random_Forest_top_prob[2]), 3)}"
Random_Forest.delete("1.0", tk.END)
Random_Forest.insert('1.0', diagnos)
XGBoost_prediction = XGBoost_Model.predict_proba(S)
XGBoost_sorted_indices = np.argsort(XGBoost_prediction[0])[::-1]
XGBoost_top_diag = XGBoost_sorted_indices[:3]
XGBoost_top_prob = XGBoost_prediction[0][XGBoost_top_diag]
diagnos = f"{scripts_for_models.real_ukr[XGBoost_top_diag[0]]} :
{round(float(XGBoost_top_prob[0]),
3)}\n{scripts_for_models.real_ukr[XGBoost_top_diag[1]]} :
{round(float(XGBoost_top_prob[1]),
3)}'\n{scripts_for_models.real_ukr[XGBoost_top_diag[2]]} :
{round(float(XGBoost_top_prob[2]), 3)}"
XGBoost.delete("1.0", tk.END)
XGBoost.insert('1.0', diagnos)
Neural_Network_prediction = Neural_Network_Model.predict(S)
Neural_Network_sorted_indices =
np.argsort(Neural_Network_prediction[0])[::-1]
Neural_Network_top_diag = Neural_Network_sorted_indices[:3]
Neural_Network_top_prob =
111
Neural_Network_prediction[0][Neural_Network_top_diag]
diagnos = f"{scripts_for_models.real_ukr[Neural_Network_top_diag[0]]} :
{round(float(Neural_Network_top_prob[0]),
3)}\n{scripts_for_models.real_ukr[Neural_Network_top_diag[1]]} :
{round(float(Neural_Network_top_prob[1]),
3)}'\n{scripts_for_models.real_ukr[Neural_Network_top_diag[2]]} :
{round(float(Neural_Network_top_prob[2]), 3)}"
Neural_Network.delete("1.0", tk.END)
Neural_Network.insert('1.0', diagnos)
KNN_prediction = KNN_Model.predict_proba(S)
KNN_sorted_indices = np.argsort(KNN_prediction[0])[::-1]
KNN_top_diag = KNN_sorted_indices[:3]
KNN_top_prob = KNN_prediction[0][KNN_top_diag]
diagnos = f"{scripts_for_models.real_ukr[KNN_top_diag[0]]} :
{round(float(KNN_top_prob[0]), 3)}\n{scripts_for_models.real_ukr[KNN_top_diag[1]]}
: {round(float(KNN_top_prob[1]),
3)}'\n{scripts_for_models.real_ukr[KNN_top_diag[2]]} :
{round(float(KNN_top_prob[2]), 3)}"
KNN.delete("1.0", tk.END)
KNN.insert('1.0', diagnos)
def Meta_Analysis(Top_Diag, Top_Prob, diag, prob, acc):
for i in range(3):
if diag[i] in Top_Diag:
continue
else:
Top_Diag.append(diag[i])
Top_prob.append(0)
for i in range(3):
Top_Prob[Top_Diag.index(diag[i])] += prob[i]*acc
return Top_Diag, Top_Prob
Top_diag = []
Top_prob = []
Top_diag, Top_prob = Meta_Analysis(Top_diag, Top_prob, Bayes_top_diag,
Bayes_top_prob, 0.1666)
Top_diag, Top_prob = Meta_Analysis(Top_diag, Top_prob, Log_reg_top_diag,
Log_reg_top_prob, 0.167)
Top_diag, Top_prob = Meta_Analysis(Top_diag, Top_prob,
Random_Forest_top_diag, Random_Forest_top_prob, 0.1699)
Top_diag, Top_prob = Meta_Analysis(Top_diag, Top_prob, XGBoost_top_diag,
XGBoost_top_prob, 0.1749)
Top_diag, Top_prob = Meta_Analysis(Top_diag, Top_prob,
Neural_Network_top_diag, Neural_Network_top_prob, 0.1657)
Top_diag, Top_prob = Meta_Analysis(Top_diag, Top_prob, KNN_top_diag,
KNN_top_prob,0.1557)
for i in range(len(Top_prob)-1):
k = i
for j in range(i, len(Top_prob)):
if Top_prob[j] > Top_prob[k]:
k = j
Top_diag[i], Top_diag[k] = Top_diag[k], Top_diag[i]
Top_prob[i], Top_prob[k] = Top_prob[k], Top_prob[i]
String = ''
for i in range(len(Top_diag)):
String += scripts_for_models.real_ukr[Top_diag[i]] + " " +
str(round(Top_prob[i], 3)) + '\n'
Meta_Model.delete("1.0", tk.END)
Meta_Model.insert('1.0', String)
Analysis = ttk.Button(frame_database, text='Аналізувати пацієнта', command =
Analyse)
112
Analysis.grid(row=4, column=0, padx=5, pady=5, sticky="nsew", columnspan=2)
Bayes = tk.Text(frame_database, width=40, height=5)
Bayes.grid(row=0, column=3, padx=5, sticky="nsew")
Bayes_Label = ttk.Label(frame_database, text ='Наївний Баєс', width=20)
Bayes_Label.grid(row=0, column=2, padx=5, pady=5, sticky="nsew")
Log_reg = tk.Text(frame_database, width=40, height=5)
Log_reg.grid(row=1, column=3, padx=5, sticky="nsew")
Log_reg_Label = ttk.Label(frame_database, text='Логістична регресія',
width=20)
Log_reg_Label.grid(row=1, column=2, padx=5, pady=5, sticky="nsew")
Random_Forest = tk.Text(frame_database, width=40, height=5)
Random_Forest.grid(row=2, column=3, padx=5, sticky="nsew")
Random_Forest_Label = ttk.Label(frame_database, text='Випадковий ліс',
width=20)
Random_Forest_Label.grid(row=2, column=2, padx=5, pady=5, sticky="nsew")
XGBoost = tk.Text(frame_database, width=40, height=5)
XGBoost.grid(row=3, column=3, padx=5, sticky="nsew")
XGBoost_Label = ttk.Label(frame_database, text='Градієнтний
бустинг\nвипадкового лісу', width=20)
XGBoost_Label.grid(row=3, column=2, padx=5, pady=5, sticky="nsew")
Neural_Network = tk.Text(frame_database, width=40, height=5)
Neural_Network.grid(row=4, column=3, padx=5, sticky="nsew")
Neural_Network_Label = ttk.Label(frame_database, text='Згорткова
нейронна\nмережа', width=20)
Neural_Network_Label.grid(row=4, column=2, padx=5, pady=5, sticky="nsew")
Meta_Model = tk.Text(frame_database, width=40, height=5)
Meta_Model.grid(row=5, column=0, padx=5, sticky="nsew", columnspan=2)
KNN = tk.Text(frame_database, width=40, height=5)
KNN.grid(row=5, column=3, padx=5, sticky="nsew")
KNN_Model_Label = ttk.Label(frame_database, text='Мета аналіз | KNN',
width=20)
KNN_Model_Label.grid(row=5, column=2, padx=5, pady=5, sticky="nsew")
root.mainloop()
if __name__ == '__main__':
print(sorted(database.B_ukr))
create_loadscrean()