Перейти к содержанию
Избранное

Калькулятор ROC AUC

Обновлено:

Введите метки классов (0/1) и прогнозные баллы, чтобы рассчитать ROC AUC, коэффициент Джини, оптимальный порог по критерию Йодена, матрицу ошибок и все точки ROC-кривой.

Насколько хорошо оценки разделяют два класса

Поля ввода
t
Наблюдение относится к положительному классу, если его оценка больше или равна этому порогу. На значение AUC не влияет.
Если включено, результат будет автоматически обновляться при изменении любого значения.

Формула ROC AUC

Формула
\[ \text{AUC} = \frac{\#\{\text{пары, где } s_+ > s_-\} + \tfrac{1}{2}\,\#\{\text{пары, где } s_+ = s_-\}}{P \cdot N} \] \[ G = 2\,\text{AUC} - 1, \qquad J = \text{чувствительность} + \text{специфичность} - 1 = \text{TPR} - \text{FPR} \]

Обозначения:

  • \(P\) — число положительных случаев (метка 1)
  • \(N\) — число отрицательных случаев (метка 0)
  • \(s_+\) — балл положительного случая; \(s_-\) — балл отрицательного случая
  • \(G\) — коэффициент Джини (D Сомерса), пересчёт AUC в другую шкалу
  • \(J\) — статистика Йодена, по которой находят оптимальный порог

AUC — это вероятность того, что случайно взятый положительный случай получит более высокий балл, чем случайно взятый отрицательный (ничьи считаются половиной успеха). Она равна площади под ROC-кривой, вычисленной методом трапеций, и статистике U Манна — Уитни, делённой на \(P \cdot N\).

ROC AUC — пример расчёта

Пример: 10 случаев, 5 положительных и 5 отрицательных, со стандартными баллами. Баллы положительных случаев: 0,9; 0,85; 0,8; 0,75; 0,6. Баллы отрицательных: 0,7; 0,4; 0,3; 0,2; 0,1.

Получается \(P \cdot N = 25\) пар «положительный — отрицательный». В 24 из них положительный случай имеет более высокий балл; единственная пара с нарушенным порядком — (0,6; 0,7). Ничьих нет, поэтому:

\[ \text{AUC} = \frac{24 + \tfrac{1}{2}\cdot 0}{5 \times 5} = 0.96 \]

Результат: AUC = 0,96, коэффициент Джини \(2 \times 0.96 - 1 = 0.92\). Оптимальный порог по критерию Йодена — балл ≥ 0,6 (чувствительность 100 %, специфичность 80 %, \(J = 0,8\)). При пороге по умолчанию 0,5 матрица ошибок такова: TP = 5, FP = 1, FN = 0, TN = 4 (точность 90 %).

Как пользоваться калькулятором

  1. Вставьте фактические метки классов (0 или 1) в первое поле — по одной метке на случай, разделяя пробелами, переводами строк или точками с запятой. 1 — положительный класс, 0 — отрицательный.
  2. Во вторее поле вставьте прогнозные баллы в том же порядке, что и метки. Подойдёт любая числовая шкала (вероятности, выходы модели, рейтинги); запятая в качестве десятичного разделителя допускается.
  3. При желании измените порог для матрицы ошибок (по умолчанию 0,5). Случай считается положительным, если его балл ≥ этого порога. Порог на AUC не влияет.
  4. Ознакомьтесь с результатами: площадь под ROC-кривой, коэффициент Джини, оптимальный порог (критерий Йодена), матрица ошибок при вашем пороге и таблица точек ROC-кривой, по которой можно построить график.

Оба списка должны быть одинаковой длины, а в данных должен быть хотя бы один положительный и один отрицательный случай — иначе качество ранжирования оценить нельзя.

Что такое ROC AUC?

ROC-кривая (Receiver Operating Characteristic, рабочая характеристика приёмника) показывает, как бинарный классификатор работает при каждом возможном пороге. Каждая точка кривой — это пара (доля ложных срабатываний, доля верных срабатываний), полученная, когда положительными объявляются все случаи с баллом ≥ некоторого порога. Двигая порог от высокого к низкому, мы прочерчиваем кривую от начала координат (ничего не отнесено к положительным) до правого верхнего угла (положительными объявлено всё).

AUC — площадь под этой кривой — сводит всю кривую к одному числу. У неё есть прямой вероятностный смысл: это шанс, что случайно выбранный положительный случай получит более высокий балл, чем случайно выбранный отрицательный. Идеальное ранжирование даёт AUC = 1; бесполезное (случайное) — AUC = 0,5; стабильно перевёрнутое — AUC < 0,5, и это знак, что направление баллов нужно поменять на противоположное.

Грубая ориентировка: 0,9–1 — отлично, 0,8–0,9 — хорошо, 0,7–0,8 — удовлетворительно, 0,6–0,7 — слабо, 0,5 — не лучше случайного угадывания. Коэффициент Джини \(2\cdot\text{AUC}-1\) переводи́т эту шкалу так, что 0 означает случайность, а 1 — идеал; он широко используется в кредитном скоринге, где его также называют D Сомерса.

В отличие от точности или точности предсказаний (precision), AUC не зависит от порога: она показывает, насколько хорошо баллы ранжируют случаи, независимо от того, какой порог вы выберете позже. Поэтому это естественная метрика для сравнения скоринговых моделей, но она ничего не говорит о калибровке — балл 0,8 не обязан соответствовать вероятности 80 %. Если нужны метрики матрицы ошибок при конкретном пороге, используйте этот калькулятор вместе с калькулятором матрицы ошибок.

Выбор порога

Калькулятор выдаёт порог, при котором максимальна статистика Йодена \(J = \text{чувствительность} + \text{специфичность} - 1\), — это точка ROC-кривой, наиболее удалённая от диагонали. Это разумный вариант по умолчанию, но не всегда лучший на практике. При медицинском скрининге может быть важна высокая чувствительность, даже ценой большего числа ложных срабатываний; в подтверждающем тесте или при выявлении мошенничества с дорогостоящими проверками больший вес может иметь специфичность. По таблице точек ROC-кривой видно компромисс между чувствительностью и специфичностью при каждом различном балле — выберите порог, подходящий именно вашим затратам.

Поскольку AUC — мера ранжирования, она тесно связана с другими ранговыми статистиками. Если вы анализируете согласованность рангов в более общем виде, вам пригодится калькулятор коэффициента ранговой корреляции Кендалла: он сравнивает согласованные и несогласованные пары двух переменных.

Допущения, ограничения и советы

  • Только бинарные исходы. Метки должны быть строго 0 или 1. В многоклассовых задачах вычисляйте AUC отдельно для каждого класса (класс против остальных).
  • Независимость. Каждый случай вносит одну метку и один балл; случаи считаются независимыми. Повторные измерения одного и того же объекта нарушают это условие.
  • Ничьи учитываются так: каждая пара «положительный — отрицательный» с равными баллами считается половиной успеха — это соответствует площади по трапециям и соглашению статистики U Манна — Уитни.
  • Малые выборки. При небольшом числе случаев у AUC широкий доверительный интервал; рядом с ней имеет смысл привести интервал Хэнли — Макнила или Делонга. Стандартный пример на 10 случаев приведён лишь для иллюстрации.
  • Дисбаланс классов. AUC нечувствительна к соотношению положительных и отрицательных случаев — это может быть как плюсом, так и слепым пятном: модель может иметь высокий AUC, пропуская многих реальных положительных случаев. Проверьте матрицу ошибок и метрики вроде отношения шансов, чтобы понять практические последствия.
  • AUC < 0,5 означает, что баллы перевёрнуты: либо используйте логику «балл ≤ порога», либо поменяйте метки местами.

Часто задаваемые вопросы

Как вычислить AUC вручную, без программ?

Выпишите все баллы положительных и все баллы отрицательных случаев, а затем сравните все пары «положительный — отрицательный». Посчитайте, в скольких парах балл положительного случая строго выше; ничьи считаются за 0,5. Разделите на общее число пар. Если положительных 4, а отрицательных 6, пар будет 24; если 21 упорядочена верно и 2 — ничьи, то \(\text{AUC} = (21 + 1)/24 \approx 0.92\). Это в точности статистика U Манна — Уитни, делённая на \(P \cdot N\).

Может ли AUC быть больше 1 или отрицательной?

Нет. AUC — это вероятность, поэтому она всегда лежит между 0 и 1. Если при ручном расчёте получается значение вне этого диапазона, вы ошиблись в подсчёте пар или перепутали классы. AUC ниже 0,5 математически корректна — просто она означает, что баллы ранжируют в обратную сторону, и если поменять сравнение на противоположное (считать более «положительными» низкие баллы), получится 1 − AUC.

Сколько случаев нужно для надёжного AUC?

Жёсткого минимума нет, но точность растёт медленно. При 10 положительных и 10 отрицательных случаях AUC меняется шагами 1/100, а 95 %-й доверительный интервал может легко составить 0,2 и более. Ориентируйтесь минимум на 20–30 случаев в каждом классе для грубой оценки и приводите доверительный интервал Делонга или Хэнли — Макнила, чтобы читатели видели степень неопределённости, а не доверяли одному числу.

Всегда ли модель с более высоким AUC лучше?

Не обязательно. AUC измеряет только качество ранжирования, поэтому модель может иметь высокий балл, но плохо работать на практике: например, при редких положительных случаях она может пропускать многих реальных больных, сохраняя солидный AUC. Кроме того, AUC не учитывает калибровку и реальные цены ошибок. Всегда дополняйте её матрицей ошибок при реалистичном пороге, а для конкретной задачи смотрите также точность предсказаний, полноту или lift.

Почему AUC не меняется, когда я меняю порог?

Так и должно быть. AUC оценивает модель сразу по всем возможным порогам, поэтому один порог повлиять на неё не может. Изменение порога лишь перемещает вас вдоль ROC-кривой, то есть меняет рабочую точку — а с ней матрицу ошибок, точность, точность предсказаний и полноту. Поле порога удобно для изучения этого компромисса, а AUC — для сравнения моделей до выбора одной из них.

Как коэффициент Джини связан с AUC?

Это линейное пересчитывание: \(G = 2\times\text{AUC} - 1\). Уровень случайности (AUC 0,5) превращается в Джини 0, а идеальное ранжирование — в Джини 1. В работах по кредитному скорингу и в экономике часто указывают коэффициент Джини или эквивалентный ему D Сомерса, а в статьях по машинному обучению — AUC; информация в них одна и та же, так что перевод между ними — это единственная приведённая формула.

Можно ли использовать этот калькулятор больше чем для двух классов?

Напрямую — нет: ROC-кривая определена для бинарных исходов, поэтому метки должны быть 0 или 1. В многоклассовой задаче вычислите AUC для каждого класса по схеме «класс против остальных»: считайте этот класс единицей, объедините остальные в ноль и выполните расчёт отдельно. Чтобы свести результат, усредните AUC по классам — обычно с равными весами (макроусреднение) или с весами по частоте классов.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *