IniziaInizia gratis

Modello per la durata dei voli: Regularization!

Nel precedente esercizio hai aggiunto più predittori al modello sulla durata dei voli. Il modello si è comportato bene sui dati di test, ma con così tanti coefficienti era difficile da interpretare.

In questo esercizio userai la regressione Lasso (regolarizzata con una penalità L1) per creare un modello più parsimonioso. Molti dei coefficienti nel modello risultante verranno impostati a zero. Questo significa che solo un sottoinsieme dei predittori contribuisce effettivamente al modello. Nonostante la maggiore semplicità, il modello ottiene comunque un buon RMSE sui dati di test.

Userai un valore specifico per l'intensità della regolarizzazione. Più avanti imparerai come trovare il valore migliore usando la validazione incrociata.

I dati (gli stessi dell'esercizio precedente) sono disponibili come flights, suddivisi casualmente in flights_train e flights_test.

Ci sono due parametri per questo modello, λ (regParam) e α (elasticNetParam), dove α determina il tipo di regolarizzazione e λ ne determina l'intensità.

Questo esercizio fa parte del corso

Machine Learning con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Adatta un modello di regressione lineare ai dati di training. Imposta l'intensità della regolarizzazione a 1.
  • Calcola l'RMSE sui dati di test.
  • Osserva i coefficienti del modello.
  • Quanti coefficienti sono uguali a zero?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice