Дипломная работа: Использование методов машинного обучения для прогнозирования потоков пациентов в медицинских учреждениях

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Описанная формулировка задачи совпадает с формулировкой первых 2 работ в главе, посвященной обзору литературы. Тем не менее, в этой главе также был описан другой подход с использованием модели ARIMA. Данный подход оказался неприменим к имеющимся данным, т.к. количество пациентов со временем не имеет ни трендовой, ни сезонной компоненты.

Рисунок 15. Количество посещений на каждые 2 недели

В результате, после обработки данных, была составлена таблица со следующими признаками.

Таблица 5. Признаки после обработки данных

 

Признак

Кол. уникальный значений

Тип данных

1

id

656

int64

2

age

72

int64

3

diag

79

object

4

code

7

object

5

int_spec

4

object

6

int_diag

6

object

7

int_treat

39

object

8

disease

19

object

9

group_1-4

30

object

10

code_activ_1-4

17

object

11

code_spec_1-4

20

object

12

producer_1-4

96

object

13

section_1-4

8

object

14

concept_1-4

384

object

15

dt_diff_1-4

590

timedelta64[ns]

16

activity_num_1-4

6

object

17

activity_letter_1-4

18

object

18

num_of_rep_visit

134

int64

19

num_of_visit

359

int64

20

num_from_prev_days

414

float64

21

dt_mean

13180

float64

22

dt_std

25425

float64

23

cum_days

19242

float64

24

var_class_target

44

object

25

var_reg_target

590

timedelta64[ns]

Красным цветом обозначена базовая информация о пациенте, голубым - лаговые переменные с лагом 4, желтым - скользящие переменные, зеленым - целевые переменные.

3.4 Сжатие признакового пространства

Таблица пар X-Y готова, но в ней все еще существуют категориальные признаки. Количество уникальных значений для некоторых полей слишком большое, примерно до 400 значений, а работать с категориальными признаками могут только деревья. Таким образом было использовано 2 подхода для обработка категориальных признаков.

Таблица 6. Сравнение алгоритмов кодирования категориальных признаков

Dummy encoding

Word2Vec

Алгоритм кодирования

Создания уникального флага для каждого значения в поле

Перевод последовательности категориальных признаков в слова и последующие векторное представление

Кол. новых полей

Кол. уникальных значений в поле

Задается пользователем

После перевода категориальных признаков в вещественные размер признакового пространства все еще может быть слишком большой. Для сокращения количества признаков использовался алгоритма PCA.

Ниже представлены доли кумулятивной объясненной дисперсии для dummy и w2v кодирования.

Рисунок 16. Кумулятивный процент объясненной дисперсии для Dummy кодирования

Рисунок 17. Кумулятивный процент объясненной дисперсии для W2V кодирования

Для сокращения признакового пространства было выбрано количество компонента, дающая 70% объясненной дисперсии.

В итоге вышло 5 датасетов для обучения со следующими размерностями:

Dummy: 2357 признаков

Dummy + PCA: 859 признаков

W2V: 273 признака

W2V + PCA: 55 признаков

Без обработки (для градиентного бустинга): 51 признак

3.5 Инструменты разработки

Обработка данных и обучение моделей проводились с использование языка Python и дополнительных библиотек, которые представлены в таблице 6.

Таблица 7. Список используемых библиотек

Тип работы

Название библиотеки

Работа с данными

Работа с JSON

json

Работа с таблицами и препроцессинг

Pandas

Визуализация данных

Matplotlib

Word2Vec

gensim

Алгоритмы

Линейная регрессия

Sklearn

Логистическая регрессия

Sklearn

Случайный лес

Sklearn

Нейронные сети

Keras

Градиентный бустинг

CatBoost

3.6 Результаты

Для задач регрессии и классификации использовались следующие алгоритмы: Случайный лес, Градиентный бустинг и нейронные сети. Также для регрессии использовалось Lasso, а для классификации логистическая регрессия.

Параметрические методы и Случайный лес обучались на данных обработанные 4 способами: PCA + W2V, PCA + Dummy, W2V, Dummy. Для гранентного бустинга это не нужно, т.к. библиотека CatBoost умеет работать с категориальными признаками.

Ниже представлены результаты каждого алгоритма для соответствующих метрик и учет кодирования и сжатия признакового пространства.

Регрессия:

Таблица 8. Результаты регрессии.

TEST

Алгоритм

Сжатие и кодирование

MSE

MAE

R2

Lasso

Dummy

572

9.6

0.32

Random Forest

Dummy

571

7.1

0.42

Neural Network

Dummy

890

14.6

0.19

Lasso

PCA + Dummy

660

10.9

0.27

Random Forest

PCA + Dummy

683

10.1

0.25

Neural Network

PCA + Dummy

493

7.9

0.36

Lasso

W2V

764

11.2

0.17

Random Forest

W2V

553

7.6

0.4

Neural Network

W2V

807

14

0.21

Lasso

PCA + W2V

711

11.9

0.27

Random Forest

PCA + W2V

612

8.7

0.39

Neural Network

PCA + W2V

633

8.4

0.41

Gradient Boosting

-

546

7.6

0.49

Классификация:

Таблица 9. Результаты классификации.

TEST

Алгоритм

Сжатие и кодирование

Accuracy

F1 weight

F1 mean

Logistic Reg.

Dummy

0.31

0.25

0.04

Random Forest

Dummy

0.63

0.65

0.31

Neural Network

Dummy

0.11

0.025

0.08

