En el blog de Keras sobre capacitación de redes de comunicación desde cero , el código muestra solo la red que se ejecuta en datos de capacitación y validación. ¿Qué pasa con los datos de prueba? ¿Los datos de validación son los mismos que los datos de prueba (creo que no)? Si hubiera una carpeta de prueba separada en líneas similares a las carpetas de tren y validación, ¿cómo obtenemos una matriz de confusión para los datos de prueba? Sé que tenemos que usar scikit learn o algún otro paquete para hacer esto, pero ¿cómo obtengo algo similar a las probabilidades de clase para los datos de prueba? Espero usar esto para la matriz de confusión.
16
Respuestas:
Para obtener una matriz de confusión de los datos de prueba, debe seguir dos pasos:
Por ejemplo, use
model.predict_generator
para predecir las primeras 2000 probabilidades del generador de prueba.Por ejemplo, compare las probabilidades con el caso de que hay 1000 gatos y 1000 perros respectivamente.
Nota adicional sobre datos de prueba y validación
La documentación de Keras utiliza tres conjuntos diferentes de datos: datos de entrenamiento, datos de validación y datos de prueba. Los datos de entrenamiento se utilizan para optimizar los parámetros del modelo. Los datos de validación se utilizan para elegir los metaparámetros, por ejemplo, el número de épocas. Después de optimizar un modelo con metaparámetros óptimos, los datos de prueba se utilizan para obtener una estimación justa del rendimiento del modelo.
fuente
np.array([0] * 1000 + [1] * 1000)
ti puedes obtener la misma matriz haciendogenerator.classes
Aquí hay un código que probé y funcionó para mí:
Entonces puedes usar:
Asegúrese de usarlo
shuffle=False
en su generador de prueba (en mi caso es el generador de validación) y reinícielovalidation_generator.reset()
antes de hacer sus predicciones.fuente
Para la matriz de confusión, debe usar el paquete sklearn. No creo que Keras pueda proporcionar una matriz de confusión. Para predecir valores en el conjunto de prueba, simplemente llame al método model.predict () para generar predicciones para el conjunto de prueba. El tipo de valores de salida depende del tipo de modelo, es decir, ya sea discreto o de probabilidades.
fuente