Informatik

Trainings- und Testdaten

Ein KI-System soll auf neue Daten gut reagieren, nicht nur auf die, die es schon kennt. Deshalb teilt man seine Daten in zwei Gruppen: Trainingsdaten, an denen es lernt, und Testdaten, an denen man prüft, ob es wirklich gelernt hat.

Warum aufteilen?

Stell dir vor, du lernst für eine Mathearbeit, indem du alle 20 Übungsaufgaben auswendig lernst — jede Zahl, jeden Schritt. In der Arbeit kommen genau diese 20 Aufgaben. Du schreibst eine 1. Aber kommst du zurecht, wenn die Aufgaben andere Zahlen haben? Das Auswendiglernen hat dich nicht auf neue Aufgaben vorbereitet.

Genau das passiert einem KI-System, das auf denselben Daten trainiert und getestet wird, auf denen es trainiert wurde. Es hat die Antworten „auswendig gelernt" und sieht gut aus — bis es neue Daten sieht.

Trainingsdaten sind die Daten, an denen das KI-System lernt. Jeder Datensatz trägt ein Etikett (Label) mit der richtigen Antwort.

Testdaten sind separate Daten, die das System nicht beim Training gesehen hat. Sie werden verwendet, um zu prüfen, ob das System verallgemeinert hat — also auch auf unbekannte Daten die richtigen Antworten gibt.

Trainiert und testet man auf denselben Daten, misst man Auswendiglernen, nicht Verallgemeinerung. Die Trefferquote wäre irreführend hoch. Erst die Trefferquote auf ungesehenen Testdaten sagt, wie gut das System wirklich ist.

Die Aufteilung in der Praxis

Typischerweise teilt man die Daten so:

  • Trainingsdaten: ca. 80 % der Daten
  • Testdaten: ca. 20 % der Daten

Die Testdaten werden beim Training nicht verwendet. Erst wenn das Modell fertig ist, testet man einmal mit den Testdaten und notiert die Trefferquote.

Eine Datenpunkt-Klasse

Wir brauchen zuerst eine Klasse für einen einzelnen Datenpunkt. Jeder Datenpunkt hat Merkmale (hier: zwei Zahlen, z.B. Gewicht und Süßigkeit einer Frucht) und ein Label (z.B. „Apfel" oder „Birne").

a) Ergänze das Programm um einen dritten Apfel (200 g, Süßigkeit 6) und eine dritte Birne (110 g, Süßigkeit 5). Gib alle sechs Punkte aus.

b) Was passiert, wenn du die Reihenfolge der Konstruktorparameter vertauschst — z.B. new Datenpunkt("Apfel", 150, 7)? Überlege zuerst, dann probiere es aus.

Tipp zu b)

Der Konstruktor erwartet drei Parameter in der Reihenfolge double, double, String. Wenn du als erstes Argument einen String übergibst, passt das nicht zum Typ double. Die Online-IDE meldet einen Fehler.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Selbsttest

Trainings- und Testdaten

Teilbare URL erstellen

Abschnitte auswählen