Comment Keras calcule-t-il la précision à partir des probabilités par classe? Disons, par exemple, que nous avons 100 échantillons dans l'ensemble de test qui peuvent appartenir à l'une des deux classes. Nous avons également une liste des probabilités par classe. Quel seuil Keras utilise-t-il pour affecter un échantillon à l'une des deux classes?
neural-network
deep-learning
keras
Raghuram
la source
la source
Réponses:
Pour la classification binaire, le code pour la métrique de précision est:
K.mean(K.equal(y_true, K.round(y_pred)))
ce qui suggère que 0,5 est le seuil pour distinguer les classes. y_true devrait bien sûr être 1-hots dans ce cas.
C'est un peu différent pour la classification catégorielle:
K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))
ce qui signifie "combien de fois les prévisions ont le maximum au même endroit que les vraies valeurs"
Il existe également une option pour la précision catégorielle top-k, qui est similaire à celle ci-dessus, mais calcule la fréquence à laquelle la classe cible se trouve dans les prédictions top-k.
la source
categorical_accuracy
.