F1 Счет против РПЦ АУК

У меня есть ниже оценки F1 и AUC для 2 разных случаев

Модель 1: Точность: 85,11 Напомним: 99,04 F1: 91,55 AUC: 69,94

Модель 2: Точность: 85,1 Напомним: 98,73 F1: 91,41 AUC: 71,69

Основным мотивом моей проблемы является правильное прогнозирование положительных случаев, то есть уменьшение количества ложных отрицательных случаев (FN). Должен ли я использовать F1 балл и выбрать модель 1 или использовать AUC и выбрать модель 2. Спасибо

4 ответа

Вступление

Как правило, каждый раз, когда вы хотите сравнить ROC AUC с баллом F1, подумайте об этом, сравнивая производительность модели на основе:

[Sensitivity vs (1-Specificity)] VS [Precision vs Recall]

Теперь нам нужно понять, что такое: Чувствительность, Специфичность, Точность и Вспомнить интуитивно!


Фон

Чувствительность: определяется по следующей формуле:

формула чувствительности

Говоря интуитивно, если у нас есть модель, чувствительная на 100%, это означает, что она НЕ пропустила Истинный Позитив, другими словами, НЕТ ложных негативов (т.е. положительный результат, помеченный как отрицательный). Но есть риск иметь много ложных срабатываний!

Специфичность: определяется по следующей формуле:

формула специфичности

Говоря интуитивно, если у нас есть 100% конкретная модель, это означает, что она НЕ пропустила ни одного истинного отрицания, другими словами, НЕТ ложных положительных результатов (то есть отрицательный результат, который помечен как положительный). Но есть риск иметь много ложных негативов!

Точность: определяется по следующей формуле: Точность Формула

Говоря интуитивно, если у нас есть 100% точная модель, это означает, что она может уловить все истинно положительные результаты, но не было ложных положительных.

Напомним: дается по следующей формуле:

Напомним, Формула

Говоря интуитивно, если у нас есть модель 100% отзыва, это означает, что она НЕ пропустила Истинный Позитив, другими словами, НЕТ Ложных Отрицаний (т.е. положительный результат, помеченный как отрицательный).

Как видите, четыре понятия очень близки друг к другу!

оценка f1


Как правило, если стоимость ложного отрицательного результата высока, мы хотим повысить чувствительность модели и вспомнить!

Например, при обнаружении мошенничества или обнаружении больного пациента мы не хотим маркировать / прогнозировать мошенническую транзакцию (True Positive) как не мошенническую (False Negative). Кроме того, мы не хотим маркировать / предсказывать заразного больного пациента (истинный положительный) как нездорового (ложный отрицательный). Почему? потому что последствия будут крайне плохими!

С другой стороны, если цена ложного срабатывания высока, мы хотим повысить специфичность и точность модели!

Например, при обнаружении спама в электронной почте мы не хотим помечать / прогнозировать не спам-сообщение (True Negative) как спам (False Positive)... и т. Д.


Счет F1

Это дается следующей формулой:

Формула счета F1

Счет F1 сохраняет баланс между Точностью и Напомним. Мы используем его при неравномерном распределении классов, так как точность и отзыв могут дать неверные результаты!

Таким образом, мы используем показатель F1 в качестве индикатора сравнения между Точностью и Числами отзыва!


Площадь под кривой рабочих характеристик приемника (AUROC)

Он сравнивает чувствительность с (1-специфичность), другими словами, сравнивает истинно положительный уровень с ложно положительным.

площадь под кривой

Таким образом, чем больше AUROC, тем лучше различать истинные позитивы и истинные негативы!


AUROC против F1 Score (Заключение)

Как правило, ROC для многих различных уровней пороговых значений и, таким образом, имеет много значений F-баллов. Оценка F1 применима для любой конкретной точки на кривой ROC.

Вы можете думать об этом как о мере точности и вспоминать при определенном пороговом значении, тогда как AUC - это область под кривой ROC. Чтобы оценка F была высокой, точность и отзыв должны быть высокими.

Следовательно, когда у вас есть дисбаланс данных между положительными и отрицательными выборками, вы всегда должны использовать F1-показатель, потому что ROC усредняется по всем возможным порогам!


Далее читайте:

Мошенничество с кредитными картами: обработка классов с сильным дисбалансом и почему не следует использовать кривую рабочих характеристик приемника (кривая ROC), а кривую Precision/Recall следует отдавать предпочтение в ситуациях с сильным дисбалансом

Если вы посмотрите на определения, вы можете, чтобы и AUC, и F1-показатель оптимизировали "что-то" вместе с частью выборки, помеченной как "положительная", которая на самом деле действительно положительная.

Это "что-то" это:

  • Для AUC - специфичность, которая представляет собой долю отрицательно меченого образца, который правильно маркирован. Вы не смотрите на ту часть ваших положительно помеченных образцов, которая правильно помечена.
  • Используя показатель F1, это точность: доля положительно помеченного образца, который правильно помечен. И используя показатель F1, вы не считаете чистоту образца, помеченного как отрицательную (специфичность).

Разница становится важной, когда у вас очень несбалансированные или искаженные классы: например, есть гораздо больше истинных негативов, чем истинных позитивов.

Предположим, вы просматриваете данные от населения в целом, чтобы найти людей с редким заболеванием. Гораздо больше людей "отрицательных", чем "положительных", и попытка оптимизировать, насколько хорошо вы работаете с положительными и отрицательными образцами одновременно, используя AUC, не является оптимальной. Вы хотите, чтобы положительный образец включал все положительные значения, если это возможно, и не хотите, чтобы он был огромным из-за высокого уровня ложных срабатываний. Так что в этом случае вы используете счет F1.

И наоборот, если оба класса составляют 50% вашего набора данных или оба составляют значительную долю, и вы заботитесь о своей эффективности в одинаковой идентификации каждого класса, то вам следует использовать AUC, который оптимизирует оба класса, положительный и отрицательный.

Просто добавляю сюда свои 2 цента:

AUC выполняет неявное взвешивание образцов, чего не делает F1.

В моем последнем примере использования, сравнивающем эффективность лекарств для пациентов, легко узнать, какие лекарства обычно сильные, а какие слабые. Большой вопрос заключается в том, сможете ли вы выйти за пределы диапазона (несколько положительных моментов для слабого лекарства или несколько отрицательных для сильного). Чтобы ответить на этот вопрос, вам нужно специально взвесить выбросы с помощью F1, чего вам не нужно делать с AUC.

правильно прогнозировать положительные случаи

можно немного переписать вашу цель и получить: когда дело действительно нужно классифицировать как positiveслишком. Вероятность такого события p(predicted_label = positive | true_label = positive)является отзывом по определению. Если вы хотите максимизировать это свойство вашей модели, вы должны выбрать Модель 1.

Другие вопросы по тегам