Классификация: ROC и AUC

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

Рабочая характеристика приемника (ROC)

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

Кривая ROC строится путем расчета частоты истинно положительных результатов (TPR) и частоты ложных срабатываний (FPR) при каждом возможном пороге (на практике, через выбранные интервалы), а затем построения графика зависимости TPR от FPR. Идеальная модель, которая при некотором пороге имеет TPR 1,0 и FPR 0,0, может быть представлена ​​либо точкой в ​​(0, 1), если все остальные пороги игнорируются, либо следующим:

Рисунок 1. График зависимости TPR (ось Y) от FPR (ось X), показывающий производительность идеальной модели: линия от (0,1) до (1,1).
Рисунок 1. ROC и AUC гипотетической идеальной модели.

Площадь под кривой (AUC)

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

Представленная выше идеальная модель, содержащая квадрат со сторонами длиной 1, имеет площадь под кривой (AUC) 1,0. Это означает, что существует 100% вероятность того, что модель правильно ранжирует случайно выбранный положительный пример выше, чем случайно выбранный отрицательный пример. Другими словами, глядя на разброс точек данных ниже, AUC дает вероятность того, что модель разместит случайно выбранный квадрат справа от случайно выбранного круга, независимо от того, где установлен порог.

Строка данных виджета без слайдера

Говоря более конкретно, классификатор спама с AUC 1,0 всегда присваивает случайному спам-письму более высокую вероятность того, что оно является спамом, чем случайное законное письмо. Фактическая классификация каждого электронного письма зависит от выбранного вами порога.

Для бинарного классификатора модель, которая работает точно так же, как случайные предположения или подбрасывание монеты, имеет ROC, который представляет собой диагональную линию от (0,0) до (1,1). AUC равен 0,5, что соответствует 50% вероятности правильного ранжирования случайного положительного и отрицательного примера.

В примере с классификатором спама классификатор спама с AUC 0,5 только в половине случаев присваивает случайному спам-письму более высокую вероятность быть спамом, чем случайному законному сообщению.

Рисунок 2. График зависимости TPR (ось Y) от FPR (ось X), показывающий эффективность случайного угадателя 50-50: диагональная линия от (0,0) до (1,1).
Рисунок 2. ROC и AUC полностью случайных предположений.

(Дополнительно, расширенно) Кривая точного отзыва

AUC и ROC хорошо подходят для сравнения моделей, когда набор данных примерно сбалансирован между классами. Когда набор данных несбалансирован, кривые точного отзыва (PRC) и площадь под этими кривыми могут обеспечить лучшую сравнительную визуализацию производительности модели. Кривые точности отзыва создаются путем нанесения точности на ось Y и полноты по оси X для всех пороговых значений.

Пример кривой точного отзыва с выпуклой вниз кривой от (0,1) до (1,0)

AUC и ROC для выбора модели и порога

AUC — полезный показатель для сравнения производительности двух разных моделей, если набор данных примерно сбалансирован. (См. кривую точного отзыва выше для несбалансированных наборов данных.) Модель с большей площадью под кривой, как правило, является лучшей.

Рисунок 3.а. График ROC/AUC модели с AUC=0,65.Рисунок 3.б. График ROC/AUC модели с AUC=0,93.
Рисунок 3. ROC и AUC двух гипотетических моделей. Кривая справа с большей AUC представляет собой лучшую из двух моделей.

Точки на кривой ROC, ближайшие к (0,1), представляют собой диапазон наиболее эффективных пороговых значений для данной модели. Как обсуждалось в разделах «Пороги» , «Матрица путаницы» и «Выбор метрики и компромиссов» , выбираемое вами пороговое значение зависит от того, какая метрика наиболее важна для конкретного варианта использования. Рассмотрим точки A, B и C на следующей диаграмме, каждая из которых представляет собой порог:

Рисунок 4. Кривая ROC с AUC = 0,84, показывающая три точки на выпуклой части кривой, ближайшей к (0,1), обозначенные по порядку A, B, C.
Рисунок 4. Три отмеченные точки, обозначающие пороговые значения.

