Como calcular precisão e recall em uma matriz de confusão 3 x 3


12
                  Predicted
                    class
               Cat  Dog Rabbit
  Actual class
           Cat   5    3      0
           Dog   2    3      1
        Rabbit   0    2     11

Como posso calcular a precisão e recuperar, para que fique fácil calcular a pontuação F1. A matriz de confusão normal é uma dimensão 2 x 2. No entanto, quando se torna 3 x 3, não sei como calcular precisão e recordação.

Respostas:


19

Se você especificar as definições de precisão (também conhecido como valor preditivo positivo PPV) e recall (também conhecido como sensibilidade), verá que elas se relacionam a uma classe independente de qualquer outra classe:

Lembre-se ou sensibilidade é a proporção de casos corretamente identificados como pertencentes à classe c entre todos os casos que realmente pertencem à classe c .
(Como temos um caso realmente pertencente a " c ", qual é a probabilidade de prever isso corretamente?)

Precisão ou valor preditivo positivo PPV é a proporção de casos corretamente identificados como pertencentes à classe c entre todos os casos em que o classificador afirma que pertence à classe c .
Em outras palavras, daqueles casos previstos para pertencer à classe c , qual fração realmente pertence à classe c ? (Dada a previsão " c ", qual é a probabilidade de estar correta?)

valor preditivo negativo O VPN desses casos predisse não pertencer à classe c , qual fração realmente não pertence à classe c ? (Dada a previsão "não c ", qual é a probabilidade de estar correta?)

Assim, você pode calcular a precisão e recordar para cada uma das suas aulas. Para tabelas de confusão de várias classes, esses são os elementos diagonais divididos por suas somas de linha e coluna, respectivamente:

esquema de cálculo

Fonte: Beleites, C .; Salzer, R. & Sergo, V. Validação de modelos de classificação suave usando associações parciais de classe: Um conceito estendido de sensibilidade & co. aplicado à classificação dos tecidos do astrocitoma, Chemom Intell Lab Syst, 122, 12 - 22 (2013). DOI: 10.1016 / j.chemolab.2012.12.003


Muito obrigado. Eu já entendo a analogia descrita em sua solução. Vou ler papel. Eu aceitarei isso como uma resposta. Eu não entendo PPV E NPV.Por favor, explique esses conceitos tão gráficos quanto os Sens e Spec foram explicados e eu aceitarei sua resposta.
user22149

3

Ao reduzir os dados para escolhas forçadas (classificação) e não registrar se houve "fechamentos", você obtém estimativas estatísticas de precisão mínima com informações mínimas, além de assumir secretamente uma função estranha de utilidade / perda / custo e usar limites arbitrários . Seria muito melhor usar o máximo de informações, o que incluiria as probabilidades de pertencer à classe e não de escolhas forçadas.


1

A maneira mais fácil é não usar confusion_matrix, use o rating_report (), ele fornecerá tudo o que você sempre precisou, felicidades ...

Edit:
este é o formato para confusion_matrix ():
[[TP, FN]
[FP, TN]]
E o relatório de classificação fornece tudo isso


Isso se você estiver usando python ///
Omkaar.K

0

Se você simplesmente deseja o resultado, meu conselho seria não pensar muito e usar as ferramentas à sua disposição. Aqui está como você pode fazer isso em Python;

import pandas as pd
from sklearn.metrics import classification_report

results = pd.DataFrame(
    [[1, 1],
     [1, 2],
     [1, 3],
     [2, 1],
     [2, 2],
     [2, 3],
     [3, 1],
     [3, 2],
     [3, 3]], columns=['Expected', 'Predicted'])

print(results)
print()
print(classification_report(results['Expected'], results['Predicted']))

Para obter a seguinte saída

   Expected  Predicted
0         1          1
1         1          2
2         1          3
3         2          1
4         2          2
5         2          3
6         3          1
7         3          2
8         3          3

             precision    recall  f1-score   support

          1       0.33      0.33      0.33         3
          2       0.33      0.33      0.33         3
          3       0.33      0.33      0.33         3

avg / total       0.33      0.33      0.33         9

0

A seguir, é apresentado um exemplo de uma matriz de confusão de várias classes, assumindo que nossos rótulos de classe são A, B e C

A / P A B C Soma
A 10 3 4 17
B 2 12 6 20
C 6 3 9 18

Soma 18 18 19 55

Agora calculamos três valores para Precision e Recall cada um e os chamamos de Pa, Pb e Pc; e similarmente Ra, Rb, Rc.

Sabemos Precisão = TP / (TP + FP); portanto, para Pa, o verdadeiro positivo será o real A previsto como A, ou seja, 10, o restante das duas células dessa coluna, seja B ou C, torna o falso positivo. então

Pa = 10/18 = 0,55 Ra = 10/17 = 0,59

Agora, precisão e recuperação para a classe B são Pb e Rb. Para a classe B, o verdadeiro positivo é o real B previsto como B, ou seja, a célula que contém o valor 12 e o restante das duas células dessa coluna produzem Falso Positivo, portanto

Pb = 12/18 = 0,67 Rb = 12/20 = 0,6

Da mesma forma Pc = 9/19 = 0,47 Rc = 9/18 = 0,5

O desempenho geral do classificador será determinado pela Precisão média e Recuperação média. Para isso, multiplicamos o valor de precisão de cada classe pelo número real de instâncias dessa classe e, em seguida, adicionamos e dividimos com o número total de instâncias. Gostar ,

Precisão média = (0,55 * 17 + 0,67 * 20 + 0,47 * 18) / 55 = 31,21 / 55 = 0,57 Recuperação média = (0,59 * 17 + 0,6 * 20 + 0,5 * 18) / 55 = 31,03 / 55 = 0,56

Espero que ajude

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.