wake-up-neo.com

Wie man die Genauigkeit pro Klasse in Keras ausgibt

Caffe kann nicht nur die Gesamtgenauigkeit, sondern auch die Genauigkeit pro Klasse drucken.

Im Keras-Protokoll gibt es nur die allgemeine Genauigkeit. Es fällt mir schwer, die Genauigkeit der einzelnen Klassen zu berechnen.

Epoche 168/200

0s - Verlust: 0,0495 - acc: 0,9818 - val_loss: 0,0519 - val_acc: 0,9796

Epoche 169/200

0s - Verlust: 0,0519 - acc: 0,9796 - val_loss: 0,0496 - val_acc: 0,9815

Epoche 170/200

0s - Verlust: 0,0496 - acc: 0,9815 - val_loss: 0,0514 - val_acc: 0,9801

Wer weiß, wie man die Genauigkeit pro Klasse in Keras ausgibt?

15
spider

Präzision und Erinnerung sind nützlichere Maßnahmen für die Klassifizierung mehrerer Klassen (siehe Definitionen ). Nach dem Beispiel Keras MNIST CNN (Klassifizierung mit 10 Klassen) können Sie die Kennzahlen pro Klasse mit classification_report Von sklearn.metrics erhalten:

from sklearn.metrics import classification_report
import numpy as np

Y_test = np.argmax(y_test, axis=1) # Convert one-hot to index
y_pred = model.predict_classes(x_test)
print(classification_report(Y_test, y_pred))

Hier ist das Ergebnis:

         precision    recall  f1-score   support

      0       0.99      1.00      1.00       980
      1       0.99      0.99      0.99      1135
      2       1.00      0.99      0.99      1032
      3       0.99      0.99      0.99      1010
      4       0.98      1.00      0.99       982
      5       0.99      0.99      0.99       892
      6       1.00      0.99      0.99       958
      7       0.97      1.00      0.99      1028
      8       0.99      0.99      0.99       974
      9       0.99      0.98      0.99      1009

avg / total   0.99      0.99      0.99     10000
16
desertnaut