Začněte nyníZačněte zdarma

Model doby letu: Regularizace!

V předchozím cvičení jsi přidal/a do modelu doby letu více prediktorů. Model si vedl dobře na testovacích datech, ale s tolika koeficienty bylo těžké ho interpretovat.

V tomto cvičení použiješ Lasso regresi (regularizovanou L1 penalizací) k vytvoření úspornějšího modelu. Mnohé z koeficientů výsledného modelu budou nastaveny na nulu. To znamená, že k modelu skutečně přispívá jen část prediktorů. I přes jednodušší model stále dosahuje dobrého RMSE na testovacích datech.

Použiješ konkrétní hodnotu síly regularizace. Jak najít tu nejlepší hodnotu pomocí křížové validace, se dozvíš později.

Data (stejná jako v předchozím cvičení) jsou dostupná jako flights, náhodně rozdělená na flights_train a flights_test.

Tento model má dva parametry: λ (regParam) a α (elasticNetParam), kde α určuje typ regularizace a λ udává její sílu.

Toto cvičení je součástí kurzu

Machine Learning with PySpark

Zobrazit kurz

Pokyny k cvičení

  • Natrénuj model lineární regrese na trénovacích datech. Nastav sílu regularizace na 1.
  • Vypočítej RMSE na testovacích datech.
  • Prohlédni si koeficienty modelu.
  • Kolik z koeficientů se rovná nule?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód