Classificação: ROC e AUC

A seção anterior apresentou um conjunto de métricas de modelo, todas calculadas em um único valor de limite de classificação. No entanto, se você quiser avaliar a qualidade de um modelo em todos os limites possíveis, vai precisar de ferramentas diferentes.

Curva de característica de operação do receptor (ROC)

A curva ROC é uma representação visual da performance do modelo em todos os limites. A versão longa do nome, característica de operação do receptor, é uma retenção da detecção de radar da Segunda Guerra Mundial.

A curva ROC é desenhada calculando a taxa de verdadeiros positivos (TPR, na sigla em inglês) e a taxa de falsos positivos (FPR, na sigla em inglês) em todos os limites possíveis (na prática, em intervalos selecionados) e, em seguida, representando a TPR em relação à FPR. Um modelo perfeito, que em algum limite tem um TPR de 1,0 e um FPR de 0,0, pode ser representado por um ponto em (0, 1) se todos os outros limites forem ignorados ou pelo seguinte:

Figura 1. Um gráfico de TPR (eixo y) em relação a FPR (eixo x) mostrando a
            performance de um modelo perfeito: uma linha de (0,1) a (1,1).
Figura 1. ROC e AUC de um modelo hipotético perfeito.

Área sob a curva (AUC)

A área sob a curva ROC (AUC) representa a probabilidade de o modelo, se receber um exemplo positivo e negativo escolhido aleatoriamente, classificar o positivo como melhor do que o negativo.

O modelo perfeito acima, que contém um quadrado com lados de comprimento 1, tem uma área sob a curva (AUC) de 1,0. Isso significa que há uma probabilidade de 100% de que o modelo classifique corretamente um exemplo positivo escolhido aleatoriamente com uma classificação mais alta do que um exemplo negativo escolhido aleatoriamente. Em outras palavras, analisando a distribuição dos pontos de dados abaixo, o AUC indica a probabilidade de o modelo colocar um quadrado escolhido aleatoriamente à direita de um círculo escolhido aleatoriamente, independente de onde o limite é definido.

Linha de dados do widget sem controle deslizante

Em termos mais concretos, um classificador de spam com AUC de 1,0 sempre atribui a um e-mail de spam aleatório uma probabilidade maior de ser spam do que um e-mail legítimo aleatório. A classificação real de cada e-mail depende do limite escolhido.

Para um classificador binário, um modelo que funciona exatamente como palpites aleatórios ou cara ou coroa tem um ROC que é uma linha diagonal de (0,0) a (1,1). O AUC é 0,5, representando uma probabilidade de 50% de classificar corretamente um exemplo positivo e negativo aleatório.

No exemplo do classificador de spam, um classificador de spam com AUC de 0,5 atribui a um e-mail de spam aleatório uma probabilidade maior de ser spam do que um e-mail legítimo aleatório apenas metade do tempo.

Figura 2. Um gráfico de TPR (eixo y) em relação ao FPR (eixo x) mostrando a
            performance de um palpite aleatório de 50-50: uma linha diagonal de (0,0)
            a (1,1).
Figura 2. ROC e AUC de palpites completamente aleatórios.

(Opcional, avançado) Curva de precisão/recall

A AUC e a ROC funcionam bem para comparar modelos quando o conjunto de dados está aproximadamente equilibrado entre as classes. Quando o conjunto de dados está desequilibrado, as curvas de precisão-recall (PRCs, na sigla em inglês) e a área abaixo dessas curvas podem oferecer uma visualização comparativa melhor da performance do modelo. As curvas de precisão/recall são criadas ao representar a precisão no eixo y e o recall no eixo x em todos os limites.

Exemplo de curva de precisão/recall com curva convexa para baixo de (0,1)
            a (1,0)

AUC e ROC para escolher o modelo e o limite

A AUC é uma medida útil para comparar a performance de dois modelos diferentes, desde que o conjunto de dados esteja aproximadamente equilibrado. O modelo com maior área sob a curva geralmente é o melhor.

Figura 3.a. Gráfico ROC/AUC de um modelo com AUC=0,65. Figura 3.b. Gráfico ROC/AUC de um modelo com AUC=0,93.
Figura 3. ROC e AUC de dois modelos hipotéticos. A curva à direita, com uma AUC maior, representa o melhor dos dois modelos.

Os pontos na curva ROC mais próximos de (0,1) representam um intervalo dos limites de melhor desempenho para o modelo. Conforme discutido nas seções Limites, Matriz de confusão e Escolha de métrica e vantagens e desvantagens, o limite escolhido depende de qual métrica é mais importante para o caso de uso específico. Considere os pontos A, B e C no diagrama a seguir, cada um representando um limite:

