फ्लाइट ड्यूरेशन मॉडल: Regularization!
पिछले अभ्यास में आपने फ्लाइट ड्यूरेशन मॉडल में और अधिक predictors जोड़े थे। मॉडल ने टेस्टिंग डेटा पर अच्छा प्रदर्शन किया, लेकिन इतने सारे coefficients होने के कारण उसकी व्याख्या करना मुश्किल था।
इस अभ्यास में आप Lasso regression (L1 penalty के साथ regularized) का उपयोग करके एक अधिक संक्षिप्त मॉडल बनाएँगे। नतीजे वाले मॉडल में कई coefficients शून्य हो जाएँगे। इसका मतलब है कि केवल कुछ predictors ही वास्तव में मॉडल में योगदान देते हैं। मॉडल सरल होने के बावजूद, यह टेस्टिंग डेटा पर अच्छा RMSE देता है।
आप regularization strength के लिए एक निश्चित मान उपयोग करेंगे। आगे आप cross validation से सबसे अच्छा मान ढूँढना सीखेंगे।
डेटा (पिछले अभ्यास जैसा) flights के रूप में उपलब्ध है, जिसे रैंडम तरीके से flights_train और flights_test में बाँटा गया है।
इस मॉडल के दो पैरामीटर हैं, λ (regParam) और α (elasticNetParam), जहाँ α regularization के प्रकार को निर्धारित करता है और λ regularization की तीव्रता (strength) को दर्शाता है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Machine Learning
अभ्यास निर्देश
- ट्रेनिंग डेटा पर एक linear regression मॉडल फिट करें। Regularization strength को 1 पर सेट करें।
- टेस्टिंग डेटा पर RMSE 계산 करें।
- मॉडल के coefficients देखें।
- इनमें से कितने coefficients शून्य के बराबर हैं?
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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)