Logistic Reg.

PCA + Dummy

0.59

0.54

0.25

Random Forest

PCA + Dummy

0.54

0.5

0.22

Neural Network

PCA + Dummy

0.52

0.52

0.26

Logistic Reg.

W2V

0.31

0.25

0.04

Random Forest

W2V

0.63

0.61

0.34

Neural Network

W2V

0.06

0.09

0.05

Logistic Reg.

PCA + W2V

0.55

0.51

0.2

Random Forest

PCA + W2V

0.59

0.55

0.21

Neural Network

PCA + W2V

0.58

0.55

0.26

Gradient Boosting

-

0.66

0.62

0.315

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

Результаты работы алгоритмов будут анализироваться для результатов градиентного бустинга.

3.7 Вывод по предсказательным моделям

Рисунок 18 Распределение ошибки регрессии

Распределение ошибки имеет среднее 0.17 дней и стандартной отклонение 21.8. У распределения есть очень тяжелый хвост справа, можно сделать очевидный вывод, что распределение не нормально.

Рисунок 19. Зависимость предсказания от целевой переменной

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

Понять качество работы алгоритмов поможет Confusion matrix. В данной матрице на одной оси изображены ответы, а на другой реальные значения. В каждой ячейке находится количество кейсов, которые соответствует данным координатам. У идеального алгоритма будет диагональная матрица. Однако данная матрица выглядит диагональной только с абсолютными числами. Если же отнормировать значения, поделить на сумму оси реальных ответов, можно увидеть, что матрица совсем не диагональная. Данное явление объясняется несбалансированностью классов по количество образцов и сложности классификации.

Дальнейшие исследования:

Градиентный бустинг показал 0.66 для Accuracy по мультиклассификации и 0.49 для R2 - очевидно, что это не случайные результаты. Данные пригодны для предиктивного анализа и по ним можно предсказывать поток пациентов, однако для применения на практике такой точности может быть мало. Таким образом, можно выделить 2 инициативы для дальнейших исследований. С одной стороны, это поиск и проверка алгоритмов для предсказания, оптимизация гиперпараметров и генерация новых признаков, с другой стороны - обучения моделей на новых данных или добавление новой информации к существующему датасету.

Рисунок 20. Confusion matrix

Рисунок 21. Confusion matrix с нормирование по столбцам

Заключение

С помощью библиотек Python была проведение обработка данных - перевод из логов JSON в табличный формат CSV. Также, с использование лаговых переменных, агрегирующих статистик, методов кодирования категориальный переменных и сжатия признакового пространства, удалось привести данные в вид, который является пригодным для алгоритмов предиктивной аналитики.

В частности, благодаря библиотеки CatBoost была обучена модель градиентного бустинга, которая может предсказывать информацию о следующем посещении пациента. Лучшие модели показали следующие результаты - Accuracy = 0.66 для 25 классов, R2 = 0.49. Можно сделать вывод, что у обученных моделей есть предиктивные способности, и они уловили определенные закономерности, однако для решения практической задачи этой точности может быть недостаточно.

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

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

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

Список используемой литературы

1. Kovalchuk, S. V., Funkner, A. A., Metsker, O. G., & Yakovlev, A. N. (2018). Simulation of patient flow in multiple healthcare units using process and data mining techniques for model identification // Journal of Biomedical Informatics. - 2018, № 82. - C. 128-142.

2. Xu, H., Wu, W., Nemati, S., & Zha, H. Patient flow prediction via discriminative learning of mutually-correcting processes // 2017 IEEE 33rd International Conference on Data Engineering (ICDE).

3. Zhang, Y., Luo, L., Zhang, F., Kong, R., Yang, J., Feng, Y.& Guo, H. Emergency patient flow forecasting in the radiology department // Health Informatics Journal - 2020 Feb 19.

4. Dagliati, A., Marini, S., Sacchi, L., Cogni, G., Teliti, M., Tibollo, V., Bellazzi, R. Machine Learning Methods to Predict Diabetes Complications // Journal of Diabetes Science and Technology - 2017 №12(2), - С. 295-302.

5. Tighe, P. J., Lucas, S. D., Edwards, D. A., Boezaart, A. P., Aytug, H., & Bihorac, A. Use of Machine-Learning Classifiers to Predict Requests for Preoperative Acute Pain Service Consultation // Pain Medicine - 2012 №13(10), - С. 1347-1357.

6. Stekhoven, D. J., & Buhlmann, P. MissForest--non-parametric missing value imputation for mixed-type data // Bioinformatics - 2011 №28(1), - С. 112-118.

7. Breiman, L. Random Forests // Machine Learning - 2001 №45, - С. 5-32.

8. Friedman, J. Greedy function approximation: A gradient boosting machine. // The Annals of Statistics. - 2001 №29, - С.1189-1232.

9. Kingma, D., &; Ba, J. Adam: A Method for Stochastic Optimization // ICLR 2015 - 2017.

10. Grathwohl, W., Choi, D., Wu, Y., Roeder, G., &; Duvenaud, D. Backpropagation through the Void: Optimizing control variates for black-box gradient estimation // ICLR 2018 - 2020

11. Milkov T., Ilya S., Kai C., Greg C. & Jeffrey D. Representations of Words and Phrases And their Compositionality // эNIPS 2013 - 2013

12. Ian T., Jorge C. Principal component analysis: a review and recent developments // Philosophical Transactions of The Royal Society Journal - 2016 №374

Источник: https://otherreferats.allbest.ru/download/1226451/