Para obtener una matriz de confusión de los datos de prueba, debe seguir dos pasos:
- Hacer predicciones para los datos de prueba
Por ejemplo, use model.predict_generator
para predecir las primeras 2000 probabilidades del generador de prueba.
generator = datagen.flow_from_directory(
'data/test',
target_size=(150, 150),
batch_size=16,
class_mode=None, # only data, no labels
shuffle=False) # keep data in same order as labels
probabilities = model.predict_generator(generator, 2000)
- Calcule la matriz de confusión basada en las predicciones de la etiqueta.
Por ejemplo, compare las probabilidades con el caso de que hay 1000 gatos y 1000 perros respectivamente.
from sklearn.metrics import confusion_matrix
y_true = np.array([0] * 1000 + [1] * 1000)
y_pred = probabilities > 0.5
confusion_matrix(y_true, y_pred)
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.