Классификационная модель для идентификации категорий здоровья

Я решил написать об этом проекте, который я недавно сделал, когда погрузился в сквозной процесс проекта машинного обучения с использованием технологий AWS, которые могут помочь некоторым новичкам. Я изучил машинное обучение, изучая микромастер статистики и науки о данных в MITx, и изучил технологии AWS ML, работая по специальности AWS ML. Объединив эти две вещи, я решил сделать проект для хакатона AWS Health AI.

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

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

Я изучил доступные ресурсы о том, как используется AWS для понимания медицины, и нашел набор кодов семинара, который стал трамплином для моего обучения. Как только я научился использовать comprehend medical для захвата медицинских ключевых слов, у меня появились начальные инструменты для построения моей модели.

После анализа общедоступного набора данных MTSamples я решил рассмотреть только несколько категорий для проекта по той причине, что некоторые категории, такие как хирургия или консультации, являются общими категориями. Я выбрал 6 категорий, каждая из которых содержит более 200 записей в наборе данных. Каждая запись состоит из текстовой ЭМК (электронной медицинской карты). Я пропустил случайно выбранные 1200 записей через Comprehend Medical, чтобы извлечь 40 ключевых слов о здоровье из каждой записи. Затем эти ключевые слова для каждого пациента были помещены в плоскую структуру, где я создал обработанный набор данных. Каждая строка содержала идентификатор пациента, ключевое слово_1… ключевое слово_n. Каждое ключевое слово_x представляет собой число с плавающей запятой с вероятностью, полученной от Comprehend Medical. Например, ключевым словом может быть лихорадка, головная боль или какая-либо проблема со здоровьем, и Comprehend Medical предоставит оценку вероятности того, что EMR будет иметь это заболевание.

Категории здоровья, используемые для подготовленных данных:

1: «Сердечно-сосудистые/пульмональные»
2: «Ортопедические»
3: «Рентгенология»
4: «Общая медицина»
5: «Гастроэнтерология»
6: «Неврология»

Когда подготовка данных была завершена, я начал изучать различные модели. Linear Learning и XGboost были моими двумя вариантами из-за многовариантного набора данных, имеющего около 150 функций и простоты. Я использовал разделение 80:20 для поезда и тестовых данных. Линейное обучение было самым простым в использовании и дало первые хорошие результаты. (средняя точность 0,55 по всем категориям и 0,69 по лучшей категории) С XGBoost я получил меньшую точность, чем линейный ученик. (0,51 средняя точность по всем категориям и 0,61 по лучшей категории)

Для вывода я использовал 2 варианта использования; первый EMR на английском языке и второй EMR на немецком языке. Перед отправкой в ​​Comprehend Medical необходимо сначала перевести немецкий EMR, поскольку Comprehend Medical будет обрабатывать данные только на английском языке.

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

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

Мой проект:



Репозиторий Github, если хотите попробовать:



Используемые ссылки:

https://github.com/aws-samples/aws-healthcare-lifescience-ai-ml-sample-notebooks/blob/main/workshops/Process_HCLS_Docs_Using_AI_Services/Process-Medical-Documents.ipynb

AWS Linear Learner: https://github.com/aws/amazon-sagemaker-examples/blob/main/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.ipynb

Вдохновение для набора данных и анализа текста: https://www.kaggle.com/code/ritheshsreenivasan/clinical-text-classification/notebook