Я недавно закончил соревнование Kaggle, в котором по требованию соревнования использовался roc auc. До этого проекта я обычно использовал показатель f1 в качестве метрики для измерения производительности модели. В будущем мне будет интересно, как выбрать между этими двумя показателями? Когда использовать какие и каковы их плюсы и минусы?
Кстати, я прочитал статью здесь. В чем разница между AUC и F1-счетом? , но это не говорит мне, когда использовать какой.
Заранее благодарю за любую помощь!
источник
Расчетная формула :
ROC / AUC - те же критерии, а кривая PR (Precision-Recall) (оценка F1, Precision, Recall) - также те же критерии.
Реальные данные имеют тенденцию иметь дисбаланс между положительными и отрицательными образцами. Этот дисбаланс имеет большое влияние на PR, но не на ROC / AUC.
Таким образом, в реальном мире кривая PR используется больше, поскольку положительные и отрицательные выборки очень неравномерны. Кривая ROC / AUC не отражает производительность классификатора, но кривая PR может.
Если вы просто проведете эксперимент в исследовательских работах, вы можете использовать ROC, результаты эксперимента будут более красивыми. С другой стороны, кривую PR используют в реальной задаче, и она лучше интерпретируется.
источник
Выше ответы оба хороши.
С несбалансированными данными AUC по-прежнему дает вам приблизительную стоимость около 0,8. Тем не менее, он высокий из-за большого FP, а не большого TP (истинно положительный).
Такой как пример ниже,
Поэтому, когда вы используете AUC для измерения производительности классификатора, проблема заключается в том, что увеличение AUC на самом деле не отражает лучший классификатор. Это просто побочный эффект слишком многих негативных примеров. Вы можете просто попробовать в вашем наборе данных.
Тогда мои предложения по несбалансированным данным похожи на этот пост . Вы также можете попробовать таблицу децилей, которую можно построить, выполнив поиск "Таблицы классификации и децилла два на два". Между тем я тоже изучаю эту проблему и буду лучше ее измерять.
источник
Чтобы выразиться очень простыми словами, когда у вас есть дисбаланс данных, т. Е. Разница между количеством примеров, которые у вас есть для положительных и отрицательных классов, велика, вы всегда должны использовать F1-показатель. В противном случае вы можете использовать кривые ROC / AUC.
источник
Для некоторых задач классификации мультикласса анализ и визуализация ROC / AUC не просты. Вы можете посмотреть на этот вопрос, Как построить кривые ROC в мультиклассовой классификации? , В такой ситуации лучше использовать показатель F1.
И F1 балл является распространенным выбором для проблемы поиска информации и популярным в промышленных условиях. Вот хорошо объясненный пример, строить модели ML сложно. Развернуть их в реальных условиях бизнеса сложнее .
источник
Если целью классификации является оценка по вероятности, лучше использовать AUC, который усредняется по всем возможным порогам. Однако, если цель классификации состоит в том, чтобы просто классифицировать между двумя возможными классами и не требовать того, насколько модель прогнозирует каждый класс, более уместно полагаться на F-показатель, используя определенный порог.
источник