Калибровка модели и анализ кривой принятия решения с использованием набора данных о диабете

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

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

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

Этот пост не является клиническим советом или советом по лечению, а представляет собой чисто теоретическое применение метрики оценки к практической задаче.

Давайте начнем с очень практического объяснения того, что такое кривые решений.

Кривые принятия решений

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

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

Допустим, мы хотим использовать нашу недавно разработанную модель машинного обучения, чтобы предсказать, есть ли у субъекта диабет или нет. Мы рассмотрим эту тему по результатам модели. Использование любой модели приведет к некоторым ложноотрицательным результатам, которые будут «пропущенными» больными пациентами. Должны ли мы проводить анализ крови (золотой стандарт) для каждого субъекта, независимо от результата предсказания нашей модели? Ответ на этот вопрос дает значение «чистой выгоды» модели, и это зависит от того, какой риск ошибочного диагноза мы готовы принять. Это принятие риска (также называемое порогом или предпочтением) зависит от того, как клиницисты оценивают различные результаты для данного пациента. Хорошая модель должна иметь высокую «чистую выгоду» в широком диапазоне порогов риска. Давайте посмотрим, что на самом деле означает этот порог.

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

Скажем, для пациентки Б и ее лечащего врача риск диабета 20% приемлем. Это означает, что пациентка Б согласна с тем, что если она больна, то врачи могут ее пропустить, и она не получит никакого лечения, но она рискнет, только если эта вероятность будет равна 20%. В этом случае значение «чистой прибыли» модели ML, которая является нашим «инструментом тестирования», представляет собой определенное число. Предполагается, что клиническая «чистая прибыль» прогностической модели выше, чем решения «лечить всех» и «не лечить никого» в широком диапазоне порогов риска. Например, если модель говорит, что у субъекта есть риск развития диабета, непрерывное наблюдение или любое другое дальнейшее вмешательство будет более полезным для пациента Б, чем если бы она не получала никакого лечения («не лечить») или если бы она получит лечение, независимо от того, что предсказывает модель.

Однако, скажем, для пациента С допустим риск развития сахарного диабета 0%. Это означает, что пациентка С действительно не хочет пропустить диабет, и ее мало волнуют результаты нашего прогноза ML. Она хочет получить лечение, даже если она здорова (решение «лечить всех»). Таким образом, пороговая вероятность равна 0%. Если кривая решений нашей модели ML указывает, что ее чистая выгода равна чистой выгоде от решения «лечить всех», мы все равно можем использовать нашу модель ML для надежного прогноза.

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

Калибровка модели

В идеально откалиброванной модели для любого значения вероятности p предсказание класса с достоверностью p верно в 100*p процентах случаев.

Для проверки калибровки модели можно использовать калибровочные кривые. Склеарн.калибровка.калибровка_кривая вычисляет истинные и предсказанные вероятности для модели. В качестве альтернативы оценка Брайера служит метрикой для оценки калибровки модели. Однако шкалу Бриера не следует использовать для оценки клинической полезности новой модели, поскольку она зависит от распространенности (Assel et. al.). Более подробную информацию о калибровке модели можно найти, например, здесь или здесь.

Код

Чтобы получить доступ к использованию модели машинного обучения в реальном сценарии, я решил провести прогнозный анализ печально известного набора данных о диабете индейцев пима, доступного на Kaggle, с использованием простой логистической регрессии. Согласно источнику, набор данных изначально получен из Национального института диабета, болезней органов пищеварения и почек. Набор данных состоит из определенных предикторов и целевой переменной, которая описывает, есть ли у пациента диабет. Переменные-предикторы включают количество беременностей, которые были у пациентки, их ИМТ, уровень инсулина, возраст и так далее.

