'Understanding nature of parameters of sklearn.metrics.classification_report

I came across following piece of code:

from sklearn.metrics import classification_report
y_true = [2,1,1,1]
y_pred = [False,True,False,True]
print(classification_report(y_true, y_pred))
              precision    recall  f1-score   support

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

    accuracy                           0.50         4
   macro avg       0.33      0.22      0.27         4
weighted avg       0.75      0.50      0.60         4

I am unable to understand how sklearn performs mapping between labels in y_true and y_pred arrays. That is, how it determines, whether False is same as 2 or 1 and same is the case with True?

I did not found any details in the doc.



Solution 1:[1]

In python, True=1 and False=0.
So,

y_pred = [False,True,False,True]

means the same as

y_pred = [0,1,0,1]

This means, this code will yield exactly the same results as your code:

y_true = [2,1,1,1]
y_pred = [0,1,0,1]
print(classification_report(y_true, y_pred))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mushfirat Mohaimin