Рак легких был одной из основных причин смерти от рака в Канаде из-за его высокой заболеваемости и низкой выживаемости. По данным за 2012–2014 гг., 5-летняя выживаемость при раке легких составляет 19%, в то время как рак легких входит в четверку наиболее часто диагностируемых видов рака в Канаде. Наиболее распространенный тип рака легкого - немелкоклеточная карцинома легкого (НМРЛ).

Результаты выживания сильно зависят от стадии заболевания на момент его постановки диагноза, но можно задаться вопросом, есть ли другие факторы в игре. Можно ли использовать диагностические изображения, которые часто получают в процессе лечения, и получать на их основе дополнительные прогностические значения? Чтобы выяснить это, я попытался использовать различные модели машинного обучения.

(1) Набор данных

Это может быть сложной частью, поскольку данные пациента обычно конфиденциальны. К счастью, методы машинного обучения находят свое применение в диагностической радиологии. Радиологи и медицинские физики принимают культуру «открытых данных». Я использовал набор данных NSCLC из архива визуализации рака:



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

(2) Обработка данных

Из 422 наборов КТ-изображений у 2 из них контуры не совпадали с опухолью. Я удалил их из своего анализа.

Затем я использовал библиотеку Pyradiomics - точнее, плагин Pyradiomics программного обеспечения для анализа лучевой терапии с открытым исходным кодом SlicerRT - для извлечения функций.

Https://pyradiomics.readthedocs.io/en/latest/

Чтобы удалить часть мультиколлинеарности в элементах, я использовал парные графики для визуального изучения элементов. Да, их очень много:

Критерий исключения признаков состоит в том, что если два или более объекта имеют коэффициент парной корреляции больше 0,95, то сохраняется только один.

Функцию парного графика Сиборна удобно использовать, потому что она также дает распределение вероятностей объекта. Это дает мне возможность бегло просмотреть и проверить любые сильно искаженные дистрибутивы. Если он выглядит сильно искаженным, я бы использовал либо логарифмическое преобразование, либо, в противном случае, преобразование Бокса-Кокса, чтобы сделать данные менее искаженными. Я использовал график QQ для проверки нормальности.

(3) Машинное обучение - методология

Я разделил свой проект на две части:

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

Я использовал поиск по сетке и 5-кратную проверку для оптимизации моделей. Это были следующие модели:
- логистическая регрессия с регуляризацией
- машина опорных векторов
- случайный лес
- квадратичный дискриминант
- деревья решений
- деревья решений XGBoost
- нейронная сеть

Также существовала проблема классового дисбаланса, особенно для задач классификации на 3 и 5 лет. Чтобы исправить это, я использовал различные варианты методов передискретизации (SMOTE и SVMSMOTE). Метод передискретизации также был включен в конвейер оптимизации поиска по сетке.

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

(3.2) Неконтролируемое машинное обучение: я построил типы опухолей путем кластеризации на основе их характеристик на КТ-изображении. Затем я использовал оценщик Каплана-Мейера, чтобы вычислить среднее время выживания для каждого кластера. Это имело то преимущество, что все пациенты оставались в анализе, поскольку оценщик Каплана-Мейера мог обрабатывать события, подвергшиеся цензуре. После кластеризации данных я рассмотрел особенности, которые наиболее статистически различались в своем распределении по кластерам, ранжируя их p-значения от наименьшего к наибольшему.

Я использовал кластеризацию k-средних и кластеризацию OPTICS (алгоритм кластеризации на основе плотности). Как я определил количество кластеров для кластеризации k-средних? Я посмотрел на инерцию и посмотрел на «точку локтя», а затем поиграл, так как кривые Каплана-Мейера двух кластеров почти перекрывали друг друга.

(4) Результаты

Модель обучения с учителем:

Я ненавижу себя недооценивать, но выводы здесь не слишком захватывающие:

Хотя мы видим, что некоторые модели имеют точность более 80%, имейте в виду, что это в основном связано с несбалансированностью классов. Например, для задачи 5-летней классификации классовый дисбаланс составлял примерно 80:20, потому что большинство пациентов, к сожалению, не выжили так долго. SMOTE и использование f1-score для оптимизации модели не помогли.

Модель обучения без учителя:

ОПТИКА дала один основной кластер и более 400 выбросов, так что это не было особенно полезно. К-средние дали в итоге три кластера:

Если мы внимательно присмотримся, синяя кривая находится значительно выше оранжевой кривой (т.е. их доверительные интервалы не перекрываются для некоторой части кривой). Это многообещающе. Действительно, вероятности 1-летнего и 3-летнего выживания для синего и оранжевого кластеров значительно различаются (p

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

(5) Приложения

Прежде чем использовать их в клинических условиях, необходимо рассмотреть ряд моментов:

(5.1) Являются ли признаки клинически стабильными? Признаки извлекаются из пациентов в определенный момент времени. Но что, если бы пациента нужно было повторно просканировать, скажем, через 15 минут, потому что с первой серией КТ-изображений были некоторые проблемы? Изменились бы характеристики настолько сильно, что изменили бы результат модели?

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

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

Есть вопросы или комментарии? Пожалуйста, дайте мне знать.