¿Cómo calcula Keras la precisión de las probabilidades de clase? Digamos, por ejemplo, tenemos 100 muestras en el conjunto de prueba que pueden pertenecer a una de dos clases. También tenemos una lista de las probabilidades de clase. ¿Qué umbral utiliza Keras para asignar una muestra a cualquiera de las dos clases?
neural-network
deep-learning
keras
Raghuram
fuente
fuente
Respuestas:
Para la clasificación binaria, el código para la métrica de precisión es:
K.mean(K.equal(y_true, K.round(y_pred)))
lo que sugiere que 0.5 es el umbral para distinguir entre clases. y_true debería ser, por supuesto, 1 hots en este caso.
Es un poco diferente para la clasificación categórica:
K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))
lo que significa "con qué frecuencia las predicciones tienen un máximo en el mismo lugar que los valores verdaderos"
También hay una opción para la precisión categórica top-k, que es similar a la anterior, pero calcula con qué frecuencia la clase objetivo está dentro de las predicciones top-k.
fuente
categorical_accuracy
.