เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

โมเดลระยะเวลาเที่ยวบิน: Regularization!

ในแบบฝึกหัดก่อนหน้า คุณได้เพิ่ม predictor เข้าไปในโมเดลระยะเวลาเที่ยวบิน โมเดลทำงานได้ดีบนข้อมูลทดสอบ แต่เมื่อมี coefficient จำนวนมาก ก็ยากที่จะตีความผลลัพธ์

ในแบบฝึกหัดนี้จะใช้ Lasso regression (ที่ใช้ L1 penalty ในการ regularize) เพื่อสร้างโมเดลที่กระชับขึ้น coefficient หลายตัวในโมเดลที่ได้จะถูกกำหนดเป็นศูนย์ หมายความว่ามีเพียง predictor บางส่วนเท่านั้นที่ส่งผลต่อโมเดลจริง แม้โมเดลจะเรียบง่ายกว่า แต่ก็ยังให้ค่า RMSE ที่ดีบนข้อมูลทดสอบ

จะใช้ค่าที่กำหนดไว้สำหรับความแข็งแกร่งของ regularization และในภายหลังจะได้เรียนรู้วิธีหาค่าที่เหมาะสมที่สุดด้วย cross validation

ข้อมูล (ชุดเดียวกับแบบฝึกหัดก่อนหน้า) พร้อมใช้งานในชื่อ flights โดยแบ่งแบบสุ่มเป็น flights_train และ flights_test

โมเดลนี้มีพารามิเตอร์สองตัว ได้แก่ λ (regParam) และ α (elasticNetParam) โดย α กำหนด ประเภท ของ regularization และ λ กำหนด ความแข็งแกร่ง ของ regularization

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Fit โมเดล linear regression กับข้อมูลเทรน โดยกำหนดความแข็งแกร่งของ regularization เป็น 1
  • คำนวณค่า RMSE บนข้อมูลทดสอบ
  • ตรวจสอบค่า coefficient ของโมเดล
  • มี coefficient กี่ตัวที่มีค่าเท่ากับศูนย์?

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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)
แก้ไขและรันโค้ด