Wie berechnet Keras die Genauigkeit?


26

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?


Verwenden Sie model.evaluate in Keras?
Hima Varsha

Ja, ich benutze model.evaluate. Genauer gesagt, model.evaluate_generator.
Raghuram


Möglicherweise im Zusammenhang mit @SO: Wie bewertet Keras die Genauigkeit? )
desertnaut

Antworten:


24

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.


Danke für die Antwort. Bedeutet das, dass die Labels auch für die binäre Klassifizierung eine Hot-Codierung benötigen?
Raghuram

@ Raghuram Nein, für die binäre Klassifizierung brauchen Sie nur 0 oder 1 als Klasse, keine Notwendigkeit, sie im laufenden Betrieb zu codieren. Da K.mean (K.equal (y_true, K.round (y_pred))) für jeden Fall mit 2 Float-Werten übereinstimmt, muss es 0 oder 1 sein und nicht [0,1], [1,0].
Divyanshu Kalra

Verwenden Sie für kategoriale Genauigkeit categorical_accuracy.
Shital Shah

1
Gibt es für ein Problem mit mehreren Klassen (mit mehr als zwei Klassen) einen Unterschied zwischen der Verwendung von "Genauigkeit" und "kategoriale Genauigkeit"
Quetzalcoatl
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.