Machine Learning · Insper

Métricas de Classificação

Abordagem avançada

O que quebra essas métricas e qual delas escolher

O caminho desta parte

  1. Pesar os errosF-beta: o β diz quanto a revocação importa mais
  2. Quando os positivos são rarosa prevalência move a precisão; a acurácia balanceada e o MCC (coeficiente de correlação de Matthews) resistem
  3. Muitas classesum contra o resto, depois a média macro, ponderada ou micro
  4. Avaliar a probabilidadelog loss, escore de Brier, calibração
Cada etapa responde a uma pergunta: e se um erro custa mais que o outro? → quais métricas resistem a uma classe rara? → como muitas classes viram um número só? → a probabilidade em si está certa?
Etapa 1 · E se um erro custa mais que o outro?

F-beta: tornando a troca explícita

\[ F_\beta = \frac{(1 + \beta^2)\,P \cdot R}{\beta^2 P + R} = \frac{(1 + \beta^2)\,TP}{(1 + \beta^2)\,TP + \beta^2\,FN + FP} \]
A forma com contagens mostra o mecanismo: um escape pesa \(\beta^2\) vezes um alarme falso.
significadonos 20 pacientes
\(F_{0,5}\)um alarme falso pesa 4× um escape0,761
\(F_1\)os dois pesam igual0,737
\(F_2\)um escape pesa 4× um alarme falso0,714

\(P\) = precisão, \(R\) = revocação; TP, FP, FN e TN = verdadeiros positivos, falsos positivos, falsos negativos e verdadeiros negativos. Use F2 em rastreamento e F0,5 quando alarmes são caros. Escolher \(\beta\) é uma afirmação sobre custos.

O \(\beta\) desloca o ponto de operação

F0,5, F1 e F2 dos 20 pacientes em função do limiar, com os pacientes numa faixa embaixo; o melhor limiar é 0,45 para o F0,5, 0,35 para o F1 e 0,20 para o F2

Como ler

  • eixo x: o limiar \(t\); a faixa de baixo mostra os 20 pacientes nos seus escores;
  • cada degrau: o limiar cruza um paciente. Um doente (●) sobe a revocação; um saudável (○) derruba a precisão;
  • eixo y: o valor de F0,5, F1 e F2 naquele limiar;
  • ponto: o limiar que maximiza cada um.
Quanto maior o \(\beta\), mais a revocação pesa e mais baixo fica o melhor limiar: 0,45 (F0,5) → 0,35 (F1) → 0,20 (F2). A métrica que você maximiza escolhe o limiar.
Etapa 2 · Quais métricas resistem a uma classe rara?

A prevalência muda a precisão

O mesmo modelo (sensibilidade 0,70, especificidade 0,80) em 10.000 pessoas; VPN = valor preditivo negativo:

prevalênciaTPFPprecisãoVPNacurácia
50%350010000,7780,7270,750
10%70018000,2800,9600,790
1%7019800,0340,9960,799
Com 1%: de cada 30 pessoas marcadas, 29 estão saudáveis — com exatamente o mesmo modelo que tinha precisão 0,778 no consultório do especialista.

Por que algumas métricas não se mexem

Precisão, VPN, acurácia, revocação e especificidade em função da prevalência
  • Revocação usa só a linha dos doentes e especificidade só a dos saudáveis: são proporções dentro de uma classe, então não dependem do tamanho das classes — as retas horizontais.
  • Precisão, VPN e acurácia misturam as duas linhas e por isso se movem.
Ao reportar precisão, reporte a prevalência dos dados em que ela foi medida. O F1 herda a mesma dependência.

Métricas que resistem ao desbalanceamento

\[ \text{acurácia balanceada} = \frac{\text{revocação} + \text{especificidade}}{2} \qquad \text{MCC} = \frac{TP \cdot TN - FP \cdot FN}{\sqrt{(TP{+}FP)(TP{+}FN)(TN{+}FP)(TN{+}FN)}} \]
acuráciabalanceadaMCCkappa de Cohen
20 pacientes0,7500,7500,5030,500
modelo preguiçoso0,9850,7450,4010,393
sempre "saudável"0,9900,5000,0000,000
A acurácia põe a resposta constante em primeiro lugar. As outras três a desmascaram: o MCC (coeficiente de correlação de Matthews) usa as quatro células e só fica alto se o modelo for bem em todas.
Etapa 3 · Como muitas classes viram um número só?

