Kursinhalt
Lineare Regression mit Python
Lineare Regression mit Python
Überanpassung
Überanpassung
Betrachten Sie die beiden Regressionslinien unten. Welche ist besser?
Nun, die Metriken sagen uns, dass die zweite besser ist. Dann lass uns diese verwenden, um neue Werte vorherzusagen! Wir benötigen die Vorhersagen für X_new = [0.2,0.5,2.7]
. Aber als wir die tatsächlichen Zielwerte für die X_new
, die wir gerade vorhergesagt haben, erhielten, stellte sich heraus, dass das erste Modell eine viel bessere Vorhersage hatte.
Das liegt daran, dass das zweite Modell das Trainingsset überanpasst. Überanpassung tritt auf, wenn das erstellte Modell zu komplex ist, sodass es die Trainingsdaten perfekt anpassen kann, aber unbekannte Instanzen nicht so gut vorhersagt.
Unteranpassung
Es gibt auch noch ein weiteres Konzept, die Unteranpassung. Sie tritt auf, wenn das erstellte Modell zu einfach ist, sodass es nicht einmal die Trainingsdaten gut anpasst. In solchen Fällen sind die Vorhersagen der unbekannten Instanzen ebenfalls falsch.
So können wir versuchen, visuell zu erkennen, ob das Modell unteranpasst oder überanpasst.
Wir wissen bereits, dass wir Multiple Lineare Regression mit vielen Merkmalen nicht visualisieren können. Gibt es eine andere Möglichkeit festzustellen, ob das Modell überanpasst oder unteranpasst ist? Es stellt sich heraus, dass es eine gibt.
Train-Test-Split
Wir möchten wissen, wie das Modell bei unbekannten Instanzen abschneiden wird. Dafür benötigen wir die unbekannten Instanzen mit den tatsächlichen Zielwerten. Und wir haben nur tatsächliche Zielwerte im Trainingssatz. Der Weg ist, den Trainingssatz in zwei Sätze zu teilen, einen Trainingssatz und einen Testsatz.
Jetzt können wir das Modell mit dem Trainingssatz erstellen, die Metriken auf dem Trainingssatz (gesehenen Instanzen) berechnen und dann die Metriken auf dem Testsatz (ungesehenen Instanzen) berechnen.
Es ist wichtig, den Trainingssatz zufällig zu teilen. Normalerweise möchten Sie etwa 20-30% Ihres Trainingssatzes für den Testsatz verwenden, und die anderen 70-80% bleiben als Trainingssatz. Scikit-learn bietet eine einfache Funktion zum zufälligen Teilen des Satzes:
Zum Beispiel, um den Trainingssatz in 70% Training/30% Test zu teilen, können Sie den folgenden Code verwenden:
Danke für Ihr Feedback!