Чтобы оценить производительность модели, я рассчитал отзыв обучения и теста для субъектов с диабетом (класс 1, положительный отзыв) и ROC AUC для каждого раза вложенной перекрестной проверки. Оценка модели выполнялась с 10 итерациями вложенной перекрестной проверки на обучающем наборе в каждой сегментации во время обучения модели. Я откалибровал модель без учета весов классов с помощью CalibratedClassifierCV, в котором использовалась двойная перекрестная проверка и сигмовидный метод. Во внешнем цикле перекрестной проверки калибровка и определение порога модели выполнялись на обучающем наборе, чтобы максимизировать ROC AUC. Большинство классификаторов ML предсказывают вероятности того, что данные принадлежат каждому возможному классу, а затем преобразуют вероятности в метки классов на основе предопределенного порога. Обычно порог фиксируется равным 0,5, однако его можно рассматривать как гиперпараметр и оптимизировать на основе выбранных показателей оптимизации. Настройка гиперпараметров была выполнена с помощью GridSearchCV и включена в конвейер вместе с нормализацией функций с помощью StandardScaler. Калибровка модели была проверена с использованием показателя Бриера и калибровочной кривой. Кривая принятия решения использовалась для оценки клинической полезности модели в качестве инструмента тестирования. Приведенный ниже код представляет собой реализацию описанной подпрограммы, а полный код доступен на GitHub здесь.

Резюме

· Оценить производительность модели на заданном наборе данных с повторной вложенной перекрестной проверкой (среднее значение и стандартное отклонение)

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

· Конвейер предварительной обработки состоит из импутации, обнаружения выбросов и нормализации.

· Метрикой оптимизации является точность (т.е. ROC AUC), оптимизация порога реализуется во внешнем цикле вместе с калибровкой

· Оценка Бриера рассчитывается для оценки калибровки модели

· Кривые решений для модели оцениваются с помощью пакета R dcurves

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

Выгода

Наша откалиброванная модель работала лучше, чем решения «лечить всех» и «не лечить никого» в широком диапазоне пороговых значений. Однако модель работает хуже для порогов высокого риска, чем решение «не лечить». Было бы интересно поэкспериментировать с другими моделями прогнозирования, чтобы добиться лучшего результата. Если вы планируете использовать кривые принятия решений в своих проектах, надеюсь, этот пост был вам полезен! Пишите в комментариях :)

Благодарности и полезные ссылки





Викерс, А. Дж., ван Калстер, Б. и Стейерберг, Э. В. Простое пошаговое руководство по интерпретации анализа кривой принятия решений. Diagn Progn Res 3,18 (2019 г.). https://doi.org/10.1186/s41512-019-0064-7

Викерс А.Дж., Элькин Э.Б. Анализ кривой принятия решения: новый метод оценки моделей прогнозирования. Принятие медицинских решений. 2006;26(6):565–74.

Смит, Дж. В., Эверхарт, Дж. Э., Диксон, В. К., Ноулер, В. К., и Йоханнес, Р. С. (1988). Использование алгоритма обучения ADAP для прогнозирования начала сахарного диабета. В материалах симпозиума по компьютерным приложениям и медицинскому обслуживанию (стр. 261–265). Пресса компьютерного общества IEEE.

Руфибах, К. (2010). Использование оценки Бриера для оценки бинарных прогнозов. Журнал клинической эпидемиологии, 63(8), 938–939. https://doi.org/10.1016/j.jclinepi.2009.11.009

Ван Калстер Б., Винантс Л., Вербек Дж. Ф. М., Вербакель Дж. Ю., Христодулу Э., Викерс А. Дж., Рубол М. Дж., Стейерберг Э. В. Отчетность и интерпретация анализа кривой принятия решения: руководство для следователей. Евр Урол. 2018 г., декабрь; 74 (6): 796–804. doi: 10.1016/j.eururo.2018.08.038. Epub 2018, 19 сентября. PMID: 30241973; PMCID: PMC6261531.

Асель М., Шоберг Д.Д. и Викерс, А.Дж. Шкала Бриера не оценивает клиническую полезность диагностических тестов или моделей прогнозирования. Diagn Progn Res 1,19 (2017 г.). https://doi.org/10.1186/s41512-017-0020-3

https://machinelearningmastery.com/threshold-moving-for-imbalanced-classification/