Multiclasse: a matriz cresce

verdade \ prev.baixomédioalto
baixo11091
médio8466
alto2810

200 pacientes triados em risco baixo, médio e alto.

Precisão e revocação são calculadas por classe, um contra o resto. Para alto:

  • TP = 10 (a diagonal)
  • FN = 2 + 8 = 10 (o resto da linha)
  • FP = 1 + 6 = 7 (o resto da coluna)
Metade dos pacientes de alto risco — justamente aqueles para quem a triagem existe — vai para um nível mais baixo.

Três maneiras de virar um número só

classeF1suporte
baixo0,917120
médio0,74860
alto0,54120
  • macro = 0,735 · cada classe conta igual
  • ponderada = 0,828 · pesa pelo suporte
  • micro = 0,830 = acurácia
A matriz de triagem 3x3 e o F1 por classe com as médias macro e ponderada
Quando a classe rara é a importante, reporte o macro-F1 e a revocação por classe: as médias ponderada e micro seguem as classes grandes.
Etapa 4 · A probabilidade em si está certa?

Avaliando a probabilidade, não o rótulo

\[ \text{log loss} = -\frac{1}{n}\sum_i \big[ y_i \ln p_i + (1 - y_i)\ln(1 - p_i) \big] \qquad \text{Brier} = \frac{1}{n}\sum_i (p_i - y_i)^2 \]
pacienteescoredoentelog lossBrier
P010,9510,0510,0025
P050,7501,3860,5625
P150,2011,6090,64
Nas duas, menor é melhor. Uma resposta certa e confiante quase não custa; uma errada e confiante custa muito — e a log loss pune bem mais que o Brier, porque \(-\ln p\) cresce sem limite.

Mesmos rótulos, probabilidades piores

Um segundo modelo toma as mesmas decisões em 0,5, mas declara toda probabilidade como 0,99 ou 0,01:

modeloacuráciaprecisãoF1log lossBrier
original0,750,7780,7370,4630,157
ousado (0,99 / 0,01)0,750,7780,7371,1590,245
Mesma matriz de confusão, logo todas as métricas de rótulo são cegas à diferença. Os cinco erros, agora declarados com 99% de confiança, custam \(-\ln 0{,}01 = 4{,}6\) cada.

A pergunta vizinha é a calibração: entre os pacientes a quem o modelo diz "70%", cerca de 70% estão de fato doentes?

Como escolher uma métrica

cenárioo erro caroacompanhe
rastreamento de câncerFN: um tumor não detectadorevocação, F2
exame confirmatório antes de cirurgiaFP: tratar uma pessoa saudávelprecisão, especificidade
filtro de spamFP: um e-mail de verdade perdidoprecisão, F0,5
descartar doença e mandar para casaFN: um doente liberadoVPN, revocação
benchmark binário desbalanceadoqualquerMCC ou acurácia balanceada
multiclasse com classe rara importantefalhar na classe raramacro-F1 e revocação por classe
probabilidades usadas como númerosprobabilidades erradaslog loss, Brier, calibração
Não existe a melhor métrica, só a que corresponde ao custo dos erros do seu problema. Decida antes de treinar e registre a escolha.
Lab avançado · cerca de 30 min, em duplas

Probabilidades, limiar e multiclasse: passos 8 a 11

  • Mesmo notebook do Colab, a partir do passo 8. Sessão nova? Ambiente de execução → Executar anteriores.
  • Passo 8: a log loss derruba o k-NN (1,290, pior que a baseline); simulação: um k maior conserta as probabilidades?
  • Passo 9: o limiar na validação; simulação: o β escolhe o limiar.
  • Passos 10 e 11: o teste tocado uma vez e um relatório multiclasse.

Ritmo: passos 8 e 9 em 15 min; 10 e 11 em 10 min; discussão em 5 min.