Como escolher entre a pontuação da ROC AUC e F1?


26

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!

Respostas:


14

Nenhuma das medidas listadas aqui são regras de pontuação de precisão adequadas, ou seja, regras que são otimizadas por um modelo correto. Considere a pontuação de Brier e medidas baseadas na probabilidade de log, como pseudo . O índice (AUROC; probabilidade de concordância) não é adequado, mas é bom para descrever um único modelo. Não é sensível o suficiente para escolher modelos ou comparar até dois modelos.R2c


Obrigado pela sua resposta Frank! Preciso de mais esclarecimentos, por favor. Se pudéssemos escolher apenas entre as pontuações ROC AUC e F1, qual você escolheria e por quê? Quais são os prós e os contras de ambos?
George Liu

2
Se você só pode escolher entre index e F1, não está argumentando com força suficiente. O padrão-ouro é a probabilidade de log, probabilidade de log penalizada ou equivalente bayesiano (por exemplo, DIC). Ao lado disso está a pontuação Brier. c
Frank # # # # Harrell Harrell

2
Veja citeulike.org/user/harrelfe/article/14321176 ; Eu mostrei isso com minhas próprias simulações. Se o desequilíbrio não for devido à superamostragem / subamostragem, você poderá usar qualquer regra de pontuação adequada, independentemente do desequilíbrio.
Frank Harrell

11
@FrankHarrell: o link está morto, você pode verificar novamente?
SiXUlm

13

Fórmula de cálculo:

  • TP de precisão / (TP + FP)
  • Lembre-se: TP / (TP + FN)
  • Escore F1: 2 / (1 / P + 1 / R)
  • ROC / AUC: TPR = TP / (TP + FN), FPR = FP / (FP + TN)

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.


7

As respostas acima são boas.

SkeW=negumatEuveexumampeuesposEutEuveexumampeues

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,

TP=155,   FN=182
FP=84049, TN=34088

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.

Fβ=(1 1+β2)precEusEuonrecumaeueu(β2precEusEuon)+recumaeueu

β

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.


Se você se importa com o desempenho de um método, é melhor usar o ROC para mostrar seu desempenho de classificação. Mas se você se importa mais com a previsão real de positivo verdadeiro, o escore F1 é bem-vindo no setor.
Xiaorui Zhu 22/03

2
Em um ambiente real de negócios, os custos de falsos positivos e os custos de falsos negativos podem ser estimados. Então a classificação final deve basear-se em um modelo probabilístico e em um limite de classificação escolhido para minimizar o custo de classificações falsas. Eu realmente não acho precisão, ou a pontuação F tem muitas aplicações reais para o cientista de dados disciplinado.
Matthew Drury

Sim, concordo com o procedimento do método de decisão que minimiza o custo da classificação e modelo de probabilidade de corte falso. E, em alguns casos, o custo assimétrico pode ser aplicado ao FP e FN. Mas o ponto de precisão e a pontuação F é verificar o desempenho geral de um modelo ou comparar o desempenho entre vários modelos. De fato, com os dados em mãos como cientista de dados, a minimização de custos pode ser sempre possível. Mas estou curioso para saber se os cientistas de dados precisam, na prática, da distribuição (ou variação) da solução do problema de decisão. Eu gostaria de saber se você poderia compartilhar algumas com me.Thx
Xiaorui Zhu

11
Pessoalmente, eu sempre avaliaria a qualidade do ajuste de um modelo com base nas probabilidades condicionais que ele prevê. Portanto, eu sempre comparava modelos usando uma regra de pontuação adequada, como perda de log, uso de bootstrapping para garantir que a melhoria não fosse ruído e talvez complementasse a AUC.
Matthew Drury

2
Eu não acho que isso seja verdade. A AUC foi criada especificamente para ser insensível ao desequilíbrio de classe. Fiz extensas simulações sobre isso e descobri que isso era verdade. Além disso, ao comparar modelos, eles devem ser construídos em conjuntos de dados amostrados da mesma população, tornando qualquer problema com o desequilíbrio de classe nulo.
Matthew Drury

4

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.


Sua definição de "desequilíbrio de dados" é tal que você quase sempre usaria a pontuação F1, então isso não ajuda muito. Talvez você possa expandir um pouco isso?
jbowman

Eu tinha perdido uma palavra muito importante lá ... desculpas. Editou minha resposta. Entre em contato se precisar de mais esclarecimentos.
balboa

1

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 .


1

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.