Área sob a aproximação da curva ROC

Sep 09 2020

Eu queria calcular a área sob a curva ROC para um modelo de regressão logística no contexto da classificação binária. Para isso, calculei, para uma lista de limiares, digamos 0,1 0,2 ... 0,9, o TPR e o FPR. Eu tenho assim

 (TPR_threshold1, ... TPR_thresholdN)
 (FPR_threshold1, ... FPR_thresholdN)

Posso apenas fazer

TPR_threshold1*FPR_threshold1 + ... + TPR_thresholdN*FPR_thresholdN 

para calcular a área sob a curva roc ou preciso de alguma modelagem matemática mais elaborada?

Muito obrigado!

Respostas

1 SeanOwen Sep 08 2020 at 23:58

Os limites não importam; o que importa são os valores (FPR, TRP) nesses limiares, pois são pontos da curva. Classifique-os por FPR crescente. Para que isso funcione, você deve incluir os pontos (0,0) e (1,1) em sua lista, correspondendo aos limiares 1 e 0.

Você pode usar uma aproximação trapezoidal, pois cada par sucessivo de pontos define um trapézio de área sob a curva. Você só vai somar as áreas.

Vamos pegar dois pontos sucessivos (FPR1, TPR1) e (FPR2, TPR2). A área é (FPR2 - FPR1) * (TPR1 + TPR2) / 2. Basta somar isso sobre todos os pares sucessivos de pontos.

Obviamente, a maioria das bibliotecas pode calcular isso para você a partir dessa entrada, como o scikit-learn.