Desmistificando a matriz de confusão no aprendizado de máquina [surpreendente]
Publicados: 2020-12-07Machine 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:

- 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).
- 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).
- 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).
- 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:
- 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.
- 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.