python - Issue with the optional list of label indices to include in the classification report -
i having issues labels
, target_names
attributes of sklearn.metrics.classification_report
.
the documentation says:
labels
: array, shape = [n_labels]. optional list of label indices include in report.target_names
: list of strings. optional display names matching labels (same order).
however, in cases not seem follow specify in labels
, target_names
.
example:
from sklearn.metrics import classification_report sklearn.preprocessing import labelbinarizer y_true = ['default_label', 'location', 'date', 'default_label', 'name', 'id', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'date', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'name', 'name', 'name', 'default_label', 'name', 'default_label', 'date', 'default_label', 'date', 'default_label', 'date', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label'] y_pred = ['location', 'location', 'date', 'default_label', 'name', 'id', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'date', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'name', 'name', 'name', 'default_label', 'name', 'default_label', 'date', 'default_label', 'date', 'default_label', 'date', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label', 'default_label'] lb = labelbinarizer() y_true_combined = lb.fit_transform(y_true) y_pred_combined = lb.transform(y_pred) tagset = set(lb.classes_) - {'default_label'} tagset = list(tagset) tagset = sorted(tagset) class_indices = {cls: idx idx, cls in enumerate(lb.classes_)} labels = [class_indices[cls] cls in tagset] print(classification_report(y_true_combined, y_pred_combined, labels = labels, target_names = tagset))
returns:
precision recall f1-score support date 1.00 1.00 1.00 5 id 1.00 1.00 1.00 1 location 0.50 1.00 0.67 1 name 1.00 1.00 1.00 5 avg / total 1.00 1.00 1.00 295
which means default_label
label not ignored (in support column, number 295
higher 5+1+1+5
sum), unlike specified.
if comment line tagset = sorted(tagset)
, expected classification report default_label
label ignored:
precision recall f1-score support date 1.00 1.00 1.00 5 location 0.50 1.00 0.67 1 name 1.00 1.00 1.00 5 id 1.00 1.00 1.00 1 avg / total 0.96 1.00 0.97 12
why?
i use scikit-learn 0.17 python 2.7.11 x64.
Comments
Post a Comment