У попередньому розділі було представлено ряд показників моделі, які обчислювалися на основі єдиного порогового значення класифікації. Але якщо потрібно оцінити якість моделі за всіма можливими пороговими значеннями, слід скористатися іншими інструментами.
Крива ROC (робочої характеристики приймача)
Крива ROC – візуальне представлення ефективності моделі за всіма пороговими значеннями. Довга версія назви – "робоча характеристика приймача" – є пережитком радіолокаційного виявлення під час Другої світової війни.
Щоб нанести криву ROC, слід обчислити коефіцієнт істиннопозитивних (TPR) і хибнопозитивних (FPR) результатів за кожним можливим пороговим значенням (на практиці беруться числа через вибрані інтервали), а потім побудувати графік TPR над FPR. Ідеальна модель, яка за певного порогового значення має TPR 1,0 і FPR 0,0, може бути представлена або точкою з координатами (0, 1) (якщо всі інші порогові значення ігноруються), або так:
![Рисунок 1. Графік TPR (осі Y) відносно FPR (осі X), що показує ефективність ідеальної моделі: лінія між точками з координатами (0,1) і (1,1).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_1-0.png?hl=uk)
Площа під кривою (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).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-5.png?hl=uk)
Крива влучності/повноти (необов’язково, додатково)
AUC й ROC добре працюють для порівняння моделей, якщо набір даних приблизно збалансовано між класами. Якщо набір даних незбалансований, за допомогою кривих влучності/повноти (PRC) і площі під ними можна створити кращу порівняльну візуалізацію ефективності моделі. Щоб створити криві влучності/повноти, слід нанести влучність на вісь Y, а повноту – на вісь X через усі порогові значення.
![Приклад опуклої кривої влучності/повноти, направленої вниз, яку проведено між точками з координатами (0,1) і (1,0)](https://developers.google.cn/static/machine-learning/crash-course/images/prauc.png?hl=uk)
AUC й ROC для вибору моделі та порогового значення
AUC – корисний показник для порівняння ефективності двох різних моделей, якщо набір даних приблизно збалансований. (Перегляньте розділ Крива влучності/повноти, наведений вище, щоб дізнатися про незбалансовані набори даних.) Модель із більшою площею під кривою зазвичай краща.
![Рисунок 3a. Графік ROC/AUC моделі з AUC 0,65.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-65.png?hl=uk)
![Рисунок 3b. Графік ROC/AUC моделі з AUC 0,93.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-93.png?hl=uk)
Точки на кривій ROC, найближчі до координат (0,1), – це діапазон найефективніших порогових значень для цієї моделі. Як зазначено в розділах Порогові значення, Матриця помилок і Вибір показника й компроміси, порогове значення слід вибирати залежно від того, який показник найважливіший для конкретного застосування. Розгляньмо точки A, B й C на діаграмі, наведеній нижче. Кожна з них – це порогове значення.
![Рисунок 4. Крива ROC з AUC 0,84 й трьома точками на опуклій частині, які розміщено ближче до координат (0,1) і позначено літерами A, B й C.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_abc.png?hl=uk)
Якщо хибнопозитивні результати (хибні тривоги) обходяться дорого, можливо, доцільно вибрати порогове значення, яке дає нижчий коефіцієнт FPR (наприклад, значення в точці A), навіть якщо коефіцієнт TPR буде меншим. І навпаки, якщо хибнопозитивні результати обходяться дешево, а хибнонегативні (пропущені істиннопозитивні) – дуже дорого, доцільніше вибрати порогове значення, яке дасть змогу отримати точку C і якнайбільший коефіцієнт TPR. Якщо обидва типи результатів коштують приблизно однаково, точка B може бути найкращим балансом між TPR і FPR.
Ось крива ROC для даних, які ми бачили раніше:
Вправа. Перевірте свої знання
![Крива ROC між точками з координатами (0,0) і (1,1), яка вигинається вгору, а потім – праворуч. Крива має AUC 0,77.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-77.png?hl=uk)
![Крива ROC між точками з координатами (0,0) і (1,1), що є майже прямою лінією з кількома зигзагами. Крива має AUC 0,508.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-508.png?hl=uk)
![Крива ROC між точками з координатами (0,0) і (1,1), яка зигзагоподібно підіймається вгору й праворуч.
Крива має AUC 0,623.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-623.png?hl=uk)
![Крива ROC між точками з координатами (0,0) і (1,1), яка вигинається праворуч, а потім – угору. Крива має AUC 0,31.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-31.png?hl=uk)
![Крива ROC між точками з координатами (0,0) і (1,1), яка вигинається праворуч, а потім – угору. Крива має AUC 0,32.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-32.png?hl=uk)
![Крива ROC між точками з координатами (0,0) і (1,1), що є майже прямою лінією з кількома зигзагами. Крива має AUC 0,508.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-508.png?hl=uk)
![Крива ROC між точками з координатами (0,0) і (1,1), яка є діагональною прямою. Крива має AUC 0,5.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-5.png?hl=uk)
![Крива ROC, яка складається з двох перпендикулярних ліній: вертикальної і горизонтальної, які проходять між парами точок із координатами (0,0) і (0,1), а також (0,1) та (1,1) відповідно.
Крива має AUC 1,0.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_1-0.png?hl=uk)
Бонусне запитання (необов’язково, додатково)
Уявіть ситуацію, коли краще, якщо спам потрапить до папки "Вхідні", ніж лист, критично важливий для бізнесу, – до папки зі спамом. З огляду на це, ви навчили класифікатор спаму, у якому позитивний клас – це спам, а негативний – ні. Яка з наступних точок на кривій ROC краща для класифікатора?
![Крива ROC з AUC 0,84 й трьома точками на опуклій частині, які розміщено ближче до координат (0,1). Координати точки А – приблизно (0,25, 0,75). Координати точки B – приблизно (0,30, 0,90), і вона дає змогу отримати якнайбільший коефіцієнт TPR при мінімізації FPR. Координати точки C – приблизно (0,4, 0,95).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_abc.png?hl=uk)