Калькулятор ROC AUC
Введіть мітки класів (0/1) та прогнозні бали, щоб обчислити ROC AUC, коефіцієнт Джині, оптимальний поріг за індексом Юдена, матрицю помилок і повний набір точок ROC-кривої.
Наскільки добре ваші оцінки розділяють два класи
Формула ROC AUC
Де:
- \(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 %).
Як користуватися калькулятором
- Вставте фактичні мітки класів (0 або 1) у перше поле — по одній мітці на випадок, розділені пробілом, новим рядком або крапкою з комою. Позначайте 1 позитивний клас і 0 — негативний.
- Вставте прогнозні бали у друге поле, в тому ж порядку, що й мітки. Підійде будь-яка числова шкала (ймовірності, виходи моделі, рейтинги); десяткові коми підтримуються.
- За бажанням змініть поріг для матриці помилок (стандартно 0,5). Випадок класифікується як позитивний, якщо його бал ≥ цього порогу. Поріг не впливає на AUC.
- Ознайомтеся з результатами: площа під 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 Сомерса.
На відміну від частки правильних класифікацій (accuracy) або precision, AUC — метрика, незалежна від порогу: вона показує, наскільки добре бали ранжують випадки, незалежно від порогу, який ви згодом оберете. Саме тому це природна метрика для порівняння скорингових моделей, але водночас вона нічого не говорить про калібрування — бал 0,8 не обов’язково відповідає ймовірності 80 %. Якщо вам потрібні метрики матриці помилок за конкретного порогу, використовуйте цей інструмент разом із калькулятором матриці помилок.
Вибір порогу
Калькулятор показує поріг, який максимізує статистику Юдена, \(J = \text{чутливість} + \text{специфічність} - 1\), — тобто точку ROC-кривої, найвіддалішу від діагоналі. Це розумний стандартний вибір, але не завжди найкращий із практичного погляду. У медичному скринінгу може бути важливішою висока чутливість, і ви змиритеся з більшою кількістю хибнопозитивних результатів; у підтверджувальному тесті або при виявленні шахрайства з дорогими перевірками більшого значення може набувати специфічність. Скористайтеся таблицею точок ROC, щоб побачити співвідношення між чутливістю та специфічністю за кожного окремого бала, і оберіть поріг, що відповідає вашим витратам.
Оскільки AUC — це міра ранжування, вона тісно пов’язана з іншими ранговими статистиками. Якщо ви аналізуєте узгодженість ранжування ширше, калькулятор тау Кендалла охоплює конкордантні та дискордантні пари між двома змінними.
Припущення, обмеження та поради
- Лише бінарні результати. Мітки мають бути точно 0 або 1. Для багатокласових задач обчислюйте окремий AUC для кожного класу (за схемою «один проти решти»).
- Незалежність. Кожен випадок дає одну мітку і один бал, і випадки вважаються незалежними. Повторні вимірювання одного об’єкта порушують цю умову.
- Нічиї враховуються так: кожна пара «позитивний–негативний» з однаковими балами зараховується як половина успіху — це відповідає трапецієвидному AUC і угоді Манна–Уїтні.
- Малі вибірки. За невеликої кількості випадків 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 матрицею помилок за реалістичного порогу та розглядайте precision, recall або lift для вашого конкретного завдання.
Чому AUC не змінюється, коли я змінюю поріг?
Так і має бути. AUC узагальнює роботу моделі одразу за усіх можливих порогів, тому жоден окремий поріг на неї не впливає. Зміна порогу лише переміщує вас по ROC-кривій, змінюючи точку, у якій ви працюєте, — а отже, і матрицю помилок, accuracy, precision та recall. Використовуйте поле порогу, щоб дослідити цей компроміс, а AUC — щоб порівнювати моделі до вибору однієї з них.
Як коефіцієнт Джині пов’язаний з AUC?
Це лінійне перетворення шкали: \(G = 2\times\text{AUC} - 1\). Випадковий результат (AUC 0,5) відповідає Джині 0, а досконале ранжування — Джині 1. У публікаціях з кредитного скорингу та економіки часто наводять Джині або еквівалентну йому D Сомерса, тоді як у статтях з машинного навчання — AUC; інформація в них ідентична, тож перехід між ними зводиться до цієї однієї формули.
Чи можна користуватися цим калькулятором для більш ніж двох класів?
Не безпосередньо — ROC-крива визначена для бінарних результатів, тому мітки мають бути 0 або 1. Для багатокласової задачі обчисліть окремий AUC для кожного класу за схемою «один проти решти»: прийміть цей клас за 1, об’єднайте всі інші класи в 0 і виконайте обчислення окремо. Щоб підсумувати результат, усередніть AUC за класами — зазвичай з однаковими вагами (макроусереднення) або з вагами, пропорційними до частоти класів.