Compare e otimize curvas ROC

Concluído

As curvas ROC (receiver operator characteristic) permitem-nos comparar modelos entre si e ajustar o nosso modelo selecionado. Vamos discutir como e por que isso é feito.

Ajustando um modelo

O uso mais óbvio para uma curva ROC é escolher um limiar de decisão que dê o melhor desempenho. Lembre-se que nossos modelos nos fornecem probabilidades, como 65% de chance de a amostra ser um caminhante. O limiar de decisão é o ponto acima do qual uma amostra é atribuída verdadeira (caminhante) ou abaixo do qual é atribuída false (árvore). Se o nosso limiar de decisão fosse de 50%, então 65% seriam atribuídos a "verdadeiro" (caminhante). Se nosso limiar de decisão fosse de 70%, no entanto, uma probabilidade de 65% seria muito pequena e seria atribuída a "falso" (árvore).

Vimos no exercício anterior que, quando construímos uma curva ROC, estamos apenas mudando o limiar de decisão e avaliando como o modelo funciona. Quando o fazemos, podemos encontrar o limiar que dá os melhores resultados.

Normalmente, não há um único limiar que dê a melhor taxa de falsos positivos (TPR) e a menor taxa de falsos positivos (FPR). Isso significa que o limite ideal depende do que você está tentando alcançar. Por exemplo, no nosso cenário, é muito importante ter uma alta taxa de positividade verdadeira, porque se um caminhante não for identificado e ocorrer uma avalanche, a equipe não saberá resgatá-lo. Há uma compensação, porém: se a taxa de falsos positivos for muito alta, a equipe de resgate pode ser enviada repetidamente para resgatar pessoas que simplesmente não existem. Em outras situações, a taxa de falsos positivos é considerada mais importante. Por exemplo, a ciência tem uma baixa tolerância a resultados falso-positivos. Se a taxa de falsos positivos dos experimentos científicos fosse maior, haveria uma enxurrada interminável de afirmações contraditórias, e seria impossível entender o que é real.

Comparação de modelos com AUC

Você pode usar curvas ROC para comparar modelos entre si, assim como pode fazer com funções de custo. Uma curva ROC para um modelo mostra como ele funcionará para uma variedade de limiares de decisão. No final das contas, o mais importante em um modelo é como ele se comportará no mundo real, onde há apenas um limite de decisão. Por que, então, gostaríamos de comparar modelos usando limites que nunca usaremos? Há duas respostas para isso.

Em primeiro lugar, comparar curvas ROC de maneiras específicas é como realizar um teste estatístico que nos diz não apenas que um modelo se saiu melhor nesse conjunto de testes específico, mas se é provável que continue a ter um desempenho melhor no futuro. Isso está fora do escopo deste material de aprendizagem, mas vale a pena ter em mente.

Em segundo lugar, a curva ROC mostra, até certo ponto, o quão dependente o modelo é de ter o limiar perfeito. Por exemplo, se o nosso modelo só funciona bem quando temos um limiar de decisão de 0,9, mas terrivelmente acima ou abaixo desse valor, não é um bom design. Provavelmente preferiríamos trabalhar com um modelo que funcionasse razoavelmente bem para vários limites, sabendo que, se os dados do mundo real com os quais nos deparamos forem ligeiramente diferentes do nosso conjunto de testes, o desempenho do nosso modelo não necessariamente entrará em colapso.

Como comparar ROCs?

A maneira mais fácil de comparar ROCs numericamente é usando a área sob a curva (AUC). Literalmente, esta é a área do gráfico que está abaixo da curva. Por exemplo, o nosso modelo perfeito do último exercício tem uma AUC de 1:

Diagrama mostrando um gráfico de curva característica do operador recetor usando a área sob a curva.

Enquanto o nosso modelo que não fez melhor do que o acaso tem uma área de cerca de 0,5:

Diagrama mostrando um gráfico de curva característico do operador recetor com área sob a curva em um ângulo agudo.

Quanto mais perfeito for um modelo, maior se torna esta área. Se temos um modelo com uma AUC grande, sabemos que funciona bem para uma variedade de limiares e, portanto, provavelmente tem uma boa arquitetura e foi bem treinado. Por outro lado, um modelo com uma AUC pequena (mais próxima de 0,5) não está a funcionar bem.