ГоловнаСтаттіData Science

Матриці Плутання, Криві ROC та AUC: Читання Класифікатора Чесно

TP, FP, TN, FN, компроміс між точністю та чутливістю, чому AUC незалежний від порогу, і коли крива ROC тихо обманює вас щодо рідкої позитивної категорії.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Поріг перетворення оцінок на рішення

Більшість бінарних класифікаторів не видають твердого «так/ні» — вони виводять безперервну оцінку (ймовірність, відстань, логіт), і рішення з'являється лише після того, як обрано поріг: все, що перевищує його, вважається позитивним, а все, що нижче, – негативним. Змінюйте цей поріг, і всі подальші метрики змінюються, оскільки ви не змінюєте модель саму — ви просто зміщуєте лінію через дві перекривающиеся розподіли оцінок, один для справжніх позитивних та інший для справжніх негативних.

жива демонстрація · пов'язана симуляція● LIVE

Чотири результати

Кожне передбачення, порівняно з фактичними даними, потрапляє точно в одну з чотирьох комірок:

передбачено позитивно передбачено негативно фактично позитивно Істинний Позитивний (TP) Негативний Хібний (FN) фактично негативно Хібний Позитивний (FP) Істинно Негативний (TN)

Усі класифікаційні метрики, які зазвичай використовуються, є просто певним співвідношенням цих чотирьох значень. Точність = (TP+TN)/загальна кількість – найочевидніша, але й найменш корисна, коли класи незбалансовані: модель, яка завжди передбачає «негатив» на наборі даних, що складається на 99% з негативних оцінок, досягне точності 99%, при цьому виявляючи нуль позитивних випадків – це саме той режим невдачі, який спонукає до розробки всіх інших метрик нижче.

                  predicted positive     predicted negative
actual positive   True Positive  (TP)    False Negative (FN)
actual negative   False Positive (FP)    True Negative  (TN)

Точність, чутливість та компроміс між ними

Точність = TP / (TP + FP)

"З усього, що я назвав позитивним, яка частина була дійсно правильною?" Чутливість = TP / (TP + FN)

"З усього, що насправді було позитивним, яку частину я виявив?" (Чутливість також називається чутливістю або істинно позитивною частотою)

F1 = 2 · Точність · Чутливість / (Точність + Чутливість) Гармонійна середня між двома показниками

Підвищення порогу робить класифікатор більш обережним: менше позитивних випадків оголошується, тому точність схиляється до зростання (тих випадків, які ви назвали позитивними, ймовірніше, будуть правильними), а чутливість схиляється до падіння (ви пропускаєте більше справжніх позитивних випадків через обережність). Зниження порогу робить навпаки. Це не помилка, яку потрібно оптимізувати – це реальний компроміс без порогового рішення, і яке з цих боків важливо більше залежить від вартості двох типів помилок, а не властивості моделі: скринінг на рак хоче дуже мало пропущених позитивних випадків (висока чутливість, толеруючи додаткові хибнопозитивні результати), а фільтр спаму хоче дуже мало справжніх електронних листів, класифікованих як помилково (висока точність, толеруючи деякий спам, який пробивається).

Precision = TP / (TP + FP)     "of everything I called positive, how much really was?"
Recall    = TP / (TP + FN)     "of everything that really was positive, how much did I catch?"
                                (recall is also called sensitivity or true positive rate)

F1 = 2 · Precision · Recall / (Precision + Recall)     harmonic mean of the two

ROC крива та площа під нею (AUC)

Графік ROC (Receiver Operating Characteristic) відображає відношення істинних позитивних результатів (чуткість, recall) до відносних негативних результатів (хибний позитивний результат, FPR) для різних порогових значень. Він показує повну компромісну залежність замість одного значення на поріг:

TPR (чуткість) = TP / (TP + FN) Вісь Y FPR (хибний позитивний результат) = FP / (FP + TN) Вісь X діагональ TPR = FPR класифікатор з нульовою інформацією — еквівалент випадковому гадуванню крива вище діагоналі справжня диференційна здатність kинець вгорі ліворуч (0, 1) нездійсненний ідеал: TPR=1, FPR=0