Figura 4. Uma curva ROC de AUC=0,84 mostrando três pontos na parte convexa da curva mais próxima de (0, 1) com os rótulos A, B e C.
Figura 4. Três pontos rotulados que representam limites.

Se os falsos positivos (alarmes falsos) forem muito caros, pode ser sensato escolher um limite que ofereça uma FPR menor, como o do ponto A, mesmo que a TPR seja reduzida. Por outro lado, se os falsos positivos forem baratos e os falsos negativos (falhas de verdadeiros positivos) forem muito caros, o limite para o ponto C, que maximiza a TPR, pode ser preferível. Se os custos forem aproximadamente equivalentes, o ponto B pode oferecer o melhor equilíbrio entre TPR e FPR.

Confira a curva ROC dos dados que vimos anteriormente:

Exercício: testar seu conhecimento

Na prática, as curvas ROC são muito menos regulares do que as ilustrações acima. Qual dos modelos a seguir, representados pela curva ROC e pela AUC, tem a melhor performance?
Curva ROC que forma um arco para cima e depois para a direita de (0,0) a
           (1,1). A curva tem uma AUC de 0,77.
Esse modelo tem a AUC mais alta, o que corresponde à melhor performance.
Curva ROC que é aproximadamente uma linha reta de (0,0) a
           (1,1), com alguns ziguezagues. A curva tem uma AUC de 0,508.
Curva ROC que ziguezagueia para cima e para a direita de (0,0) a (1,1).
           A curva tem uma AUC de 0,623.
Curva ROC que forma um arco para a direita e depois para cima de
                (0,0) a (1,1). A curva tem um AUC de 0,31.
Qual dos modelos a seguir tem um desempenho pior do que o esperado?
Curva ROC que faz um arco para a direita e depois para cima de
                (0,0) a (1,1). A curva tem uma AUC de 0,32.
Esse modelo tem uma AUC menor que 0,5, o que significa que ele tem um desempenho pior do que o esperado.
Curva ROC que é aproximadamente uma linha reta de
                    (0,0) a (1,1), com alguns ziguezagues. A curva tem uma AUC de 0,508.
Esse modelo tem um desempenho um pouco melhor do que o acaso.
Curva ROC que é uma linha reta diagonal de
                (0,0) a (1,1). A curva tem uma AUC de 0,5.
Esse modelo tem o mesmo desempenho da chance.
Curva ROC composta por duas linhas perpendiculares: uma vertical
      de (0,0) a (0,1) e uma horizontal de (0,1) a (1,1).
      Essa curva tem um AUC de 1,0.
Esse é um classificador perfeito hipotético.

(Opcional, avançado) Pergunta bônus

Quais das mudanças a seguir podem ser feitas no modelo pior do que a chance na pergunta anterior para que ele tenha um desempenho melhor do que a chance?
Invertidas, as previsões de 1 se tornam 0, e as previsões de 0 se tornam 1.
Se um classificador binário colocar exemplos nas classes erradas com mais frequência do que o esperado, mudar o rótulo da classe vai melhorar as previsões imediatamente sem precisar treinar o modelo novamente.
Faça com que ele sempre preveja a classe negativa.
Isso pode ou não melhorar a performance acima da média. Além disso, como discutido na seção Acurácia, esse não é um modelo útil.
Faça com que ele sempre preveja a classe positiva.
Isso pode ou não melhorar a performance acima da média. Além disso, como discutido na seção Acurácia, esse não é um modelo útil.

Imagine uma situação em que é melhor permitir que algum spam chegue à caixa de entrada do que enviar um e-mail essencial para a pasta de spam. Você treinou um classificador de spam para essa situação em que a classe positiva é spam e a classe negativa é não spam. Qual dos pontos a seguir na curva ROC do seu classificador é preferível?

Uma curva ROC de AUC=0,84 mostrando três pontos na parte convexa da
       curva próximos de (0,1). O ponto A está aproximadamente
       (0,25; 0,75). O ponto B está em aproximadamente (0,30, 0,90) e é
       o ponto que maximiza a TPR e minimiza a FPR. O ponto
       C está em aproximadamente (0,4, 0,95).
Ponto A
Nesse caso de uso, é melhor minimizar os falsos positivos, mesmo que os verdadeiros positivos também diminuam.
Ponto B
Esse limite equilibra os verdadeiros e falsos positivos.
Ponto C
Esse limite maximiza os positivos verdadeiros (sinaliza mais spam) ao custo de mais falsos positivos (mais e-mails legítimos sinalizados como spam).