Модели прогнозирования рака уже давно используются для улучшения ранней диагностики и определения идеального лечения и мониторинга. Термины «XGBoost» или «Сверточные нейронные сети», которые раньше использовались только кандидатами наук в области компьютерных наук, теперь являются частью лексикона главных руководителей и передовых клиницистов, которые хотят воспользоваться преимуществами высокопроизводительных вычислений и достижений в области геномики и биомаркеров. помочь улучшить результаты лечения пациентов. Увеличение расходов на здравоохранение стимулирует спрос на приложения для здравоохранения, основанные на больших данных, с повышенной эффективностью и экономичностью.

Основные хронические заболевания

Болезни сердца, рак и диабет являются основными причинами расходов на здравоохранение в размере 3,8 триллиона долларов.

По данным CDC, в 2020 году на лечение рака было потрачено 208,9 миллиарда долларов, в том числе 29,8 миллиарда долларов было потрачено на рак груди.

У женщин три наиболее распространенных вида рака — это рак молочной железы, легких и колоректальный рак, и на их долю приходится примерно 50% всех новых диагнозов рака у женщин в 2020 году.

Рак молочной железы является одним из наиболее распространенных видов рака у женщин в Соединенных Штатах. У 1 из 8 женщин в течение жизни разовьется рак. 1 из 3 всех новых случаев рака у женщин ежегодно приходится на рак молочной железы. Семейный анамнез рака молочной железы удваивает риск рака молочной железы, но у большинства женщин (85%), у которых диагностирован рак молочной железы, нет известного семейного анамнеза заболевания. Определенные генные мутации увеличивают риск рака молочной железы. Например, от 5 до 10% случаев рака молочной железы связаны с генной мутацией, называемой BRCA1 и BRCA2.

В этой статье я буду использовать вариант использования рака молочной железы для построения и повышения точности прогностической модели с использованием методов сложенного ансамбля.

Сборка данных

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

Извлечение значимой информации из заметки с учетом контекста — сложная задача.

Например, возьмем четыре примера предложений с разными контекстами. 1. У пациентки рак молочной железы. 2. У пациентки нет рака молочной железы. 3. У мамы пациентки рак молочной железы. 4. Следов тканей рака молочной железы не обнаружено. Все четыре ссылки связаны с раком молочной железы, но то, как он описан, очень важно для определения того, кто является субъектом (пациент или кто-то другой) и имеет ли этот субъект рак или нет в рамках извлечения. Подробнее об этом вы можете прочитать в этой статье Извлечение информации из клинических заметок с использованием техник НЛП.

Кроме того, эти неструктурированные данные необходимо объединить со структурированными данными, такими как демографические данные, лекарства, лабораторные исследования, список проблем и т. д. Объединение, очистка и преобразование данных являются важной частью рутинной работы. Подробнее об этом можно прочитать в этой статье Практические стратегии обработки пропущенных значений и преобразования данных. Много раз в проблеме здравоохранения одна ценность преобладала над другими ценностями. Например, меньше людей в целом болеют раком. Это называется проблемой дисбаланса классов. Об этом можно прочитать в разделе Техники работы с предвзятыми данными.

В следующем разделе мы обсудим детали модели.

Традиционная модель

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

Использование нескольких моделей

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

Следующий вопрос: как нам объединить эти данные вместе? Одним из распространенных решений было бы получить большинство голосов. Если две прогностические модели (классификация) получили ответ «Да», окончательный ответ — «Да». Если две прогностические модели (классификация) получили ответ «Нет», окончательный ответ — «Нет». Это простой подход. Здесь мы верим, что победит большинство.

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

Использование алгоритма для изучения прогнозных значений

Модель стекового ансамбля

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

Сведения о наборе данных

В качестве примера для иллюстрации сегодня я буду использовать Набор данных по раку молочной железы, штат Висконсин. Столбцы в наборе данных вычисляются на основе оцифрованного изображения тонкоигольной аспирации (ТАБ) массы молочной железы. Они описывают характеристики ядер клеток, присутствующих на изображении.

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

Шаг 1. Подготовка данных

Используя R, я прочитал набор данных, сделал небольшую очистку и удалил поле идентификатора пациента, которое не нужно для обучения. (Поля ID не входят в процесс обучения вообще). Я разделил данные на 75% для обучения и 25% для тестирования. Нормальный диапазон для тренировочного/тестового сплита 70/30 или 75/25 или 80/20.

Вот атрибуты для этого набора данных

Вот примерный набор данных

Шаг 2. Создайте базовые модели учащихся

Создайте 3 модели: случайный лес, GBM и линейную регрессию. Я включил код R, используемый для обучения трех моделей, а также модели ансамбля. Читатели, которые хотят получить общее представление о процессе, могут пропустить этот фрагмент.

Для этого эксперимента/образца я использовал язык R для построения модели. Вы также можете использовать Python или Scala для этой цели. Я использовал библиотеку H2O для обучения трех моделей (случайный лес, GBM и линейная регрессия), а также модели ансамбля. Пожалуйста, убедитесь, что на вашем компьютере установлена ​​последняя версия java sdk, чтобы RStudio могла обратиться к ней.

Модель GBM

Ниже показан фрагмент кода R для обучения этой модели GBM.

Model_gbm <- h2o.gbm(x = x,
y = y,
training_frame = trainingdata,
nfolds = 5, 
keep_cross_validation_predictions = TRUE,
seed = 5)

Точность этой модели составляет 0,981692677070828.

Модель случайного леса

Показанный ниже код R для обучения этой модели случайного леса.

Model_rf <- h2o.randomForest(x = x,
y = y,
training_frame = trainingdata,
nfolds = 5,
keep_cross_validation_predictions = TRUE,
seed = 5)

Точность модели Random Forest составляет 0,987620048019208.

Модель линейной регрессии

Ниже показан фрагмент кода R для обучения этой модели линейной регрессии.

Model_lr <- h2o.glm(x = x,
y = y,
training_frame = trainingdata,
family = c(“binomial”),
nfolds = 5,
keep_cross_validation_predictions = TRUE,
seed = 5)

Точность модели линейной регрессии составляет 0,986644657863145.

Наивысшая точность из трех моделей — 0,986440388879413.

Вопрос в том, будет ли точность модели ансамбля выше этой? Давайте посмотрим.

Шаг 3. Обучение моделей ансамбля

Ниже показан фрагмент кода R для обучения модели ансамбля.

ensemble <- h2o.stackedEnsemble(
x = x,
y = y,
training_frame = trainingdata,
base_models = list(Model_gbm, Model_rf, Model_lr))

Точность модели ансамбля составляет 0,986644657863145.

Сравнение точности

Все 3 модели показали себя довольно хорошо, точность модели Ensemble выше, чем максимальная точность 3 моделей. Рекомендуется попробовать модель стекирования, чтобы увидеть, повысится ли точность.

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