Desmistificando a matriz de confusão no aprendizado de máquina [surpreendente]

Publicados: 2020-12-07

Machine Learning é um termo abrangente sob o qual acumula processamento de dados, derivando insights significativos dos dados e modelagem de dados. Após ser feito com a modelagem de dados, o modelo precisa ser medido para sua avaliação de desempenho, e outros parâmetros baseados no setor e uma das métricas mais comuns é a Matriz de Confusão.

Índice

O que é a Matriz de Confusão e por que ela é usada?

É uma métrica de desempenho utilizada em problemas de classificação onde as classes de saída podem ser duas ou mais e esta matriz representa todas as combinações de valores previstos por um modelo com valores reais associados a essa entrada. É chamado de 'matriz de confusão' porque, seguindo as definições, parece fácil, mas à medida que avançamos para derivar parâmetros mais valiosos, surge a confusão sobre qual parâmetro é mais adequado em um determinado local.

É usado em locais onde o problema de classificação é altamente desequilibrado e uma classe domina sobre outras classes. Em tais cenários, você pode se surpreender ao ver a precisão do modelo chegando a 99%, mas, na realidade, o modelo é altamente tendencioso para a classe dominante. Há muito pouca possibilidade de você obter previsões para as classes minoritárias. Portanto, para testar um conjunto de dados tão desequilibrado, consideramos a matriz de confusão.

Estrutura da Matriz de Confusão

O tamanho da matriz é diretamente proporcional ao número de classes de saída. É uma matriz quadrada onde assumimos os cabeçalhos das colunas como valores reais e os cabeçalhos das linhas como previsões do modelo. Os valores que são verdadeiros e verdadeiros previstos pelo modelo são Verdadeiros Positivos (TP) , as previsões corretas de valores negativos são Verdadeiros Negativos (TN) , os valores que foram negativos, mas previstos como verdadeiros são falsos positivos (FP) e valores positivos previstos como negativos são Falsos Negativos (FN) . Dê uma olhada nesta imagem:

Leia: Tipos de algoritmo de classificação em aprendizado de máquina

O que podemos aprender com isso?

Uma pergunta válida surge que o que podemos fazer com esta matriz. Existem algumas terminologias importantes baseadas nisso:

  1. Precisão: É a porção de valores que são identificados pelo modelo como corretos e relevantes para a solução da declaração do problema. Também podemos citar isso como valores, que são uma parcela do total de resultados positivos dados pelo modelo e são positivos. Portanto, podemos dar sua fórmula como TP/ (TP + FP).
  2. Recall: É a porção de valores que são corretamente identificados como positivos pelo modelo. Também é denominado como True Positive Rate ou Sensibilidade. Sua fórmula é TP/ (TP+FN).
  3. F-1 Score: É a média harmônica de Precision and Recall. Isso significa que, se compararmos dois modelos, essa métrica suprimirá os valores extremos e considerará falsos positivos e falsos negativos ao mesmo tempo. Pode ser citado como 2*Precision*Recall/ (Precision+Recall).
  4. Exatidão: É a porção de valores que são identificados corretamente independentemente de serem positivos ou negativos. Isso significa que todos os verdadeiros positivos e verdadeiros negativos estão incluídos nisso. A fórmula para isso é (TP+TN)/ (TP+TN+FP+FN).

De todos os termos, precisão e revocação são os mais usados. Sua compensação é uma medida útil do sucesso de uma previsão. O modelo desejado deve ter alta precisão e alto recall, mas isso ocorre apenas em dados perfeitamente separáveis. Em casos de uso práticos, os dados são altamente desorganizados e desequilibrados.

Como criar código para Confusion Matrix em Python?

A biblioteca sklearn fornece uma variedade de funcionalidades para realizar todas as tarefas de aprendizado de máquina com a máxima precisão e quase tudo foi implementado aqui. Considere o famoso dataset Iris com todas as declarações de importação já feitas, o código para a matriz de confusão seria:

iris = datasets.load_iris()

X = íris.dados

y = íris.alvo

class_names = iris.target_names

X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )

classificador = svm.SVC (kernel = 'linear' , C = 0.01 ) . fit(X_train, y_train)

plot_confusion_matrix(classificador, X_test, y_test,display_labels = class_names,cmap = plt . cm . Blues)

Nota: A matriz retornada por isso tem os lados invertidos, aqui à esquerda temos os valores reais e na parte superior temos os valores previstos. Se você quiser evitar confusão, execute esta função para obter um resumo detalhado (relatório de classificação) em vez de calculá-lo manualmente:

print(classification_report(y_true=y_test, y_pred=y_pred, target_names=class_names))

Leia também: Algoritmo de aprendizado profundo

Qual usar e onde?

Esta é a pergunta mais comum que surge ao modelar os Dados e a solução está no domínio da declaração do problema. Considere estes dois casos:

  1. Suponha que você esteja prevendo se a pessoa terá uma parada cardíaca. Nesse cenário, você não pode permitir nenhuma classificação incorreta e todas as previsões feitas devem ser precisas. Com isso dito, o custo dos falsos negativos é alto, então a pessoa estava propensa a atacar, mas foi prevista como segura. Esses casos devem ser evitados. Nessas situações, precisamos de um modelo com alto recall.
  2. Suponha que um mecanismo de pesquisa forneça resultados aleatórios que são todos previstos como positivos pelo modelo, então há muito pouca possibilidade de que o usuário confie nele. Portanto, neste cenário, precisamos de um modelo com alta precisão para que a experiência do usuário melhore e o site cresça na direção certa.

Conclusão

A matriz de confusão é um ótimo método para avaliar um modelo de classificação. Ele fornece uma visão real sobre a precisão com que o modelo classificou as classes com base nas entradas fornecidas e como essa classe pode ser classificada incorretamente.

Se você estiver interessado em aprender mais sobre aprendizado de máquina, confira o PG Diploma in Machine Learning & AI do IIIT-B e upGrad, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições, IIIT- B Status de ex-aluno, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.

Lidere a revolução tecnológica orientada por IA

DIPLOMA PG EM APRENDIZAGEM DE MÁQUINA E INTELIGÊNCIA ARTIFICIAL
Saber mais