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
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)