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

На рак молочной железы приходится более 12% случаев рака во всем мире. Фактически, более 21 миллиона человек в настоящее время борются с раком молочной железы.

Раннее выявление и диагностика сейчас важнее, чем когда-либо. Мощные технологии обнаружения могут помочь с точностью ранней диагностики, давая большему количеству пациентов возможность получить лечение. Диагноз рака молочной железы часто зависит от информации об опухоли и измерениях. По данным Healthcare IT News, точность обнаружения рака молочной железы у рентгенологов составляет в среднем 75%.

Моделирование случайного леса

Модели случайного леса — это тип модели классификации, которая опирается на деревья решений для прогнозирования результатов на основе набора предикторов.

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

Прогнозирование исходов опухоли

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

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

Настройка данных и обучение

После загрузки набора данных начните с импорта пакетов, необходимых для создания модели RF.

library(randomForest)
require(caTools)
df <- read.csv("Downloads/data.csv")

Затем загрузите данные и посмотрите на исходную структуру столбцов.

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

Чтобы правильно отформатировать модель случайного леса, столбец диагностики необходимо изменить на значения 1 и 0 (M и B соответственно). После форматирования этих результатов в виде чисел весь столбец можно преобразовать в фактор (не символ).

df$diagnosis <- replace(df$diagnosis, df$diagnosis == 'M', 1)
df$diagnosis <- replace(df$diagnosis, df$diagnosis == 'B', 0)
df$diagnosis = as.factor(df$diagnosis)

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

set.seed(222)
ind <- sample(2, nrow(df), replace = TRUE, prob = c(0.7, 0.3))
train <- df[ind==1,]
test <- df[ind==2,]

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

rf <- randomForest(diagnosis~., data=train, proximity=TRUE)
print(rf)

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

p1 <- predict(rf, train)
confusionMatrix(p1, train$diagnosis)

Вывод матрицы путаницы будет визуализировать точность и результаты начального обучения. Мы видим, что точность обнаружения 100% ожидается для начальных данных поезда.

Тестирование и визуализация данных

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

p2 <- predict(rf, test)
confusionMatrix(p2, test$ diagnosis)

Выходные данные матрицы путаницы для данных тестирования показывают точность 96,4% для определения того, является ли опухоль злокачественной. Для исходной модели это довольно значительный показатель обнаружения.

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

Чтобы глубже изучить выводы этой модели, использование varImpPlot() описывает различные функции и их влияние на окончательное решение.

importance(rf)
varImpPlot(rf, col = "navy")

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

Заключение

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

ИИ помогает радиологам повысить точность обнаружения рака молочной железы с меньшим количеством отзывов. Healthcare IT News, 3 марта 2020 г., https://www.healthcareitnews.com/news/asia/ai-helps-radiologist-improve-accuracy-breast-cancer-detection-lesser-recalls .

Асвад, г-жа Нэнси Ал. Набор данных по раку молочной железы. Kaggle, 17 июня 2022 г., https://www.kaggle.com/datasets/nancyalaswad90/breast-cancer-dataset.