Im Keras-Blog zum Training von Convnets von Grund auf wird im Code nur das Netzwerk angezeigt , das mit Trainings- und Validierungsdaten ausgeführt wird. Was ist mit Testdaten? Entsprechen die Validierungsdaten den Testdaten (glaube ich nicht)? Wenn ein separater Testordner in ähnlichen Zeilen wie der Zug- und der Validierungsordner vorhanden ist, wie erhalten wir eine Verwirrungsmatrix für die Testdaten? Ich weiß, dass wir dazu Scikit Learn oder ein anderes Paket verwenden müssen, aber wie erhalte ich etwas in der Art klassenmäßiger Wahrscheinlichkeiten für Testdaten? Ich hoffe, dies für die Verwirrungsmatrix zu nutzen.
16
Antworten:
Um eine Verwirrungsmatrix aus den Testdaten zu erhalten, müssen Sie zwei Schritte ausführen:
Verwenden Sie beispielsweise,
model.predict_generator
um die ersten 2000 Wahrscheinlichkeiten vom Testgenerator vorherzusagen.Vergleichen Sie beispielsweise die Wahrscheinlichkeiten mit dem Fall, dass 1000 Katzen bzw. 1000 Hunde vorhanden sind.
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.
quelle
np.array([0] * 1000 + [1] * 1000)
können Sie das gleiche Array erhalten, indem Siegenerator.classes
Hier ist ein Code, den ich ausprobiert und für mich gearbeitet habe:
Sie können dann verwenden:
Stellen Sie sicher, dass Sie
shuffle=False
Ihren Testgenerator verwenden (in meinem Fall den Validierungsgenerator), und setzen Sie ihn mit zurück,validation_generator.reset()
bevor Sie Ihre Vorhersagen treffen.quelle
Für die Verwirrungsmatrix müssen Sie das sklearn-Paket verwenden. Ich glaube nicht, dass Keras eine Verwirrungsmatrix liefern kann. Rufen Sie zum Vorhersagen von Werten für den Testsatz einfach die model.predict () - Methode auf, um Vorhersagen für den Testsatz zu generieren. Die Art der Ausgabewerte hängt von Ihrem Modelltyp ab, dh entweder von diskreten oder von Wahrscheinlichkeiten.
quelle