Если ложные срабатывания (ложные тревоги) обходятся очень дорого, возможно, имеет смысл выбрать порог, который дает более низкий FPR, например, в точке A, даже если TPR снижен. И наоборот, если ложноположительные результаты обходятся дешево, а ложноотрицательные (пропущенные истинные положительные результаты) обходятся очень дорого, то порог для точки C, который максимизирует TPR, может быть предпочтительнее. Если затраты примерно эквивалентны, точка B может предложить лучший баланс между TPR и FPR.

Вот кривая ROC для данных, которые мы видели раньше:

Упражнение: Проверьте свое понимание.

На практике кривые ROC гораздо менее регулярны, чем иллюстрации, приведенные выше. Какая из следующих моделей, представленных кривой ROC и AUC, имеет наилучшие характеристики?
Кривая ROC, изгибающаяся вверх, а затем вправо от (0,0) до (1,1). Кривая имеет AUC 0,77.
Эта модель имеет самую высокую AUC, что соответствует лучшей производительности.
Кривая ROC представляет собой примерно прямую линию от (0,0) до (1,1) с несколькими зигзагами. Кривая имеет AUC 0,508.
Кривая ROC движется зигзагом вверх и вправо от (0,0) до (1,1).            Кривая имеет AUC 0,623.
Кривая ROC, изгибающаяся вправо, а затем вверх от (0,0) до (1,1). Кривая имеет AUC 0,31.
Какая из следующих моделей работает хуже, чем случайность?
Кривая ROC, изгибающаяся вправо, а затем вверх от (0,0) до (1,1). Кривая имеет AUC 0,32.
Эта модель имеет AUC ниже 0,5, что означает, что она работает хуже, чем случайно.
Кривая ROC представляет собой примерно прямую линию от (0,0) до (1,1) с несколькими зигзагами. Кривая имеет AUC 0,508.
Эта модель работает немного лучше, чем случайность.
Кривая ROC, представляющая собой диагональную прямую линию от (0,0) до (1,1). Кривая имеет AUC 0,5.
Эта модель работает так же, как случайность.
Кривая ROC, состоящая из двух перпендикулярных линий: вертикальной линии от (0,0) до (0,1) и горизонтальной линии от (0,1) до (1,1).       Эта кривая имеет AUC 1,0.
Это гипотетический идеальный классификатор.

(Необязательно, для продвинутых пользователей) Бонусный вопрос

Какие из следующих изменений можно внести в модель «хуже, чем случайно», описанную в предыдущем вопросе, чтобы она работала лучше, чем случайность?
Отмените прогнозы, чтобы прогнозы 1 стали 0 , а прогнозы 0 стали 1 .
Если двоичный классификатор достоверно помещает примеры в неправильные классы чаще, чем случайно, немедленное переключение метки класса делает его прогнозы лучше, чем случайно, без необходимости переобучения модели.
Пусть он всегда предсказывает отрицательный класс.
Это может улучшить производительность, а может и не улучшить ее. Кроме того, как обсуждалось в разделе «Точность» , это бесполезная модель.
Пусть он всегда предсказывает положительный класс.
Это может или не может улучшить производительность выше шанса. Кроме того, как обсуждалось в разделе «Точность» , это бесполезная модель.

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

Кривая ROC с AUC=0,84, показывающая три точки на выпуклой части кривой, близкие к (0,1). Точка А находится примерно (0,25, 0,75). Точка B находится примерно на (0,30, 0,90) и является точкой, которая максимизирует TPR при минимизации FPR. Точка C находится примерно на (0,4, 0,95).
Точка А
В этом случае лучше свести к минимуму ложные срабатывания, даже если истинные срабатывания также уменьшатся.
Точка Б
Этот порог уравновешивает истинные и ложные срабатывания.
Точка С
Этот порог максимизирует истинные срабатывания (помечает больше спама) за счет большего количества ложных срабатываний (больше законных писем помечается как спам).