Wie berechnet Keras die Genauigkeit aus den klassenweisen Wahrscheinlichkeiten? Nehmen wir zum Beispiel an, wir haben 100 Proben im Test-Set, die zu einer von zwei Klassen gehören können. Wir haben auch eine Liste der klassenweisen Wahrscheinlichkeiten. Welchen Schwellenwert verwendet Keras, um eine Stichprobe einer der beiden Klassen zuzuweisen?
neural-network
deep-learning
keras
Raghuram
quelle
quelle
Antworten:
Für die binäre Klassifizierung lautet der Code für die Genauigkeitsmetrik:
K.mean(K.equal(y_true, K.round(y_pred)))
was darauf hindeutet, dass 0,5 der Schwellenwert ist, um zwischen Klassen zu unterscheiden. y_true sollte in diesem Fall natürlich 1-hots sein.
Bei der kategorialen Klassifizierung ist das etwas anders:
K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))
was bedeutet "wie oft haben Vorhersagen ein Maximum an der gleichen Stelle wie die wahren Werte"
Es gibt auch eine Option für die k-höchste kategoriale Genauigkeit, die der obigen Option ähnelt, jedoch berechnet, wie oft die Zielklasse in den k-höchsten Vorhersagen enthalten ist.
quelle
categorical_accuracy
.