Precisão é definida como:
p = verdadeiros positivos / (verdadeiros positivos + falsos positivos)
Qual é o valor da precisão se (verdadeiros positivos + falsos positivos) = 0? É apenas indefinido?
Mesma pergunta para recall:
r = positivos verdadeiros / (verdadeiros positivos + falsos negativos)
Nesse caso, qual é o valor de recall se (verdadeiros positivos + falsos negativos) = 0?
PS Esta pergunta é muito semelhante à pergunta Quais são os valores corretos para precisão e recall em casos extremos? .
precision-recall
Raffi Khatchadourian
fonte
fonte
Respostas:
As respostas para a pergunta anterior vinculada também se aplicam aqui.
Se (verdadeiros positivos + falsos negativos) = 0, não há casos positivos nos dados de entrada; portanto, qualquer análise desse caso não possui informações e, portanto, nenhuma conclusão sobre como os casos positivos são tratados. Você deseja N / A ou algo semelhante ao resultado da relação, evitando uma divisão por erro zero
Se (positivos verdadeiros + falsos positivos) = 0, todos os casos foram previstos como negativos: este é um final da curva ROC. Novamente, você deseja reconhecer e relatar essa possibilidade, evitando uma divisão por erro zero .
fonte
Uma resposta interessante é oferecida aqui: https://github.com/dice-group/gerbil/wiki/Precision,-Recall-and-F1-measure
Os autores das notas de saída do módulo diferentes para precisão e recordação dependendo se verdadeiros positivos, falsos positivos e falsos negativos são todos 0. Se eles são, o resultado é ostensivamente uma boa.
Não tenho certeza se esse tipo de pontuação seria útil em outras situações fora do caso especial, mas vale a pena pensar um pouco.
fonte
Ao avaliar um classificador em limites altos, a precisão pode (na verdade, na verdade) não ser 1 quando o recall é 0. Geralmente é N / A! Eu acho que há algo errado sobre como as pessoas traçam a curva P / R. Evitar amostras de N / A é um viés no sentido de evitar amostras de singularidade. Eu calculei a precisão média gravada no recall médio ignorando amostras N / A e nunca obtive um classificador começando em 1 para recall 0 para uma rede neural superficial na detecção de objetos. Isso também se aplica às curvas calculadas com os números tp, fp, fn. É muito fácil verificar com papel e lápis com uma única imagem. Por exemplo: Eu tenho um classificador que gera uma única imagem: preds = [.7 .6 .5 .1 .05] truth = [nynny] Ao calcular as matrizes de confusão com os vários limites que temos: tp = [2 1 1 1 0 0], fn = [0 1 1 1 2 2], fp = [3 3 2 1 1 0]. o recall rec = [1 .5 .5 .5 0 0] e a precisão = [.4 .25 1/3 .5 0 NaN]. Não vejo como faria sentido substituir um NaN ou a precisão (@ recall == 0) por 1. 1 deve ser um limite superior, não um valor com o qual substituímos a precisão (@ recall == 0).
fonte