Matriz de confusão em aprendizado de máquina: sua solução única



Este artigo enfoca a matriz de confusão, que é um dos aspectos mais importantes de qualquer algoritmo de aprendizado de máquina usado para avaliar sua precisão.

Dentro , geralmente temos 2 tipos diferentes de casos de uso, , e problema. O Confusion Matrix ajuda a calcular a precisão do modelo de classificação, o que indiretamente nos ajuda a descrever o desempenho do modelo de classificação. É a etapa mais importante quando se trata de avaliar um modelo. Abordarei os seguintes tópicos neste artigo:

1. O que é uma matriz de confusão?





2. Precisão e componentes da matriz de confusão

3. Precisão, recall e medição F



4. Criação de uma matriz de confusão usando Python e Sklearn

O que é uma matriz de confusão?

Uma matriz de confusão é o resumo de comparação dos resultados previstos e os resultados reais em qualquer caso de uso de problema de classificação. O resumo da comparação é extremamente necessário para determinar o desempenho do modelo depois que ele é treinado com alguns dados de treinamento. Accuracy-Confusion-MatrixPara um caso de uso de classificação binária, uma Matriz de confusão é uma matriz 2 × 2 que é mostrada abaixo
Valor de classe 1 previsto EG: 1 Valor de classe 2 previsto EG: 0
Valor real da classe 1

EG: 1

TP (verdadeiro positivo) FN (falso negativo)
Valor real da classe 2



EG: 0

FP (falso positivo) TN (Verdadeiro Negativo)

Da figura acima:
Nós temos,

função de potência em java para inteiros
  • Valor real da classe 1 = 1, que é semelhante ao valor positivo em um resultado binário.
  • Valor real da classe 2 = 0, que é semelhante a um valor negativo no resultado binário.

O índice do lado esquerdo da matriz de confusão indica basicamente os valores reais e a coluna superior indica os valores previstos.

Existem vários componentes quando criamos uma matriz de confusão. Os componentes são mencionados abaixo

Positivo (P): O resultado previsto é positivo (exemplo: a imagem é um gato)

Negativo (N): o resultado previsto é negativo (exemplo: as imagens não são de um gato)

Verdadeiro positivo (TP): Aqui, TP basicamente indica o valor previsto e o valor real é 1 (verdadeiro)

Verdadeiro negativo (TN): Aqui TN indica o previsto e o valor real é 0 (Falso)

Falso negativo (FN): Aqui, FN indica que o valor previsto é 0 (negativo) e o valor real é 1. Aqui, os dois valores não correspondem. Portanto, é falso negativo.

Falso positivo (FP): Aqui, FP indica que o valor previsto é 1 (positivo) e o valor real é 0. Aqui, novamente, ambos os valores são incompatíveis. Portanto, é falso positivo.

Precisão e componentes da matriz de confusão

Depois que a matriz de confusão é criada e determinamos todos os valores dos componentes, torna-se muito fácil calcular a precisão. Então, vamos dar uma olhada nos componentes para entender isso melhor.
  • Precisão de classificação

Pela fórmula acima, a soma de TP (Verdadeiro Positivo) e TN (Verdadeiro Negativo) são os resultados preditos corretos. Portanto, para calcular a precisão em porcentagem, dividimos com todos os outros componentes. No entanto, existem alguns problemas de precisão e não podemos depender totalmente disso.

Vamos considerar que nosso conjunto de dados está completamente desequilibrado. Neste cenário, a precisão de 98% pode ser boa ou ruim com base na declaração do problema. Portanto, temos mais alguns termos-chave que nos ajudarão a ter certeza sobre a precisão que calculamos. Os termos são os seguintes:

  • TPR (True Positive Rate) ou Sensibilidade:

A taxa de Positivo Verdadeiro, também conhecida como Sensibilidade, mede a porcentagem do Positivo Verdadeiro em relação ao Total de Positivos Reais, que é indicado por (TP + FN)

Valor de classe 1 previsto EG: 1 Valor de classe 2 previsto EG: 0 Total
Valor real da classe 1

EG: 1

TP (verdadeiro positivo) FN (falso negativo) Positivos reais totais
Valor real da classe 2

EG: 0

