Testdaten (englisch test data) sind der Teil eines Datensatzes, der beim maschinellen Lernen niemals zum Training verwendet wird. Sie dienen der einmaligen, ehrlichen Endabnahme: Erst wenn ein Modell fertig trainiert und abgestimmt ist, wird es auf den Testdaten bewertet. Werden die Testdaten vorher genutzt, überschätzt man die Qualität des Modells systematisch.

Der Standard-Schnitt

Üblich ist die Aufteilung des verfügbaren Datensatzes in drei Teile: Trainingsdaten (meist 70 bis 80 Prozent) zum Lernen, Validierungsdaten (10 bis 15 Prozent) zum Abstimmen der Hyperparameter und Testdaten (10 bis 20 Prozent) für die finale Bewertung. Die genauen Anteile hängen von der Datenmenge ab: Bei sehr großen Datensätzen genügen wenige Prozent für den Test, bei kleinen Stichproben übernimmt die Kreuzvalidierung die Rolle der stabilen Aufteilung.

Regeln für ehrliche Tests

  • Testdaten nie zum Training oder Tuning verwenden, sonst entsteht ein Datenleck.
  • Die Aufteilung einmal festlegen und bis zum Schluss unverändert lassen.
  • Bei Klassifikationsproblemen auf eine stratifizierte Aufteilung achten, damit jede Klasse im Test vertreten ist.
  • Normalisierung oder Skalierung nur auf den Trainingsdaten berechnen und auf den Testdaten anwenden.

Testdaten und Validierungsdaten

Der Unterschied liegt im Verwendungszweck: Validierungsdaten begleiten das Training und helfen bei der Auswahl der Hyperparameter, die Trainingsdaten lassen das Modell lernen. Die Testdaten kommen erst danach einmal zum Einsatz. Werden Validierungs- und Testdaten vermischt, ist das Ergebnis überoptimistisch — ein Modell, das im Test glänzt, kann im echten Betrieb deutlich schlechter abschneiden.

Ein Modell, das auf den Trainingsdaten sehr gut, auf den Testdaten aber deutlich schlechter abschneidet, ist überangepasst (Overfitting). Sind die Fehler auf beiden hoch, ist das Modell unterkomplex (Underfitting).