Recentemente, completei uma competição Kaggle na qual a pontuação roc auc foi usada conforme os requisitos da competição. Antes deste projeto, eu normalmente usava a pontuação f1 como métrica para medir o desempenho do modelo. No futuro, me pergunto como devo escolher entre essas duas métricas. Quando usar quais e quais são seus respectivos prós e contras?
Btw, eu li o artigo aqui Quais são as diferenças entre AUC e F1-score? , mas não me diz quando usar qual.
Agradecemos antecipadamente por qualquer ajuda!
fonte
Fórmula de cálculo:
O ROC / AUC é o mesmo critério e a curva PR (Precision-Recall) (escore F1, Precision, Recall) também é o mesmo critério.
Dados reais tendem a ter um desequilíbrio entre amostras positivas e negativas. Esse desequilíbrio tem grande efeito no PR, mas não no ROC / AUC.
Portanto, no mundo real, a curva PR é mais usada, pois as amostras positivas e negativas são muito desiguais. A curva ROC / AUC não reflete o desempenho do classificador, mas a curva PR pode.
Se você apenas fizer o experimento em trabalhos de pesquisa, poderá usar o ROC, os resultados experimentais serão mais bonitos. Por outro lado, a curva PR usa o problema real e tem melhor interpretabilidade.
fonte
As respostas acima são boas.
Com dados desequilibrados, a AUC ainda fornece um valor ilusório em torno de 0,8. No entanto, é alto devido ao FP grande, em vez do TP grande (verdadeiro positivo).
Como o exemplo abaixo,
Portanto, quando você usa a AUC para medir o desempenho do classificador, o problema é que o aumento da AUC não reflete realmente um classificador melhor. É apenas o efeito colateral de muitos exemplos negativos. Você pode simplesmente tentar no seu conjunto de dados.
Então, minhas sugestões para dados desequilibrados são semelhantes a este post . Você também pode experimentar a tabela de decil, que pode ser construída pesquisando "Tabelas de classificação e decil dois a dois". Enquanto isso, também estou estudando esse problema e darei uma medida melhor.
fonte
Para colocar palavras muito simples quando você tem um desequilíbrio de dados, ou seja, a diferença entre o número de exemplos que você tem para as classes positiva e negativa é grande, você deve sempre usar a pontuação F1. Caso contrário, você pode usar curvas ROC / AUC.
fonte
Para alguns problemas de classificação de várias classes, a análise e visualização do ROC / AUC não é simples. Você pode analisar esta questão: como plotar curvas ROC na classificação multiclasse? . Em tal situação, o uso da pontuação F1 poderia ser uma métrica melhor.
E a pontuação F1 é uma escolha comum para problemas de recuperação de informações e popular nas configurações do setor. Aqui está um exemplo bem explicado: construir modelos de ML é difícil. Implantá-los em ambientes de negócios reais é mais difícil .
fonte
Se o objetivo da classificação é pontuar por probabilidade, é melhor usar AUC que calcula a média de todos os limites possíveis. No entanto, se o objetivo da classificação apenas precisar classificar entre duas classes possíveis e não exigir a probabilidade de predição de cada classe pelo modelo, é mais apropriado confiar no F-score usando um limite específico.
fonte