o que significam os números no relatório de classificação do sklearn?

29

Eu tenho abaixo um exemplo que tirei da documentação sklearn.metrics.classification_report do sklearn.

O que não entendo é por que existem valores de pontuação f1, precisão e recordação para cada classe em que acredito que classe é o rótulo do preditor? Eu pensei que a pontuação f1 informa a precisão geral do modelo. Além disso, o que a coluna de suporte nos diz? Não consegui encontrar nenhuma informação sobre isso.

print(classification_report(y_true, y_pred, target_names=target_names))
             precision    recall  f1-score   support

    class 0       0.50      1.00      0.67         1
    class 1       0.00      0.00      0.00         1
    class 2       1.00      0.67      0.80         3

avg / total       0.70      0.60      0.61         5
jxn
fonte

Respostas:

21

A pontuação f1 fornece a média harmônica de precisão e recuperação. As pontuações correspondentes a todas as classes informarão a precisão do classificador na classificação dos pontos de dados nessa classe específica, em comparação com todas as outras classes.

O suporte é o número de amostras da resposta verdadeira que estão nessa classe.

Você pode encontrar documentação sobre as duas medidas na documentação do sklearn.

Suporte - http://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html

Pontuação F1 - http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

EDITAR

A última linha fornece uma média ponderada de precisão, recuperação e pontuação f1, onde os pesos são os valores de suporte. portanto, para precisão, a média é (0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70. O total é apenas para suporte total, que é 5 aqui.

Nitin
fonte
11
e a última linha avg / total? Parece não coincidir com os meios da coluna ... Como é calculado e o que significa?
Antoine
@ Antoni também estou me perguntando o mesmo. Você descobriu como é calculado?
Ponto azul pálido
@Antoine A última linha fornece uma média ponderada de precisão, recordação e pontuação f1, onde os pesos são os valores de suporte. portanto, para precisão, a média é (0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70. O total é apenas para suporte total, que é 5 aqui.
Nitin
Graças à resposta anterior de @Nitin eu achei por links das melhores descrições visuais e intuição por trás de matemática: en.wikipedia.org/wiki/Precision_and_recall en.wikipedia.org/wiki/F1_score
Bogdan Korecki