A curva AUC-ROC no aprendizado de máquina é claramente explicada

Conteúdo

Curva AUC-ROC: O artista estrela!

Você criou seu modelo de aprendizado de máquina, então, que segue? Você deve avaliá-lo e validar o quão bom ele é. (ou ruim) isto é, e, em seguida, decidir se deve implementá-lo. É aí que entra a curva AUC-ROC..

O nome pode ser uma mordida, Mas só diz que estamos calculando o “Área sob a curva” (AUC) do “Operador de recurso do receptor” (ROC). Confuso? Sinto muito por você!! Eu estive no seu lugar. Mas não se preocupe., Veremos em detalhes o que esses termos significam e tudo será um pedaço de bolo!!

Meme-5912963

Por agora, basta saber que a curva AUC-ROC nos ajuda a visualizar o desempenho do nosso classificador de aprendizado de máquina. Embora só funcione para problemas de classificação binária, Veremos mais adiante como podemos estendê-lo para avaliar também problemas de classificação de múltiplas classes.

Também abordaremos temas como sensibilidade e especificidade., uma vez que estas são questões-chave por trás da curva AUC-ROC.

Sugiro a leitura do artigo sobre Matriz de confusão pois introduzirá alguns termos importantes que usaremos neste artigo.

Tabela de conteúdo

  • O que são sensibilidade e especificidade??
  • Probabilidade de previsões
  • O que é a curva AUC-ROC?
  • Como funciona a curva AUC-ROC??
  • AUC-ROC em Python
  • AUC-ROC para classificação multiclasse

O que são sensibilidade e especificidade??

Esta é a aparência de uma matriz de confusão:

básico-confusão-matriz-1987000

Da matriz de confusão, Podemos derivar algumas métricas importantes que não foram discutidas no artigo anterior.. Vamos falar sobre eles aqui.

Sensibilidade / Taxa de positividade verdadeira / Recuperação

sensibilidade-3599495

A sensibilidade nos diz qual proporção da classe positiva foi corretamente classificada.

Um exemplo simples seria determinar qual proporção de pessoas realmente doentes foi corretamente detectada pelo modelo..

Taxa de falsos negativos

FNR-3498913

A taxa de falsos negativos (FNR) nos diz qual proporção da classe positiva foi classificada incorretamente pelo classificador.

Um TPR mais alto e um FNR mais baixo são desejáveis, pois queremos classificar corretamente a classe positiva..

Especificidade / Taxa Negativa Verdadeira

Especificidade-8396579

A especificidade nos diz qual proporção da classe negativa foi corretamente classificada.

Tomando o mesmo exemplo de Sensibilidade, Especificidade significaria determinar a proporção de pessoas saudáveis que foram corretamente identificadas pelo modelo.

Taxa de falsos positivos

FPR-7258453

A FPR nos diz qual proporção da classe negativa foi classificada incorretamente pelo classificador.

Um TNR mais alto e um FPR mais baixo são desejáveis, pois queremos classificar corretamente a classe negativa.

Dessas métricas, Sensibilidade e Especificidade Eles são talvez os mais importantes e veremos mais adiante como eles são usados para construir uma métrica de avaliação.. Mas antes disso, Vamos entender por que a probabilidade de previsão é melhor do que prever a classe alvo diretamente.

Probabilidade de previsões

Um modelo de classificação de aprendizado de máquina pode ser usado para prever a classe real do ponto de dados diretamente ou prever sua probabilidade de pertencer a classes diferentes. Este último nos dá mais controle sobre o resultado.. Podemos determinar nosso próprio limiar para interpretar o resultado do classificador. Isso às vezes é mais prudente do que simplesmente construir um modelo totalmente novo!!

A definição de limites diferentes para classificar a classe positiva para pontos de dados inadvertidamente alterará a sensibilidade e a especificidade do modelo. E um desses limiares provavelmente dará um resultado melhor do que os outros., dependendo se o nosso objetivo é reduzir o número de falsos negativos ou falsos positivos.

Dê uma olhada na seguinte tabela:

Data-1-2029385

As métricas mudam com a alteração dos valores de limite. Podemos gerar diferentes matrizes de confusão e comparar as diferentes métricas que discutimos na seção anterior.. Mas isso não seria sábio.. Em vez de, O que podemos fazer é gerar um gráfico entre algumas dessas métricas para que possamos visualizar facilmente qual limiar está nos dando um resultado melhor..

A curva AUC-ROC resolve esse problema!!

O que é a curva AUC-ROC?

a Característica do operador do receptor (ROC) A curva é uma métrica de avaliação para problemas de classificação binária. É uma curva de probabilidade que plota o TPR contra FPR em vários limiares e essencialmente Separe o 'sinal'’ do 'ruído'’. a Área sob a curva (AUC) é o medir de la capacidad de un clasificador para distinguir entre clases y se utiliza como resumen de la curva ROC.

Quanto maior a AUC, Quanto melhor for o desempenho do modelo, distinguir entre classes positivas e negativas.

AUC1-2945329

Quando AUC = 1, Então o classificador pode distinguir perfeitamente entre todos os pontos de classe positivos e negativos corretamente. Porém, se a AUC tivesse sido 0, então o classificador estaria prevendo todos os negativos como positivos e todos os positivos como negativos..

AUC3-6074645

Quando 0.5 <AUC <1, Há uma alta probabilidade de que o classificador possa distinguir valores de classe positivos de valores de classe negativos. Isso ocorre porque o classificador pode detectar mais números de verdadeiros positivos e verdadeiros negativos do que falsos negativos e falsos positivos..

