A seção anterior apresentou um conjunto de métricas de modelo, todas calculadas com um com valor único de limiar de classificação. Mas, se você quiser avaliar a qualidade do modelo em todos os limites possíveis, você precisa de ferramentas diferentes.
Curva de característica de operação do receptor (ROC, na sigla em inglês)
A curva ROC é uma representação visual do desempenho 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 pelo cálculo da taxa de verdadeiro positivo (TPR, na sigla em inglês) e a taxa de falsos positivos (FPR, na sigla em inglês) em todos os limiares possíveis (na prática, intervalos selecionados), e fazer um gráfico de TPR sobre FPR. Um modelo perfeito, que em algum limite tem um TPR de 1,0 e um FPR de 0,0, pode ser representada por um ponto (0, 1) se todos os outros limites forem ignorados ou pelo seguinte:
![Figura 1. Um gráfico de TPR (eixo y) em relação ao FPR (eixo X) mostrando os
desempenho de um modelo perfeito: uma linha de (0,1) a (1,1).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_1-0.png?hl=pt)
Área sob a curva (AUC)
A área sob a curva ROC (AUC) representa a probabilidade de que o modelo, se receber um exemplo positivo e negativo aleatoriamente, classificará positivo maior que negativo.
O modelo perfeito acima, que contém um quadrado com lados de comprimento 1, tem sob a curva (AUC) de 1,0. Isso significa que há 100% de probabilidade de que o modelo vai classificar corretamente um exemplo positivo escolhido aleatoriamente um exemplo negativo aleatoriamente escolhido. Em outras palavras, observar a disseminação pontos de dados abaixo, a AUC dá a probabilidade de o modelo colocar uma quadrado aleatório à direita de um círculo escolhido aleatoriamente, independente em que o limite é definido.
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 faz exatamente o mesmo que palpites aleatórios ou "cara ou coroa" tem uma ROC que é uma linha diagonal de (0,0) a (1,1). A AUC é 0,5, o que representa uma probabilidade de 50% de classificar corretamente um positivo aleatório e exemplo negativo.
No exemplo do classificador de spam, um classificador de spam com AUC de 0,5 atribui um e-mail de spam aleatório tem maior probabilidade de ser spam do que e-mails legítimos apenas metade do tempo.
![Figura 2. Um gráfico de TPR (eixo y) em relação ao FPR (eixo X) mostrando os
desempenho de um adivinhador aleatório de 50-50: uma linha diagonal de (0,0)
com (1,1).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-5.png?hl=pt)
(Opcional, avançado) Curva de precisão/recall.
A AUC e a ROC funcionam bem para comparar modelos quando o conjunto de dados é equilibrado entre as classes. Quando o conjunto de dados está desequilibrado, precisão-recall (PRCs) e a área sob essas curvas pode oferecer uma melhor e a visualização do desempenho do modelo. As curvas de precisão/recall são criadas plotando a precisão no eixo y e o recall no eixo x em todas limites.
![Exemplo de curva de precisão/recall com curva convexa decrescente de (0,1)
a (1,0)](https://developers.google.cn/static/machine-learning/crash-course/images/prauc.png?hl=pt)
AUC e ROC para escolher o modelo e o limite
A AUC é uma medida útil para comparar o desempenho de dois modelos diferentes, desde que o conjunto de dados esteja mais equilibrado. Consulte Curva de precisão/recall, acima, para conjuntos de dados desequilibrados.) O modelo com maior área abaixo a curva geralmente é a melhor.
![Figura 3.a. Gráfico ROC/AUC de um modelo com AUC=0,65.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-65.png?hl=pt)
![Figura 3.b. Gráfico ROC/AUC de um modelo com AUC=0,93.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-93.png?hl=pt)
Os pontos em uma curva ROC mais próximos de (0,1) representam o intervalo limites de melhor desempenho para determinado modelo. Conforme discutido nas Limites, Matriz de confusão e Escolha de métricas e compensações o limite escolhido depende da métrica mais importante para o caso de uso específico. Considere os pontos A, B e C no seguinte diagrama, cada um representando um limite:
![Figura 4. Uma curva ROC de AUC=0,84 mostrando três pontos na
convexa da curva mais próxima de (0,1) rotulada como A, B, C, na ordem.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_abc.png?hl=pt)
Se os falsos positivos (alarmes falsos) têm alto custo, pode fazer sentido escolha um limite que ofereça uma FPR menor, como o do ponto A, mesmo que a TPR é reduzido. Por outro lado, se os falsos positivos forem baratos e os falsos negativos (verdadeiros positivos ausentes) muito caro, o limite para o ponto C, que maximiza o TPR, pode ser preferível. Se os custos forem quase equivalentes, o ponto B pode oferecer o melhor equilíbrio entre TPR e FPR.
Esta é a curva ROC dos dados que vimos antes:
Exercício: testar seu conhecimento
![curva ROC que faz um arco para cima e depois para a direita de (0,0) para
(1,1). A AUC da curva é 0,77.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-77.png?hl=pt)
![curva ROC que é aproximadamente uma linha reta de (0,0) a
(1,1), com alguns zigue-zagues. A AUC da curva é 0,508.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-508.png?hl=pt)
![Curva ROC que faz zigue-zague para cima e para a direita de (0,0) para (1,1).
A AUC da curva é 0,623.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-623.png?hl=pt)
![curva ROC que faz um arco para a direita e depois para cima
(0,0) a (1,1). A AUC da curva é 0,31.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-31.png?hl=pt)
![curva ROC que faz um arco para a direita e depois para cima
(0,0) a (1,1). A AUC da curva é 0,32.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-32.png?hl=pt)
![curva ROC que é aproximadamente uma linha reta da
(0,0) a (1,1), com alguns zigue-zagues. A curva tem
AUC de 0,508.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-508.png?hl=pt)
![Curva ROC que é uma reta diagonal de
(0,0) a (1,1). A AUC da curva é 0,5.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-5.png?hl=pt)
![curva ROC composta por duas linhas perpendiculares: uma vertical
linha de (0,0) a (0,1) e uma linha horizontal de (0,1) a (1,1).
Essa curva tem uma AUC de 1,0.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_1-0.png?hl=pt)
(Opcional, avançado) Pergunta bônus
Imagine uma situação em que é melhor permitir que algum spam chegue ao do que enviar um e-mail importante para a empresa para a caixa de spam. Você treinou um classificador de spam para a situação em que a classe positiva é spam e a classe negativa não é spam. Qual dos seguintes pontos na curva ROC para seu classificador é preferível?
![Uma curva ROC de AUC=0,84 mostrando três pontos na parte convexa de
da curva que estão próximas de (0,1). O ponto A está em aproximadamente
(0,25, 0,75). O ponto B está em aproximadamente (0,30, 0,90) e é
o ponto que maximiza a TPR e a minimiza. Ponto
C está em aproximadamente (0,4, 0,95).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_abc.png?hl=pt)