Um eine Verwirrungsmatrix aus den Testdaten zu erhalten, müssen Sie zwei Schritte ausführen:
- Machen Sie Vorhersagen für die Testdaten
Verwenden Sie beispielsweise, model.predict_generator
um die ersten 2000 Wahrscheinlichkeiten vom Testgenerator vorherzusagen.
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)
- Berechnen Sie die Verwirrungsmatrix basierend auf den Etikettenvorhersagen
Vergleichen Sie beispielsweise die Wahrscheinlichkeiten mit dem Fall, dass 1000 Katzen bzw. 1000 Hunde vorhanden sind.
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)
Zusätzlicher Hinweis zu Test- und Validierungsdaten
Die Keras-Dokumentation verwendet drei verschiedene Datensätze: Trainingsdaten, Validierungsdaten und Testdaten. Trainingsdaten werden verwendet, um die Modellparameter zu optimieren. Die Validierungsdaten werden verwendet, um eine Auswahl über die Metaparameter zu treffen, z. B. die Anzahl der Epochen. Nach der Optimierung eines Modells mit optimalen Metaparametern werden die Testdaten verwendet, um eine faire Schätzung der Modellleistung zu erhalten.