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. Para um caso de uso de classificação binária, uma Matriz de confusão é uma matriz 2 × 2 que é mostrada abaixoValor 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 |
- 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 |
- 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).
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)
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.