Оптимизация для кривых Precision-Recall при дисбалансе класса

30

У меня есть задача классификации, где у меня есть несколько предикторов (один из которых является наиболее информативным), и я использую модель MARS для построения моего классификатора (меня интересует любая простая модель, и использование glms для иллюстративных целей будет тоже хорошо). Теперь у меня огромный дисбаланс классов в данных обучения (около 2700 отрицательных выборок для каждой положительной выборки). Как и в случае с задачами поиска информации, меня больше беспокоит прогнозирование положительных тестовых выборок высшего ранга. По этой причине производительность на кривых Precision Recall важна для меня.

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

Тренинг по несбалансированным данным, оценка по несбалансированным данным :

PR для несбалансированного обучения РПЦ за несбалансированное обучение

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

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

PR для сбалансированного обучения, визуализируется на сбалансированном наборе данных ROC для сбалансированного обучения, визуализируется на сбалансированном наборе данных

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

Обучение сбалансированным данным (с повышением выборки), оценка исходных несбалансированных данных:

PR для сбалансированного обучения, визуализируется на оригинальном, несбалансированном наборе данных ROC для сбалансированного обучения, визуализируется на оригинальном, несбалансированном наборе данных

Итак, мои вопросы:

  1. Является ли причиной того, что визуализация кривой PR показывает худшую производительность моей обученной модели (красная), а кривая ROC показывает улучшения из-за дисбаланса класса?
  2. Могут ли подходы повторной выборки / повышения выборки / уменьшения выборки решить эту проблему, чтобы заставить обучение сосредоточиться на области высокой точности / низкой степени повторного выбора?
  3. Есть ли другой способ сфокусировать обучение на области высокой точности / низкого отзыва?
высокая пропускная способность
источник
Не могли бы вы отредактировать свой вопрос, чтобы уточнить, какие показатели рассчитываются на тренировочном наборе, а какие - на данных?
Джек Таннер,
@JackTanner, на данный момент все рассчитано на тренировочном наборе. Поскольку в модели не так много параметров, а количество сэмплов в обучающем наборе огромно, я не слишком беспокоюсь о переоснащении. Кроме того, я хочу быть уверенным в том, что я получаю хорошие результаты на тренировочном наборе, прежде чем я смог ожидать участия в тестовом наборе.
highBandWidth
Какой ручкой вы управляете в своем алгоритме обучения, чтобы оценить точность на разных уровнях отзыва? Вы пытались расширить свой набор функций, например, с помощью комбинаций функций и преобразований?
Джек Таннер
@JackTanner, модель, которая у меня есть (MARS с функцией логита) дает выходные данные в диапазоне от 0 до 1, аналогично логистической регрессии. Это в основном то же самое, но включает в себя еще несколько функций. Чтобы получить точность при разных возвратах, я просто устанавливаю пороги в разных точках. Я просто использую стандартный способ вычисления PR или ROC из ранжированного списка.
highBandWidth

Ответы:

15
  1. Кривая ROC нечувствительна к изменениям в дисбалансе классов; см. Fawcett (2004) «Графики ROC: примечания и практические рекомендации для исследователей».
  2. Повышение частоты низкочастотного класса является разумным подходом.
  3. Есть много других способов борьбы с дисбалансом классов. Повышение и упаковка - две техники, которые приходят на ум. Это похоже на недавнее недавнее исследование: сравнение методов повышения и создания пакетов с шумными и несбалансированными данными.

PS Аккуратная проблема; Я хотел бы знать, как это получается.

Джек Таннер
источник
1

Недавнее исследование « Понимание классификации с несбалансированными данными: эмпирические результаты и современные тенденции использования внутренних характеристик данных » сравнивает три метода улучшенной классификации на несбалансированных данных:

  • Выборка данных (как предложено в вопросе)
  • Модификация алгоритма
  • Затратное обучение
shark8me
источник
1

Я хотел привлечь внимание к тому факту, что последние 2 эксперимента фактически используют одну и ту же модель для почти того же набора данных. Разница в производительности не является разницей в модели, она объясняется различными распределениями набора данных проверки и свойствами конкретной используемой МЕТРИКИ - точность и отзыв, которые сильно зависят от этого распределения. Чтобы прояснить этот момент немного подробнее, если вы взяли X отдельных записей из своего начального набора данных проверки и реплицировали класс меньшинства для расширенного набора данных, ваша модель будет делать одинаковые прогнозы для этих записей X, правильные или неправильные, как в масштабированном, так и в несбалансированном наборы проверочных данных. Единственное отличие состоит в том, что для каждого ложного положительного результата будет меньше истинных положительных результатов в исходном наборе данных (следовательно, более низкая точность) и больше истинных положительных результатов в сбалансированном наборе данных (просто из-за того, что в наборе данных в целом имеется больше положительных примеров) , Поэтому говорят, что Precision и Recall чувствительны к перекосу. С другой стороны, как показывают ваши эксперименты, ROC не меняется. Это можно наблюдать, посмотрев на его определение. Поэтому говорят, что РПЦ не чувствительна к перекосам.

У меня пока нет хороших ответов на пункты 2 и 3, так как я ищу их сам :)

Շուշան Առաքելյան
источник
0

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

1) количество TruePositives (TP) увеличивается для "всех порогов" и, как следствие, отношения TP / (TP + FP) и TP / (TP + FN) увеличиваются для всех порогов. Так что площадь под КНР увеличивается.

2) ожидаемая точность, также называемая точностью «немой» модели, увеличивается с ~ 1/2700 (в исходном наборе) до ~ 1/2 (в случае «идеального» баланса). Если предположить, что ваша модель работает лучше, чем «тупая» модель, это означает, что область под кривой будет больше 0,00037 в «исходном наборе» и более 0,5 в идеально сбалансированном наборе.

3) при обучении модели по расширенному набору данных, некоторые модели могут «перекрывать» положительные выборки.

Что касается кривых ROC, кривые ROC, как известно, показывают незначительный эффект от изменений распределения классов (масштабирование имеет очень незначительное влияние на FPR, в то время как вы можете видеть некоторый эффект на TPR).

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

Данил Жеребецкий
источник