🎯 Дослідник ROC-кривої Прогнозування Відтоку Клієнтів
Навчений класифікатор оцінює ймовірність відтоку клієнтів — перетягніть поріг рішення і спостерігайте, як ROC-крива, компроміс точності й повноти та бізнес-витрати рухаються разом.
Про Дослідник ROC-кривої Прогнозування Відтоку Клієнтів
Більшість бізнес-моделей машинного навчання видають не рішення, а ймовірність. Модель відтоку не каже «цей клієнт піде», вона каже «у цього клієнта 73% шанс піти». Щоб перетворити цю ймовірність на дію (надіслати пропозицію утримання чи ні), потрібно обрати поріг рішення, і саме цей вибір визначає, скільки реальних випадків відтоку ви спіймаєте, скільки хибних тривог створите і, зрештою, скільки модель коштуватиме в гривнях і копійках. Ця симуляція генерує синтетичну популяцію клієнтів із відомими результатами та оцінками моделі, а тоді дозволяє вам безпосередньо дослідити це рішення про поріг.
Перетягніть повзунок якості моделі і спостерігайте, як два розподіли оцінок, що перекриваються, — клієнти, які залишилися, зосереджені біля нуля, а ті, хто пішов, зосереджені вище — розходяться або зливаються один з одним. Коли ви рухаєте повзунок порогу, маркер одночасно ковзає по гістограмі оцінок, ROC-кривій і кривій точність-повнота, тож зв'язок між тим, «де я розрізаю оцінки», і тим, «де я опиняюся на кривій», стає одразу наочним. Живий калькулятор витрат дозволяє зважити витрачену пропозицію утримання проти втраченого клієнта і побачити, який саме поріг мінімізує загальні очікувані витрати — а це рідко той самий поріг, що виглядає «найкращим» лише на ROC-кривій.
Часті питання
Що насправді вимірює AUC?
AUC (площа під ROC-кривою) — це ймовірність того, що модель оцінить випадково обраного клієнта, який пішов, вище за випадково обраного клієнта, який залишився. AUC = 1,0 означає ідеальне ранжування — кожен клієнт, що пішов, отримує оцінку вищу за будь-якого, хто залишився. AUC = 0,5 означає, що модель не краща за підкидання монети. Найважливіше — AUC не залежить від порогу: вона підсумовує здатність моделі ранжувати одразу для всіх можливих порогів, тому вона не підказує, який поріг варто використовувати на практиці.
Чому точність (accuracy) вводить в оману, якщо йдуть лише 20% клієнтів?
За базового рівня відтоку 20% лінива модель, яка передбачає «ніколи не йде» для кожного клієнта, вже має точність 80%, не спіймавши жодного реального випадку відтоку. Точність зважує обидва класи однаково, але в незбалансованій популяції домінує клас більшості. Саме тому ця симуляція показує TPR (повноту), точність (precision) і витрати замість accuracy — вони виявляють, наскільки добре модель знаходить рідкісний позитивний клас, а не винагороджують її за повторення класу більшості.
У чому компроміс між точністю (precision) і повнотою (recall) при зміні порогу?
Підвищення порогу означає, що позначаються як відтік лише дуже високі оцінки, тому точність (частка позначених клієнтів, які справді пішли) зазвичай зростає, а повнота (частка реальних випадків відтоку, які ви справді ловите) падає. Зниження порогу діє навпаки — ви ловите більше випадків відтоку, але позначаєте більше хибних тривог. Крива точність-повнота відображає весь цей компроміс; не існує порогу, який максимізує обидва показники одночасно, якщо класи не є ідеально розділюваними.
Чим оптимальний за витратами поріг відрізняється від точки, найближчої до верхнього лівого кута ROC-кривої?
Верхній лівий кут ROC-кривої (TPR = 1, FPR = 0) — це суто статистичний ідеал, що вважає хибнопозитивний і хибнонегативний результати однаково поганими. Натомість оптимальний за витратами поріг мінімізує загальні очікувані бізнес-витрати = FP × вартість-хибнопозитивного + FN × вартість-хибнонегативного. Якщо пропущений випадок відтоку коштує значно дорожче, ніж витрачена пропозиція утримання, оптимальний за витратами поріг буде нижчим (ловить більше випадків відтоку), ніж статистично «збалансована» точка, і навпаки.
Чому в реальному житті пороги відтоку обирають за бізнес-витратами, а не за чистою статистикою?
Імовірність, яку видає модель, — лише проміжний продукт: бізнес-рішення бінарне — надіслати пропозицію утримання чи ні. Дві компанії з ідентичною моделлю та ідентичним AUC можуть цілком раціонально обрати абсолютно різні пороги, якщо їхні структури витрат відрізняються, наприклад маломаржинальний підписковий бізнес проти корпоративного контракту високої вартості. Саме тому впровадження моделі завжди передбачає розмову з бізнесом про відносну вартість хибнопозитивних і хибнонегативних результатів, а не лише метрику дата-саєнс.
Що насправді змінює повзунок «якість моделі»?
Він контролює, наскільки далеко одна від одної розташовані розподіли оцінок клієнтів, які залишилися, і тих, хто пішов. За низької якості два дзвоноподібні розподіли сильно перекриваються, тому жоден поріг не розділяє їх добре, і ROC-крива лежить близько до діагоналі (AUC близько 0,5). За високої якості розподіли майже не перекриваються, ROC-крива різко вигинається до верхнього лівого кута, а AUC наближається до 1,0 — саме це відбувається з розподілом оцінок, коли покращуються ознаки чи алгоритм реальної моделі.
Чому ROC-крива виглядає як сходинки і що означає діагональна лінія?
ROC-крива будується шляхом проведення порогу через кожну окрему оцінку в скінченній вибірці клієнтів; щоразу, коли поріг перетинає оцінку одного клієнта, крива робить крок вгору (був спійманий істинно позитивний випадок) або вправо (був спійманий хибнопозитивний випадок), утворюючи сходинки, а не плавну лінію. З більшою кількістю клієнтів сходинки стають дрібнішими, і крива виглядає плавнішою. Пунктирна діагональ від (0,0) до (1,1) представляє модель з нульовою прогностичною здатністю — очікувана ROC-крива класифікатора, що вгадує навмання, лежить точно на цій лінії.
Синтетична популяція оцінених клієнтів генерується наживо з двох логіт-нормальних розподілів, що перекриваються; ROC-крива, PR-крива та AUC обчислюються шляхом проходження кожної окремої оцінки як порогу та інтегрування отриманих точок за методом трапецій — нічого не обчислено заздалегідь і не підроблено.
2D · рушій Three.js / WebGL · ціль 60 FPS · працює повністю на стороні клієнта, без встановлення