Per ottenere una matrice di confusione dai dati del test, è necessario eseguire due passaggi:
- Fai previsioni per i dati del test
Ad esempio, utilizzare model.predict_generator
per prevedere le prime 2000 probabilità dal generatore di test.
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)
- Calcola la matrice di confusione in base alle previsioni dell'etichetta
Ad esempio, confrontare le probabilità con il caso in cui vi siano rispettivamente 1000 gatti e 1000 cani.
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 aggiuntiva sui dati di test e validazione
La documentazione di Keras utilizza tre diversi set di dati: dati di addestramento, dati di validazione e dati di test. I dati di allenamento vengono utilizzati per ottimizzare i parametri del modello. I dati di validazione sono usati per fare delle scelte sui meta-parametri, ad es. Il numero di epoche. Dopo aver ottimizzato un modello con meta-parametri ottimali, i dati del test vengono utilizzati per ottenere una stima corretta delle prestazioni del modello.