AUC2-6761171

Quando AUC = 0.5, então o classificador não pode distinguir entre pontos de classe positivos e negativos. Isso significa que o classificador prevê uma classe aleatória ou uma classe constante para todos os pontos de dados.

Por tanto, quanto maior o valor de AUC de um classificador, Quanto melhor sua capacidade de distinguir entre classes positivas e negativas..

Como funciona a curva AUC-ROC??

Em uma curva ROC, Um valor mais alto do eixo x indica um número maior de falsos positivos do que de verdadeiros negativos. Enquanto um valor mais alto no eixo Y indica um número maior de verdadeiros positivos do que falsos negativos. Portanto, A escolha do limiar depende da capacidade de equilíbrio entre falsos positivos e falsos negativos.

Vamos nos aprofundar um pouco mais e entender como seria nossa curva ROC para diferentes valores de limiar e como a especificidade e a sensibilidade variariam..

AUC-ROC-Curva-2971055

Podemos tentar entender esse gráfico gerando uma matriz de confusão para cada ponto correspondente a um limiar e falar sobre o desempenho do nosso classificador.:

matriz de confusão-4673275

O ponto A é onde a sensibilidade é maior e a especificidade a menor. Isso significa que todos os pontos de classe positivos são classificados corretamente e todos os pontos de classe negativos são classificados incorretamente.

De fato, Qualquer ponto na linha azul corresponde a uma situação em que a taxa de verdadeiros positivos é igual à taxa de falsos positivos..

Todos os pontos acima dessa linha correspondem à situação em que a proporção de pontos classificados corretamente pertencentes à classe Positiva é maior do que a proporção de pontos classificados incorretamente pertencentes à classe Negativa.

confusion-arraysb-8100498

Embora o ponto B tenha a mesma sensibilidade que o ponto A, tem maior especificidade. O que significa que o número de pontos de classe incorretamente negativos é menor em comparação com o limite anterior. Isso indica que esse limite é melhor do que o anterior..

confusion-arrayscd-1132411

Entre os pontos C e D, sensibilidade no ponto C é maior do que no ponto D para a mesma especificidade. Isso significa que, para o mesmo número de pontos de classe negativa classificados incorretamente, O classificador previu maior número de pontos positivos. Por tanto, o limiar no ponto C é melhor do que no ponto D.

Agora, dependendo de quantos pontos classificados incorretamente queremos tolerar para o nosso classificador, escolheríamos entre o ponto B ou C para prever se você pode me vencer em PUBG ou não.

“Falsas esperanças são mais perigosas do que medos”. – JRR Tolkein

confusão-matriz-9204135

O ponto E é onde a especificidade se torna mais alta. O que significa que não há falsos positivos classificados pelo modelo. O modelo pode classificar corretamente todos os pontos negativos da classe!! Nós escolheríamos este ponto se nosso problema fosse dar recomendações de músicas perfeitas para nossos usuários..

Seguindo essa lógica, Você consegue adivinhar onde estaria o ponto correspondente a um classificador perfeito no gráfico??

sim! Estaria no canto superior esquerdo do gráfico ROC correspondente à coordenada (0, 1) No plano cartesiano. É aqui que tanto a Sensibilidade quanto a Especificidade seriam as mais altas e o classificador classificaria corretamente todos os pontos da classe Positivo e Negativo..

Entendendo a curva AUC-ROC em Python

Agora, Podemos testar manualmente a sensibilidade e a especificidade para cada limiar ou deixar que o SkLearn faça o trabalho por nós. Vamos definitivamente com o mais recente!

Vamos criar nossos dados arbitrários usando o método sklearn make_classification:

Vou testar o desempenho de dois classificadores neste conjunto de dados:

Sklearn tem um método muito poderoso roc_curve () que calcula o ROC para o seu classificador em questão de segundos. Retorna valores de limite, TPR e FPR:

O escore AUC pode ser calculado usando o método roc_auc_score () por SkLearn:

0.9761029411764707 0.9233769727403157

Experimente este código na janela de codificação ao vivo abaixo:

Também podemos plotar as curvas ROC para os dois algoritmos usando matplotlib:

ROC-4785452

Fica evidente no gráfico que a AUC da curva ROC de regressão logística é maior que a da curva ROC de KNN.. Portanto, Podemos dizer que a regressão logística fez um melhor trabalho na classificação da classe positiva no conjunto de dados..

AUC-ROC para classificação multiclasse

Como eu disse antes, a curva AUC-ROC é apenas para problemas de classificação binária. Mas podemos estendê-lo para problemas de classificação multiclasse usando a técnica One Against All..

Então, Se tivermos três turmas 0, 1 e 2, o ROC para a classe 0 será gerado por classificação 0 contra não 0, quer dizer, 1 e 2. O ROC para a sala de aula 1 será gerado por classificação 1 contra não 1, e em breve.

A curva ROC para modelos de classificação de classes múltiplas pode ser determinada da seguinte forma:

Multiclasse-ROC-4690120

Notas finais

Espero que você tenha achado este artigo útil para entender o quão poderosa é a métrica da curva AUC-ROC para medir o desempenho de um classificador. Você vai usá-lo muito na indústria e até mesmo em ciência de dados ou hackathons de aprendizado de máquina. Melhor se familiarizar com isso!

Indo mais longe, Eu recomendaria os seguintes cursos que serão úteis no desenvolvimento de sua perspicácia em ciência de dados:

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.