LoslegenKostenlos loslegen

Flugdauer-Modell: Regulierung!

In der letzten Aufgabe hast du dem Modell für die Flugdauer weitere Prädiktoren hinzugefügt. Das Modell hat bei den Testdaten gut funktioniert, aber mit so vielen Koeffizienten war es schwer zu verstehen.

In dieser Übung wirst du die Lasso-Regression (reguliert mit einer L1-Strafe) verwenden, um ein sparsameres Modell zu erstellen. Viele der Koeffizienten im fertigen Modell werden auf Null gesetzt. Das heißt, dass nur ein Teil der Prädiktoren wirklich zum Modell beiträgt. Trotz des einfacheren Modells liefert es immer noch einen guten RMSE für die Testdaten.

Du wirst einen bestimmten Wert für die Regularisierungsstärke verwenden. Später lernst du, wie du mit Kreuzvalidierung den besten Wert findest.

Die Daten (die gleichen wie in der vorherigen Übung) sind unter flights verfügbar und zufällig in flights_train und flights_test aufgeteilt.

Dieses Modell hat zwei Parameter: λ (regParam) und α (elasticNetParam), wobei α die Art der Regularisierung festlegt und λ die Stärke der Regularisierung angibt.

Diese Übung ist Teil des Kurses

Maschinelles Lernen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Pass ein lineares Regressionsmodell an die Trainingsdaten an. Stell die Regularisierungsstärke auf 1.
  • Berechne den RMSE für die Testdaten.
  • Schau dir mal die Modellkoeffizienten an.
  • Wie viele der Koeffizienten sind gleich Null?

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

from pyspark.ml.regression import LinearRegression
from pyspark.ml.evaluation import RegressionEvaluator

# Fit Lasso model (λ = 1, α = 1) to training data
regression = ____(____, ____, elasticNetParam=1).____(____)

# Calculate the RMSE on testing data
rmse = ____(____).____(____)
print("The test RMSE is", rmse)

# Look at the model coefficients
coeffs = regression.____
print(coeffs)

# Number of zero coefficients
zero_coeff = sum([____ == ____ for beta in regression.coefficients])
print("Number of coefficients equal to 0:", zero_coeff)
Code bearbeiten und ausführen