Para obter uma matriz de confusão a partir dos dados de teste, você deve seguir duas etapas:
- Faça previsões para os dados de teste
Por exemplo, use model.predict_generator
para prever as primeiras 2000 probabilidades do gerador de teste.
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)
- Calcular a matriz de confusão com base nas previsões do rótulo
Por exemplo, compare as probabilidades com o caso de haver 1000 gatos e 1000 cães, 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 dados de teste e validação
A documentação do Keras usa três conjuntos diferentes de dados: dados de treinamento, dados de validação e dados de teste. Os dados de treinamento são usados para otimizar os parâmetros do modelo. Os dados de validação são usados para fazer escolhas sobre os meta-parâmetros, por exemplo, o número de épocas. Após a otimização de um modelo com meta-parâmetros ideais, os dados de teste são usados para obter uma estimativa justa do desempenho do modelo.