Использование конформных предсказателей для оценки неопределенности?

Вопрос или проблема

Я прочитал эту интересную книгу о конформных предсказателях: https://arxiv.org/abs/2107.07511. Конформные предсказатели — это способ выбрать набор, который гарантированно включает истинные метки с некоторой заранее выбранной степенью надежности. Мне было интересно, есть ли способ получить от конформных предсказателей откалиброванные вероятности? Например, предположим, что у меня есть бинарная классификация (изображения собак или кошек). Конформные предсказатели могут использоваться для предсказания, что изображение — это собака или кошка в сложных примерах. Но что я ищу, так это что-то вроде откалиброванных p-значений для предсказания. Значения выходов сигмоидной функции (например, из моей нейронной сети) хорошо известны как не отражающие фактические p-значения. Могут ли конформные предсказатели это сделать (при условии, что у меня есть доступный набор данных для калибровки)? Если да, может кто-то указать мне на процедуру для этого? Я не могу это найти.

Я думаю, что вы ищете что-то похожее на crepes: https://github.com/henrikbostrom/crepes, который, кажется, делает то, что вы именно спрашиваете (предоставляя p-значения). Я наткнулся на это, когда искал методы калибровки моделей (то есть подгонка сплайна по выходным данным).

Приведенный ниже код предоставляет то, что вы запрашиваете для случайного леса sklearn:

from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from crepes import WrapClassifier
from sklearn.ensemble import RandomForestClassifier

dataset = fetch_openml(name="qsar-biodeg", parser="auto")

X = dataset.data.values.astype(float)
y = dataset.target.values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)
X_prop_train, X_cal, y_prop_train, y_cal = train_test_split(X_train, y_train, test_size=0.25)

rf = WrapClassifier(RandomForestClassifier(n_jobs=-1))
rf.fit(X_prop_train, y_prop_train)
rf.calibrate(X_cal, y_cal)
rf.predict_p(X_test)

Обратите внимание, что нам нужно разбить данные на три части, чтобы убедиться, что калибровка выполняется отдельно. Что касается других реализаций (tf/keras – pytorch), я не знаю, совместимы ли они — думаю, нет. Я также нашел реализацию venn-abers, которая, похоже, не требует доступа к модели.

То, что вы ищете, — это откалиброванные вероятности, метод конформного предсказания называется предсказателями Venn-ABERS.

На моем репозитории есть несколько учебников.

https://github.com/valeman/awesome-conformal-prediction

И я также написал статью на Medium “Как откалибровать ваш классификатор умным способом, используя машинное обучение и конформное предсказание.”

https://medium.com/@valeman/how-to-calibrate-your-classifier-in-an-intelligent-way-a996a2faf718

Ответ или решение

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

Основа по конформным предсказателям

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

Калиброванные вероятности

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

Использование Venn-ABERS

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

  1. Разделение данных: Создание трех наборов данных – для обучения, валидации и тестирования. Это обеспечивает независимое выполнение калибровки.

  2. Обучение модели: Обучите вашу модель на тренировочном наборе данных с использованием выбранного алгоритма (например, Random Forest или нейронной сети).

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

  4. Предсказание вероятностей: На тестовом наборе данных примените калиброванную модель для получения вероятностей.

Пример реализации

Ниже приведен пример кода, который иллюстрирует, как использовать crepes для калибровки модели Random Forest:

from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from crepes import WrapClassifier
from sklearn.ensemble import RandomForestClassifier

# Загрузка данных
dataset = fetch_openml(name="qsar-biodeg", parser="auto")
X = dataset.data.values.astype(float)
y = dataset.target.values

# Разделение данных
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)
X_prop_train, X_cal, y_prop_train, y_cal = train_test_split(X_train, y_train, test_size=0.25)

# Обучение и калибровка модели
rf = WrapClassifier(RandomForestClassifier(n_jobs=-1))
rf.fit(X_prop_train, y_prop_train)
rf.calibrate(X_cal, y_cal)

# Получение калиброванных вероятностей
predicted_probabilities = rf.predict_p(X_test)

Альтернативные методы

Существуют и другие реализации, такие как Venn-ABERS, которые не требуют доступа к модели. Это делает их гибкими и подходящими для различных задач.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...