Trainings- und Test-Datasets: Daten aufteilen

Im vorherigen Modul wurde die Idee der Aufteilung Ihres Datasets in zwei Teilmengen vorgestellt:

  • Trainingssatz: Eine Teilmenge zum Trainieren eines Modells.
  • Test-Dataset: Teilmenge zum Testen des trainierten Modells.

Sie könnten sich das Aufteilen eines einzelnen Datasets wie folgt vorstellen:

Ein horizontaler Balken, der in zwei Teile unterteilt ist: 80% davon sind das Trainings-Dataset und 20% das Test-Dataset.

Abbildung 1. Segmentieren eines einzelnen Datasets in ein Trainings- und ein Test-Dataset.

Stellen Sie sicher, dass Ihr Test-Dataset die beiden folgenden Bedingungen erfüllt:

  • Es ist groß genug, um statistisch aussagekräftige Ergebnisse zu erhalten.
  • Sie ist repräsentativ für das Dataset als Ganzes. Mit anderen Worten: Wählen Sie kein Test-Dataset mit anderen Eigenschaften als das Trainings-Dataset aus.

Wenn Ihr Test-Dataset die beiden vorherigen Bedingungen erfüllt, besteht Ihr Ziel darin, ein Modell zu erstellen, das neue Daten gut verallgemeinert. Unser Test-Dataset dient als Stellvertreter für neue Daten. Betrachten Sie beispielsweise die folgende Abbildung. Beachten Sie, dass das für die Trainingsdaten erlernte Modell sehr einfach ist. Dieses Modell funktioniert nicht perfekt – einige Vorhersagen sind falsch. Dieses Modell funktioniert jedoch mit den Testdaten ungefähr genauso gut wie mit den Trainingsdaten. Mit anderen Worten: Dieses einfache Modell passt nicht zu den Trainingsdaten an.

Zwei Modelle: eines wird mit Trainingsdaten und das andere mit Testdaten ausgeführt.  Das Modell ist sehr simpel: Es handelt sich lediglich um eine Linie, die die orangefarbenen Punkte von den blauen Punkten trennt.  Der Verlust der Trainingsdaten ähnelt dem Verlust der Testdaten.

Abbildung 2. Validieren des trainierten Modells anhand von Testdaten.

Nie mit Testdaten trainieren. Wenn Sie überraschend gute Ergebnisse bei Ihren Bewertungsmesswerten sehen, könnte dies ein Zeichen dafür sein, dass Sie versehentlich mit dem Test-Dataset trainieren. Eine hohe Genauigkeit kann beispielsweise darauf hinweisen, dass Testdaten in den Trainingssatz gelangen.

Stellen Sie sich beispielsweise ein Modell vor, das vorhersagt, ob es sich bei einer E-Mail um Spam handelt. Dabei werden die Betreffzeile, der E-Mail-Text und die E-Mail-Adresse des Absenders als Features verwendet. Wir teilen die Daten mit einer Aufteilung von 80 zu 20 in Trainings- und Test-Datasets auf. Nach dem Training erreicht das Modell eine Genauigkeit von 99% sowohl für den Trainings- als auch für den Testsatz. Wir würden eine geringere Genauigkeit im Test-Dataset erwarten. Daher sehen wir uns die Daten noch einmal an und stellen fest, dass viele der Beispiele im Test-Dataset Duplikate von Beispielen im Trainings-Dataset sind. Wir haben doppelte Einträge für dieselbe Spam-E-Mail aus unserer Eingabedatenbank nicht entfernt, bevor wir die Daten aufgeteilt haben. Wir haben versehentlich mit einigen unserer Testdaten trainiert. Daher messen wir nicht mehr genau, wie gut sich unser Modell auf neue Daten verallgemeinert.