Вопрос или проблема
У меня есть классификационные данные с гораздо большим количествомNegative instances чем положительных. Я использовал вес классов в своих моделях и достиг желаемой дискриминации, но предсказанные вероятности из моделей не соответствуют фактическим вероятностям в моделируемых данных.
Существует ли способ корректировки предсказанных вероятностей из моделей с весами классов, чтобы они соответствовали фактическим вероятностям в данных? Я видел уравнения для недообучения (https://www3.nd.edu/~rjohns15/content/papers/ssci2015_calibrating.pdf), но они, похоже, не работают для весов классов.
Существует более общая настройка для повторной выборки (не только простое недообучение в вашей прикрепленной статье):
Добавьте $\ln\left(\frac{p_1(1-r_1)}{(1-p_1)r_1}\right)$ к логарифмическим шансам каждого предсказания, где $p_1$ – это доля положительного класса в исходном наборе данных, а $r_1$ – это доля положительного класса в повторно выбранном наборе данных.
Эквивалентно, умножьте шансы на величину внутри логарифма. (К сожалению, это не приводит к чистой корректировке напрямую к вероятностям.)
Давайте немного перепишем, чтобы увидеть связь с вашей прикрепленной статьей. $1-r_1$ – это доля отрицательных классов, назовем ее $r_0$, и аналогично с $p_1$. Используйте заглавные $R_1, \dotsc$, чтобы обозначить количество (или общий вес) образцов, а без нижних индексов $P,R$ чтобы обозначить общие числа (или веса) образцов до и после повторной выборки. Таким образом, множитель становится
$$\frac{p_1(1-r_1)}{(1-p_1)r_1} = \frac{p_1 r_0}{p_0 r_1} = \frac{(P_1/P) (R_0/R)}{(P_0/P) (R_1/R)} = \frac{P_1 R_0}{P_0 R_1}.$$
В контексте прикрепленной статьи, выборки положительного класса не повторно выбираются, поэтому $P_1=R_1$ и коррекция упрощается до $R_0/P_0$, что является параметром $\beta$, использованным в статье.
Наконец, используя их уравнение (4), мы проверяем изменение шансов:
$$\text{новые шансы} = \frac{p}{1-p} = \frac{1}{\frac1p – 1} =
\frac{1}{\frac{\beta p_s−p_s+ 1}{\beta p_s} – 1} =
\frac{\beta p_s}{1-p_s} = \beta\cdot\text{старые шансы}. $$
Что насчет весов вместо повторной выборки? Хорошо, class_weights
могут иметь разные эффекты в разных алгоритмах, но в целом идея заключается в том, что (положительные) целые значения class_weights
должны соответствовать дублированию образцов столько раз, и дробные значения интерполируют это. Таким образом, это должно быть примерно то же самое, что использовать мултипликативный коэффициент выше. Используя версию размера, а не версию пропорции, мы должны интерпретировать $R_0$ и $R_1$ как общие веса соответствующих классов.
Мне не удалось найти ссылку на эту версию, поэтому я собрал небольшой эксперимент; кажется, он подтверждает, что этот сдвиг работает.
GitHub/Colab notebook
Наконец, этот сдвиг в логарифмических шансах не сможет привести к должным откалиброванным вероятностям, если классификатор плохо откалиброван на взвешенных данных. Вы могли бы обратить внимание на техники калибровки, от Платта до Бета до Изотоники. В этом случае сдвиг выше, вероятно, избыточен.
У меня была такая же проблема, как у вас. Однако, когда вы применяете технику из принятого ответа, вы сводите на нет предсказательную силу, полученную за счет весов классов. Я также наткнулся на метод CalibratedClassifierCV, но у него был аналогичный эффект, как у принятого ответа, поэтому я в конечном итоге его не использовал. В качестве альтернативы я попытался собрать больше данных (чего я знаю, не всегда возможно) и попробовать другие модели, такие как модели на основе решающих деревьев.
Разница между предсказанными вероятностями и фактическими вероятностями называется ошибкой тренировки.
Существует множество способов уменьшить ошибку обучения. Создание лучших признаков и выбор другого алгоритма машинного обучения являются наиболее распространенными.
Ответ или решение
Возможна ли переоценка предсказанных вероятностей после использования весов классов?
В условиях несбалансированной выборки, где количество отрицательных экземпляров значительно превышает количество положительных, использование весов классов является распространенной стратегией для повышения точности классификации. Однако, как вы заметили, предсказанные вероятности моделей могут не совпадать с реальными вероятностями, что приводит к необходимости переоценки этих вероятностей.
Проблема подбора весов классов и оценка вероятностей
Использование весов классов позволяет моделям акцентировать внимание на положительных экземплярах, тем самым улучшая дискриминацию между классами. Тем не менее, модификация весов классов может привести к искажению предсказанных вероятностей. Это происходит из-за изменения относительного веса классов и необходимости корректировать предсказанные вероятности, чтобы они соответствовали исходным распределениям классов.
Как скорректировать предсказанные вероятности?
Для корректировки предсказанных вероятностей после использования весов классов можно применить следующий метод:
-
Коррекция логарифмических шансов: Нужно добавить следующее выражение к логарифмическому шансу каждого предсказания:
[
\ln\left(\frac{p_1(1-r_1)}{(1-p_1)r_1}\right)
]где ( p_1 ) – доля положительного класса в исходном наборе данных, а ( r_1 ) – доля положительного класса в скорректированном наборе данных. Это позволяет сбалансировать шансы, чтобы они соответствовали оригинальному распределению классов.
-
Преобразование шансов: Альтернативно, можно умножить шансы на величину внутри логарифма, что также приведет к корректировке предсказанных вероятностей, однако следует иметь в виду, что это может не дать "чистого" результата для вероятностей.
-
Использование более сложных методов калибровки: Попробуйте применить методы калибровки, такие как:
- Платт (Platt Scaling): Применение логистической регрессии для калибровки вероятностей.
- Изотоническая регрессия: Позволяет создать более гибкую функцию калибровки.
- CalibratedClassifierCV: Этот метод может быть эффективен, но требует осторожности, так как его неумелое использование может привести к потере предсказательной силы модели.
Проверка эффективности методов
Следует учитывать, что различные алгоритмы могут по-разному реагировать на веса классов, и корректировка логарифмических шансов может не всегда быть эффективной. Важно проводить экспериментальную проверку каждой методологии, чтобы оценить, как они влияют на предсказательные способности вашей модели.
Заключение
Проблема переоценки вероятностей после использования весов классов требует тщательного подхода и может включать экспериментальные методы калибровки. Не стоит забывать о том, что любые корректировки могут повлиять на способности модели к дискриминации. Поэтому важно находить баланс между точностью классификации и достоверностью предсказанных вероятностей, учитывая специфику вашей задачи и доступные данные.
Учитывая ваши потребности, важно находить наиболее подходящие стратегические подходы для вашего конкретного случая, а также исследовать возможности улучшения модели путем сбора дополнительных данных или выбора других алгоритмов, если это возможно.