logloss vs gini / auc


15

Я навчив дві моделі (двійкові класифікатори, використовуючи h2o AutoML), і хочу вибрати одну для використання. У мене є такі результати:

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

і aucі loglossстовпці - це показники крос-валідації (для перехресної перевірки використовуються лише навчальні дані). значення ..._trainта ..._validметрики знаходять, запустивши метрики навчання та перевірки відповідно до моделей. Я хочу або використовувати, logloss_validабо gini_validвибрати кращу модель.

Модель 1 має кращий джині (тобто кращий AUC), але модель 2 має кращий журнал. Моє питання - який вибрати, який, на мою думку, ставить питання, які переваги / недоліки використовувати або джині (AUC), або logloss як метрику рішення.


1
У цьому відео є чітке пояснення того, чому віддають перевагу журналу, якщо вас цікавлять ймовірності, а не лише класифікація. Зауважте, що для двійкової класифікації журнал лосс дорівнює бальній оцінці.
Dan

Відповіді:


11

Оскільки AUC обчислюється щодо двійкової класифікації з різним порогом рішення, logloss фактично враховує "визначеність" класифікації.

Тому, наскільки я розумію, логосплей концептуально виходить за межі AUC і особливо актуальний у випадках з незбалансованими даними або у випадку нерівномірно розподіленої вартості помилок (наприклад, виявлення смертельної хвороби).

На додаток до цієї дуже базової відповіді, ви можете поглянути на оптимізацію auc vs logloss у бінарних проблемах класифікації

Простий приклад обчислення logloss та основна концепція обговорюється в цьому нещодавньому питанні Функція Log Loss у scikit-learn повертає різні значення

Крім того, дуже важливий момент було досягнуто в потоковому потоці

Треба зрозуміти вирішальну різницю між AUC ROC та "точковими" показниками, такими як точність / точність тощо. ROC - це функція порогу. Враховуючи модель (класифікатор), яка виводить ймовірність приналежності до кожного класу, ми зазвичай класифікуємо елемент до класу з найбільшою підтримкою. Однак іноді ми можемо отримати кращі результати, змінивши це правило і вимагаючи, щоб одна підтримка була в 2 рази більшою, ніж інша, щоб насправді класифікувати як даний клас. Це часто справедливо для незбалансованих наборів даних. Таким чином ви фактично модифікуєте вивчене до занять, щоб краще відповідати вашим даним. ROC розглядає "що буде, якщо я зміню цей поріг на всі можливі значення", а потім AUC ROC обчислює інтеграл такої кривої.


Ваше перше посилання містить "AUC максимально збільшує здатність моделі розрізняти класи, в той час як logloss карає розбіжність між фактичними та оціненими ймовірностями" , тому я в основному запитую, як я обрав між цими двома цілями? Це в тому випадку, якщо я працюю безпосередньо з результатом 'ймовірності' моделі, я повинен оптимізувати logloss (а потім, ймовірно, також робити калібрування ймовірностей ), де-якби я насправді використовую його як класифікатор для прийняття важкого рішення, що це один калс чи інший, я повинен піти з AUC?
Dan

2
Якщо ви просто переймаєтесь правильним чи неправильним рішенням -> використовуйте AUC - якщо ви переймаєтеся тим, наскільки ви "правильним" чи "неправильним" -> використовуйте logloss
Ніколас Рібєль,

Будь-який подальший вибір міри продуктивності не можна узагальнити, а скоріше залежить від домену / програми.
Ніколас Рібле,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.