44
$\begingroup$

I have below an example I pulled from sklearn 's sklearn.metrics.classification_report documentation.

What I don't understand is why there are f1-score, precision and recall values for each class where I believe class is the predictor label? I thought the f1 score tells you the overall accuracy of the model. Also, what does the support column tell us? I couldn't find any info on that.

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
$\endgroup$

1 Answer 1

36
$\begingroup$

The f1-score gives you the harmonic mean of precision and recall. The scores corresponding to every class will tell you the accuracy of the classifier in classifying the data points in that particular class compared to all other classes.

The support is the number of samples of the true response that lie in that class.

You can find documentation on both measures in the sklearn documentation.

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

F1-score - http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

EDIT

The last line gives a weighted average of precision, recall and f1-score where the weights are the support values. so for precision the avg is (0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70. The total is just for total support which is 5 here.

$\endgroup$
4
  • 1
    $\begingroup$ what about the last line avg / total? It does not seem to match the column means... How is it computed and what does it mean? $\endgroup$
    – Antoine
    Oct 19, 2016 at 8:03
  • $\begingroup$ @Antoine I am also wondering the same. Did you find out how is it calculated? $\endgroup$
    – Ravindra S
    May 16, 2017 at 15:32
  • $\begingroup$ @Antoine The last line gives a weighted average of precision, recall and f1-score where the weights are the support values. so for precision the avg is (0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70. The total is just for total support which is 5 here. $\endgroup$
    – Nitin
    May 21, 2017 at 3:56
  • $\begingroup$ Thanks to previous answer of @Nitin I found by links the best visual descriptions and intuition behind math: en.wikipedia.org/wiki/Precision_and_recall en.wikipedia.org/wiki/F1_score $\endgroup$ Oct 2, 2018 at 16:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.