Площа під ROC кривою (AUC) узагальнює всю криву в одну величину між 0.5 (не краще за випадковість) та 1.0 (ідеальне розділення). Це чисельне значення є міцним ймовірнісним показником, який варто запам'ятати, оскільки воно пояснює, чому AUC не залежить від порогового значення: AUC дорівнює ймовірності того, що випадково обраний істинний позитивний результат отримає вищий бал, ніж випадково обраний істинний негативний результат. Це саме тому, що AUC не звертає уваги на те, де ви зрештою встановлюєте поріг – вона вимірює, наскільки добре розділені два розподіли балів спочатку, до прийняття будь-якого рішення про поріг.

TPR (recall)  = TP / (TP + FN)      y-axis
FPR           = FP / (FP + TN)      x-axis

diagonal TPR = FPR                  a classifier with zero information —
                                     equivalent to guessing at random
curve above the diagonal            genuine discriminative ability
top-left corner (0, 1)              the unreachable ideal: TPR=1, FPR=0

Коли ROC вводить в оману: крива прецизійності та чутливості

ROC нормалізує показник хибнопозитивних результатів за допомогою кількості істинно негативних випадків (TN), що стає проблемою, коли кількість негативних випадків значно перевищує кількість позитивних – навіть велика абсолютна кількість хибних позитивів може становити лише невелику частку величезної негативної класи, тому FPR майже не змінюється, а крива ROC виглядає обманливо добре, хоча прецизійність, яка нормалізується за допомогою (значно меншої) кількості передбачених позитивних випадків, швидко падає. Крива прецизійності та чутливості відображає прецизійність проти чутливості безпосередньо і є стандартною альтернативою, коли кількість позитивної класи рідкісна – наприклад, виявлення шахрайства, скринінг захворювань або виявлення рідкісних подій – саме ті ситуації, де оптимізм ROC найбільш оманливий.

Визначення порогу, відмінного від 0.5 за замовчуванням

Ніщо не робить 0.5 правильним порогом, крім звички; він оптимальний лише тоді, коли вартість хибнопозитивних та хибнонегативних результатів абсолютно однакова і класи збалансовані, що рідко буває на практиці. Статистика Юдена, J = TPR − FPR = TPR + TNR − 1, визначає поріг, який максимізує вертикальну відстань від кривої ROC до діагоналі — розумний за замовчуванням, коли обидва типи помилок мають однакову вагу — але чесною є обрана спосіб прикріпити явну вартість хибнопозитивного та хибнонегативного результату і вибрати той поріг, який мінімізує очікуваний загальний збиток, що точно те, що дозволяє побачити в живому демо, коли поріг плавно змінюється між двома розподілами оцінок, клітинка за клітинкою, а не через єдину підсумкову криву.

Часті запитання

Чому точність є поганим показником для незбалансованих класів?

Тому що точність оцінює всі правильні передбачення однаково, незалежно від розміру класу. На наборі даних, який на 99% складається з негативних прикладів, класифікатор, який завжди прогнозує негативні значення з 99% точністю, але не ловить жодного позитивного прикладу — повністю марна модель за будь-якими практичними мірками. Точність, чутливість (recall) та крива пресіона-пом’якшення набагато більш інформативні в цій ситуації, оскільки вони явно чутливі до того, як обробляється рідкісний позитивний клас.

Що таке AUC простими словами?

AUC — це ймовірність того, що класифікатор дає випадковому позитивному прикладу вищий бал, ніж випадковому негативному прикладу. AUC 0,5 означає, що модель не розрізняє два класи краще, ніж підкидання монетки; AUC 1,0 означає, що всі позитивні бали вищі за всі негативні, тому існує поріг, який ідеально класифікує все.

Чому крива ROC виглядає добре, навіть коли модель фактично погано працює з меншинним класом?

Тому що хибнопозитивний відсоток на осі x кривої ROC нормалізований за допомогою загальної кількості істинних негативів, яка може бути величезною, коли позитивний клас рідкісний — велика абсолютна кількість хибних позитивних результатів все ще утворює невелику частку цієї величезної негативної групи. Точність (precision), навпаки, нормалізована за допомогою кількості передбачених позитивних прикладів, тому вона виявляє ті самі хибні позитивні результати як набагато більша та більш чесна частка. Саме тому крива пресіона-пом’якшення є переважною, коли рідкісний клас є позитивним.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Confusion Matrix Explorer і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Confusion Matrix Explorer

Що ви знайшли?

Додати кроки відтворення (опційно)