ROC AUC метрика качества классификации¶
ROC AUC (от англ. Receiver Operating Characteristic — Area Under Curve) — числовая метрика качества бинарной классификации, равная площади под ROC-кривой. Значение ROC AUC показывает вероятность того, что алгоритм присвоит случайно выбранному объекту положительного класса более высокий балл (скоринг), чем случайно выбранному объекту отрицательного класса. Метрика широко применяется в машинном обучении для оценки разделяющей способности моделей и сравнения их качества.
¶Определение и математическая основа
ROC-кривая строится в координатах True Positive Rate (TPR, полнота, чувствительность) по оси ординат и False Positive Rate (FPR, доля ложных положительных срабатываний) по оси абсцисс. Для каждой точки порога отсечения, изменяющегося от максимального до минимального значения прогноза, вычисляются обе величины:
- TPR = TP / (TP + FN) — доля верно предсказанных положительных объектов среди всех реально положительных;
- FPR = FP / (FP + TN) — доля ошибочно предсказанных положительных объектов среди всех реально отрицательных.
Кривая соединяет точки (0,0) и (1,1), отражая компромисс между полнотой и долей ложных срабатываний. ROC AUC — интеграл от функции TPR(FPR), вычисляемый по всей области изменения порога.
Эквивалентная вероятностная трактовка: если модель выдаёт для положительного объекта значение s₁, а для отрицательного — s₀, то ROC AUC = P(s₁ > s₀). Это свойство позволяет вычислять метрику без явного построения кривой через попарное сравнение всех объектов разных классов.
¶Свойства и интерпретация
ROC AUC принимает значения от 0 до 1. Случайное угадывание соответствует площади 0,5 (кривая близка к диагонали). Идеальная модель даёт площадь 1,0. Значения ниже 0,5 встречаются при систематической инверсии прогнозов — модель стабильно «угадывает наоборот», что может быть исправлено сменой знака предсказания.
Практическая шкала интерпретации: 0,5–0,6 — неудовлетворительное качество; 0,6–0,7 — слабая модель; 0,7–0,8 — приемлемое качество; 0,8–0,9 — хорошая модель; выше 0,9 — отличное качество, что часто свидетельствует о наличии сильных закономерностей либо о возможной утечке целевой переменной.
Метрика инвариантна к масштабу прогнозов и порогу отсечения, что делает её удобной для сравнения моделей, выдающих разные по калибровке вероятности. Она не зависит от соотношения классов, что выгодно отличает её от accuracy при работе с несбалансированными выборками.
¶Связь с другими метриками
ROC AUC эквивалентна статистике U-критерия Манна — Уитни, применяемой для проверки гипотезы о различии распределений двух выборок. Метрика также связана с коэффициентом корреляции Джини: Gini = 2 × ROC AUC − 1.
Для многоклассовой классификации ROC AUC обобщается несколькими способами: усреднением попарных значений (one-vs-one), усреднением значений для каждого класса против остальных (one-vs-rest), а также вычислением по матрице ошибок с весовыми коэффициентами.
¶Вычисление и особенности
Для расчёта ROC AUC по конечной выборке объекты сортируются по убыванию прогнозов, после чего вычисляется площадь под ломаной кривой. При наличии совпадающих прогнозов (связанных рангов) применяется метод усреднения рангов, что соответствует непрерывной аппроксимации.
Метрика чувствительна к смещению прогнозов: если модель выдаёт одинаковые значения для всех объектов, ROC AUC будет равен 0,5 независимо от истинного качества. Поэтому метрику не следует использовать для оценки калибровки вероятностей — для этого применяются другие инструменты, например, калибровочные кривые или Brier score.
¶Применение
ROC AUC используется в задачах кредитного скоринга, медицинской диагностики, обнаружения мошенничества, поиска аномалий и ранжирования. В банковской сфере метрика позволяет оценить, насколько хорошо модель отделяет «хороших» заёмщиков от «плохих» вне зависимости от выбранного порога одобрения. В медицине ROC AUC характеризует диагностическую ценность биомаркера или прогностической модели.
Метрика входит в стандартный набор функций библиотек машинного обучения: roc_auc_score в scikit-learn, auc в R (пакет pROC), а также реализована в PyTorch, TensorFlow и Apache Spark MLlib. В соревновательных платформах (Kaggle, OpenML) ROC AUC часто выступает целевой метрикой соревнований по бинарной классификации.
¶Ограничения
ROC AUC не учитывает стоимость ошибок первого и второго рода. Две модели с одинаковой площадью под кривой могут существенно различаться в конкретной рабочей точке — одна будет лучше при низких порогах, другая при высоких. В задачах, где важна работа именно в узком диапазоне порогов (например, при жёстком ограничении на долю ложных срабатываний), более информативна метрика PR AUC (площадь под кривой precision-recall) либо фиксированные пороговые метрики.
При сильном дисбалансе классов (менее 1 % положительных объектов) ROC AUC может давать завышенную оценку качества: большое число отрицательных объектов стабилизирует FPR, и кривая оказывается близка к идеальной даже при посредственной модели. В таких случаях предпочтительнее использовать PR AUC, которая чувствительнее к ошибкам на редком классе.
Метрика также не учитывает ранжирование внутри классов: модель, правильно ранжирующая объекты лишь «в среднем», может получать высокий ROC AUC, но плохо разделять близкие по скорингу объекты. Для задач, требующих точного ранжирования в верхней части списка (например, выдача кредитов), применяют метрики типа lift или precision@k.
¶История
ROC-кривые возникли в 1940-х годах в США в ходе разработки систем радиолокационного обнаружения (отсюда название — рабочие характеристики приёмника). Операторы радаров решали задачу различения сигнала от цели и шума, и для оценки качества такой бинарной классификации использовались кривые зависимости вероятности обнаружения от вероятности ложной тревоги. В 1970-х годах метод был перенесён в медицину для оценки диагностических тестов, а с развитием машинного обучения в 1990–2000-х годах стал стандартным инструментом оценки алгоритмов классификации.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

