Como posso calcular a AUC da curva ROC para a classificação?

8

Com base no TPR e no FPR, gero a curva ROC para o meu modelo de classificação binária. Eu não sei, como calcular o valor da AUC. Eu seria de grande ajuda para mim, se você puder me ajudar a calcular o valor da AUC.

Rejaul Karim
fonte
Obrigado pela sua resposta. Alguém pode me ajudar, explicando com um exemplo simples?
Rejaul Karim
Onde exatamente você está sendo incomodado?
Aditya

Respostas:

4

Bem-vindo à comunidade!

Como você sabe, a AUC é apenas a área sob a curva ROC. Portanto, a questão é mais sobre métodos numéricos, pois você tem um conjunto de pontos e gostaria de calcular a área abaixo dele.

Soma Riemanniana

Solução trivial. Simplesmente faça retângulos a partir dos pontos que você possui. A área de cada retângulo é simplesmente o produto das arestas. Então resumi-los! Você provavelmente não gosta, não é ?!

Método trapezoidal

Depois de Riemannian, o algoritmo mais simples e ingênuo para fazer isso. Você simplesmente tem um conjunto de pontos e apenas calcula a área trapezoidal entre cada par e resume-os como você vê na figura abaixo. Possui o erro máximo de computação, pois simplifica bastante o problema.

insira a descrição da imagem aqui

Método Simpson (1/3)

Muito melhor quando estamos falando de curvas! Vamos mantê-lo simples e direto ao ponto. Você pode modelar sua função em cada intervalo usando um quadrático (y=umax2+bx+c) e com 3 pontos de dados. Usando seus três pontos de dados, você pode calcularuma, b e c. Então a área sob curva não é tão difícil, mas temos uma solução melhor! Confie em mim ou não, o valor dessa integração é simplesmente

b-uma6(f(uma)+4×f(m)+f(b))

Onde (uma,f(uma)) e (b,f(b)) são pontos finais de intervalo e (m,f(m))é o ponto médio. Veja a imagem abaixo daqui para comparar esses métodos.

insira a descrição da imagem aqui

Métodos de Romberg

Os métodos Simpson e / ou trapézio podem ser aplicados recursivamente para obter um cálculo mais preciso. Chama-se método Romberg . A precisão desses métodos estava na duração do intervalo. Intervalos menores fornecem uma integração mais precisa. Romberg usa esse fato para se aproximar iterativamente de respostas mais precisas.

E, claro, toneladas de mais algoritmos para fazer isso.

PS: Você certamente tem bibliotecas e funções em diferentes idiomas para calcular isso para você. O Scipy oferece para Python, por exemplo .

Espero que ajude! Boa sorte!

Kasra Manshaei
fonte
Estou feliz que ajudou :)
Kasra Manshaei