Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Überanpassung | Auswahl des Besten Modells
Lineare Regression mit Python

bookÜberanpassung

Overfitting

Betrachten Sie die beiden Regressionslinien unten. Welche ist besser?

Die Kennzahlen deuten darauf hin, dass das zweite Modell besser ist, daher verwenden wir es, um X_new = [0.2, 0.5, 2.7] vorherzusagen. Nach dem Vergleich der Vorhersagen mit den tatsächlichen Werten schneidet jedoch das erste Modell besser ab.

Dies geschieht, weil das zweite Modell overfitted ist — es ist zu komplex und passt sich den Trainingsdaten zu genau an, wodurch es nicht auf neue Fälle verallgemeinert werden kann.

Underfitting

Underfitting tritt auf, wenn ein Modell zu einfach ist, um selbst die Trainingsdaten angemessen abzubilden, was ebenfalls zu schlechten Vorhersagen bei unbekannten Daten führt.

Es ist möglich, visuell zu beurteilen, ob das Modell underfittet oder overfittet.

Da hochdimensionale Modelle nicht visualisiert werden können, ist eine alternative Methode zur Erkennung von Overfitting oder Underfitting erforderlich.

Train-Test-Split

Um die Leistung auf unbekannten Daten abzuschätzen, wird der Datensatz in ein Trainings- und ein Testset mit bekannten Zielwerten aufgeteilt.

Das Training erfolgt auf dem Trainingsset. Metriken werden sowohl für das Trainings- als auch für das Testset berechnet, um die Leistung zu vergleichen.

Die Aufteilung muss zufällig erfolgen. Typischerweise werden 20–30% für das Testset und 70–80% für das Training verwendet. Scikit-learn bietet hierfür eine einfache Möglichkeit.

Zum Beispiel kann das Trainingsset im Verhältnis 70 % Training/30 % Test wie folgt aufgeteilt werden:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Anhand der MSE-Werte der Modelle bestimmen, ob sie das Trainingsset überanpassen/unteranpassen (Datensatz ist derselbe).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 5.26

bookÜberanpassung

Swipe um das Menü anzuzeigen

Overfitting

Betrachten Sie die beiden Regressionslinien unten. Welche ist besser?

Die Kennzahlen deuten darauf hin, dass das zweite Modell besser ist, daher verwenden wir es, um X_new = [0.2, 0.5, 2.7] vorherzusagen. Nach dem Vergleich der Vorhersagen mit den tatsächlichen Werten schneidet jedoch das erste Modell besser ab.

Dies geschieht, weil das zweite Modell overfitted ist — es ist zu komplex und passt sich den Trainingsdaten zu genau an, wodurch es nicht auf neue Fälle verallgemeinert werden kann.

Underfitting

Underfitting tritt auf, wenn ein Modell zu einfach ist, um selbst die Trainingsdaten angemessen abzubilden, was ebenfalls zu schlechten Vorhersagen bei unbekannten Daten führt.

Es ist möglich, visuell zu beurteilen, ob das Modell underfittet oder overfittet.

Da hochdimensionale Modelle nicht visualisiert werden können, ist eine alternative Methode zur Erkennung von Overfitting oder Underfitting erforderlich.

Train-Test-Split

Um die Leistung auf unbekannten Daten abzuschätzen, wird der Datensatz in ein Trainings- und ein Testset mit bekannten Zielwerten aufgeteilt.

Das Training erfolgt auf dem Trainingsset. Metriken werden sowohl für das Trainings- als auch für das Testset berechnet, um die Leistung zu vergleichen.

Die Aufteilung muss zufällig erfolgen. Typischerweise werden 20–30% für das Testset und 70–80% für das Training verwendet. Scikit-learn bietet hierfür eine einfache Möglichkeit.

Zum Beispiel kann das Trainingsset im Verhältnis 70 % Training/30 % Test wie folgt aufgeteilt werden:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Anhand der MSE-Werte der Modelle bestimmen, ob sie das Trainingsset überanpassen/unteranpassen (Datensatz ist derselbe).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
some-alt