Page cover

Datenaufteilung

Die Aufteilung der Daten in Trainings-, Validierungs- und Testdaten ist entscheidend, um sicherzustellen, dass das Modell nicht nur die Trainingsdaten lernt und auf diese überangepasst wird (engl. Overfitting), sondern auch gut auf neuen, unbekannten Daten generalisiert (Generalisierungsfähigkeit). Diese Praxis trägt dazu bei, realistische Bewertungen der Modellleistung in verschiedenen Situationen zu erhalten.

  • Trainingsdatensatz:

    • Der Trainingsdatensatz wird verwendet, um das Modell zu trainieren. Das bedeutet, dass die Modellparameter basierend auf diesen Daten angepasst werden, um Muster und Beziehungen in den Trainingsdaten zu lernen.

    • Der Großteil der verfügbaren Daten wird oft dem Trainingsdatensatz zugewiesen, typischerweise etwa 70-80 % der Gesamtdaten.

  • Validierungsdatensatz:

    • Der Validierungsdatensatz dient zur Feinabstimmung von Hyperparametern und zur Vermeidung von Überanpassung. Während des Trainingsprozesses wird das Modell auf den Trainingsdaten trainiert und auf dem Validierungsdatensatz überprüft. Die Leistung auf dem Validierungsdatensatz beeinflusst die Anpassung des Modells, um eine optimale Generalisierung zu gewährleisten.

    • Normalerweise wird ein kleiner Teil des Trainingsdatensatzes, etwa 10-20 %, für das Validierungsset verwendet.

  • Testdatensatz:

    • Der Testdatensatz wird verwendet, um die Leistung des Modells zu evaluieren, nachdem es auf dem Trainingsdatensatz trainiert wurde. Der Testdatensatz enthält Daten, die das Modell während des Trainingsprozesses nicht gesehen hat, und ermöglicht eine objektive Bewertung der Modellfähigkeiten auf unbekannten Daten.

    • Üblicherweise wird etwa 10-20 % der Daten für den Testdatensatz reserviert.

Der folgende Code zeigt, wie der Iris-Datensatz aufgeteilt werden kann. Zunächst wird er in Trainingsdaten und Testdaten aufgeteilt. Im nächsten Schritt wird der Trainingsdatensatz, in Trainings- und Validierungsdaten aufgeteilt.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# Laden des Iris-Datensatzes
iris = load_iris()

# Erstellung eines Pandas DataFrame aus den Iris-Daten
X, y = iris.data, iris.target

# Aufteilung des Datensatzes in Trainings- und Testdaten
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Aufteilung des Trainingsdatensatzes in Trainings- und Validierungsdaten
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=42)

# - X_train und y_train für das Training des Modells
# - X_val und y_val für die Validierung des Modells während des Trainings
# - X_test und y_test für die finale Evaluation des trainierten Modells

Nach diesen Datenvorverarbeitungsschritten sind die Daten bereit für das Training eines ML-Modells.

Mehr erfahren: Medium/A Guide to Data Splitting in Machine Learningarrow-up-right, Medium/Five Methods for Data Splitting in Machine Learningarrow-up-right

Last updated