Überanpassung
Overfitting
Betrachten Sie die beiden Regressionslinien unten. Welche ist besser?
Die Metriken zeigen, dass die zweite besser ist. Also verwenden wir sie, um neue Werte vorherzusagen! Wir benötigen die Vorhersagen für X_new = [0.2,0.5,2.7]
. Doch als wir die tatsächlichen Zielwerte für das vorhergesagte X_new
erhielten, stellte sich heraus, dass das erste Modell eine deutlich bessere Vorhersage lieferte.
Das liegt daran, dass das zweite Modell das Trainingsset überanpasst. Overfitting bedeutet, dass das erstellte Modell zu komplex ist und die Trainingsdaten perfekt abbildet, aber unbekannte Fälle nicht gut vorhersagen kann.
Underfitting
Es gibt noch ein weiteres Konzept, Underfitting. Dies tritt auf, wenn das erstellte Modell so einfach ist, dass es nicht einmal die Trainingsdaten gut abbildet. In solchen Fällen sind auch die Vorhersagen für unbekannte Instanzen fehlerhaft.
Daher kann versucht werden, visuell zu beurteilen, ob das Modell underfittet oder overfittet.
Es ist bereits bekannt, dass Multiple Lineare Regression mit vielen Merkmalen nicht visualisiert werden kann. Gibt es eine andere Möglichkeit festzustellen, ob das Modell overfittet oder underfittet? Tatsächlich gibt es diese.
Aufteilung in Trainings- und Testdaten
Es ist wichtig zu wissen, wie das Modell bei unbekannten Instanzen abschneidet. Dafür werden unbekannte Instanzen mit den tatsächlichen Zielwerten benötigt. Diese tatsächlichen Zielwerte liegen jedoch nur im Trainingsdatensatz vor. Daher wird der Trainingsdatensatz in zwei Teile aufgeteilt: einen Trainingssatz und einen Testsatz.
Das Modell kann nun mit dem Trainingssatz erstellt werden. Anschließend werden die Metriken sowohl auf dem Trainingssatz (bekannte Instanzen) als auch auf dem Testsatz (unbekannte Instanzen) berechnet.
Es ist entscheidend, den Trainingssatz zufällig aufzuteilen. In der Regel werden etwa 20-30% des Trainingssatzes als Testsatz verwendet, während die verbleibenden 70-80% als Trainingssatz dienen. Scikit-learn stellt eine einfache Funktion zur Verfügung, um die Aufteilung zufällig vorzunehmen:
Zum Beispiel kann man den Trainingsdatensatz im Verhältnis 70 % Training/30 % Test aufteilen, indem man folgenden Code verwendet:
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)
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
What are some common signs of overfitting and underfitting in a model?
How does the train-test split help prevent overfitting?
Can you explain how to interpret the results after splitting the data into training and test sets?
Awesome!
Completion rate improved to 5.26
Überanpassung
Swipe um das Menü anzuzeigen
Overfitting
Betrachten Sie die beiden Regressionslinien unten. Welche ist besser?
Die Metriken zeigen, dass die zweite besser ist. Also verwenden wir sie, um neue Werte vorherzusagen! Wir benötigen die Vorhersagen für X_new = [0.2,0.5,2.7]
. Doch als wir die tatsächlichen Zielwerte für das vorhergesagte X_new
erhielten, stellte sich heraus, dass das erste Modell eine deutlich bessere Vorhersage lieferte.
Das liegt daran, dass das zweite Modell das Trainingsset überanpasst. Overfitting bedeutet, dass das erstellte Modell zu komplex ist und die Trainingsdaten perfekt abbildet, aber unbekannte Fälle nicht gut vorhersagen kann.
Underfitting
Es gibt noch ein weiteres Konzept, Underfitting. Dies tritt auf, wenn das erstellte Modell so einfach ist, dass es nicht einmal die Trainingsdaten gut abbildet. In solchen Fällen sind auch die Vorhersagen für unbekannte Instanzen fehlerhaft.
Daher kann versucht werden, visuell zu beurteilen, ob das Modell underfittet oder overfittet.
Es ist bereits bekannt, dass Multiple Lineare Regression mit vielen Merkmalen nicht visualisiert werden kann. Gibt es eine andere Möglichkeit festzustellen, ob das Modell overfittet oder underfittet? Tatsächlich gibt es diese.
Aufteilung in Trainings- und Testdaten
Es ist wichtig zu wissen, wie das Modell bei unbekannten Instanzen abschneidet. Dafür werden unbekannte Instanzen mit den tatsächlichen Zielwerten benötigt. Diese tatsächlichen Zielwerte liegen jedoch nur im Trainingsdatensatz vor. Daher wird der Trainingsdatensatz in zwei Teile aufgeteilt: einen Trainingssatz und einen Testsatz.
Das Modell kann nun mit dem Trainingssatz erstellt werden. Anschließend werden die Metriken sowohl auf dem Trainingssatz (bekannte Instanzen) als auch auf dem Testsatz (unbekannte Instanzen) berechnet.
Es ist entscheidend, den Trainingssatz zufällig aufzuteilen. In der Regel werden etwa 20-30% des Trainingssatzes als Testsatz verwendet, während die verbleibenden 70-80% als Trainingssatz dienen. Scikit-learn stellt eine einfache Funktion zur Verfügung, um die Aufteilung zufällig vorzunehmen:
Zum Beispiel kann man den Trainingsdatensatz im Verhältnis 70 % Training/30 % Test aufteilen, indem man folgenden Code verwendet:
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)
Danke für Ihr Feedback!