FP (falso positivo)TN (Verdadeiro Negativo)Total de negativos reais
TPR = Verdadeiro Positivo / (Verdadeiro Positivo + Falso Negativo
  • TNR (True Negative Rate) ou especificidade:

A taxa ou especificidade verdadeira negativa mede a proporção de negativos reais em relação ao total de negativos

Valor de classe 1 previsto EG: 1 Valor de classe 2 previsto EG: 0 Total
Valor real da classe 1

EG: 1

TP (verdadeiro positivo)FN (falso negativo)Positivos reais totais
Valor real da classe 2

EG: 0

FP (falso positivo) TN (Verdadeiro Negativo) Total de negativos reais

TNR = Verdadeiro Negativo / (Verdadeiro Negativo + Falso Positivo)

  • Taxa de falso positivo (FPR):

Taxa de falsos positivos é a porcentagem de falsos positivos previstos (FP) em relação ao número total de resultados positivos previstos (TP + FP).

Valor de classe 1 previsto EG: 1 Valor de classe 2 previsto EG: 0
Valor real da classe 1 EG: 1 TP (verdadeiro positivo) FN (falso negativo)
Valor real da classe 2 EG: 0 FP (falso positivo) TN (Verdadeiro Negativo)
Soma do total predito positivo Soma do total previsto negativo
FPR = falso positivo / (verdadeiro positivo + falso positivo)
  • Taxa de falso negativo (FNR):

Taxa de falsos negativos é a porcentagem de falsos negativos previstos (FP) em relação ao número total de resultados negativos previstos (TN + FN).

Valor de classe 1 previsto EG: 1 Valor de classe 2 previsto EG: 0
Valor real da classe 1 EG: 1TP (verdadeiro positivo) FN (falso negativo)
Valor real da classe 2 EG: 0FP (falso positivo) TN (Verdadeiro Negativo)
Soma do total predito positivo Soma do total previsto negativo
FNR = Falso Negativo / (Falso Negativo + Verdadeiro Negativo)

Precisão, recall e medida F

  • Lembre-se:

Uma rechamada é semelhante à Taxa de Positivo Verdadeiro e é a proporção do número total de valores positivos preditos corretamente (TP) para todos os valores positivos.

  • Precisão:

A precisão indica basicamente todos os pontos que o modelo previu como positivos e qual a porcentagem deles são realmente positivos.

o que o scanner faz em java

Precisão e recall são resultados de métricas que se concentram na classe positiva, conforme mostrado nas fórmulas acima.

  • F-Measure

Portanto, F-Measure é uma técnica que combina a técnica de Precisão e Rechamada e usa a Média Harmônica no lugar da Média Aritmética usual, devido à qual os valores extremos são punidos. A medida F também é chamada de pontuação F1 e é dada pela fórmula abaixo.

Vamos considerar um exemplo e ver como podemos calcular a Exatidão, a Precisão, a Recuperação e a pontuação F1.

N = 165 Previsto SIM NÃO previsto
SIM real TP = 150 FN = 10
Atual NÃO FP = 20 TN = 100
    • Precisão = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0,89
    • Rechamada = TP / (TP + FN) = 150 / (150 + 10) = 0,93
    • Precisão: TP / (TP + FP) = 150 / (150 + 20) = 0,88

  • Medida F = (2 * Rechamada * Precisão) / (Rechamada + Presisão) = (2 * 0,93 * 0,88) / (0,93 + 0,88) = 0,90

Criando uma matriz de confusão usando Python e Sklearn

Agora veremos um exemplo de como podemos criar uma matriz de confusão usando python junto com a biblioteca sklearn.

1. Inicialmente, criaremos uma lista dos dados reais e previstos para verificar a precisão conforme mostrado abaixo

# Script Python para criação de matriz de confusão. dados_realistas = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] dados_preditados = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2 Precisamos importar a matriz de confusão da biblioteca sklearn conforme mostrado abaixo:

de sklearn.metrics import confused_matrix

3 - A seguir, criaremos a matriz de confusão conforme mostrado abaixo:

final_results = confusão_matrix (actual_data, predicted_data)

Quatro. Agora podemos prosseguir e calcular a precisão importando a biblioteca conforme mostrado abaixo:

de sklearn.metrics importar exatidão_score exatidão = exatidão_score (actual_data, predicted_data)

5 Finalmente, calculamos a pontuação F1 ou F-Measure conforme mostrado abaixo:

de sklearn.metrics importar relatório classificação_report = classificação_report (dados_real, dados_previstos)

Abaixo está o código completo:

dados_realistas = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] dados_preditados = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1] de sklearn.metrics importar confusão_matrix final_results = confusão_matrix (actual_data, predicted_data) imprimir (final_results) de sklearn.metrics importar exatidão_score exatidão = exatidão_score (actual_data, predicted_data) de sklearn.metrics importar classificação_report report = classificação_report ( dados_real, dados_previstos) imprimir (precisão) imprimir (relatório)

matrix

Então, com isso, chegamos ao fim deste artigo. Espero que toda a sua confusão sobre a matriz de confusão esteja resolvida.

Edureka's ajuda você a ganhar experiência em vários algoritmos de aprendizado de máquina, como regressão, agrupamento, árvores de decisão, floresta aleatória, Naïve Bayes e Q-Learning. Este aprendizado de máquina usando Python Training expõe você a conceitos de estatística, séries temporais e diferentes classes de algoritmos de aprendizado de máquina, como algoritmos supervisionados, não supervisionados e de reforço. Ao longo do curso de certificação em ciência de dados, você resolverá estudos de caso da vida real sobre mídia, saúde, mídia social, aviação, RH.