Model durasi penerbangan: Regularization!
Pada latihan sebelumnya Anda menambahkan lebih banyak prediktor ke model durasi penerbangan. Model bekerja baik pada data pengujian, tetapi dengan begitu banyak koefisien, model menjadi sulit ditafsirkan.
Pada latihan ini Anda akan menggunakan regresi Lasso (diregularisasi dengan penalti L1) untuk membuat model yang lebih hemat parameter. Banyak koefisien dalam model hasilnya akan disetel ke nol. Ini berarti hanya sebagian prediktor yang benar-benar berkontribusi pada model. Meski modelnya lebih sederhana, model ini tetap menghasilkan RMSE yang baik pada data pengujian.
Anda akan menggunakan nilai tertentu untuk kekuatan regularisasi. Nanti Anda akan mempelajari cara menemukan nilai terbaik menggunakan validasi silang.
Data (sama seperti latihan sebelumnya) tersedia sebagai flights, yang dibagi acak menjadi flights_train dan flights_test.
Ada dua parameter untuk model ini, λ (regParam) dan α (elasticNetParam), di mana α menentukan jenis regularisasi dan λ memberikan kekuatan regularisasi.
Latihan ini adalah bagian dari kursus
Machine Learning dengan PySpark
Petunjuk latihan
- Latih model regresi linear pada data pelatihan. Atur kekuatan regularisasi menjadi 1.
- Hitung RMSE pada data pengujian.
- Lihat koefisien model.
- Berapa banyak koefisien yang bernilai nol?
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)