โมเดลระยะเวลาเที่ยวบิน: เพิ่ม Feature มากขึ้น!
มาเพิ่ม feature ให้กับโมเดลกัน การเพิ่ม feature ไม่ได้หมายความว่าโมเดลจะดีขึ้นเสมอไป บาง feature อาจช่วยปรับปรุงโมเดล ในขณะที่บาง feature อาจทำให้ผลลัพธ์แย่ลง
อย่างไรก็ตาม feature ที่มากขึ้น ย่อม ทำให้โมเดลซับซ้อนและตีความยากขึ้นเสมอ
ต่อไปนี้คือ feature ที่จะใช้ในโมเดลถัดไป:
kmorg(สนามบินต้นทาง, เข้ารหัสแบบ one-hot, 8 ระดับ)depart(เวลาออกเดินทาง, จัดกลุ่มทุก 3 ชั่วโมง, เข้ารหัสแบบ one-hot, 8 ระดับ)dow(วันในสัปดาห์ที่ออกเดินทาง, เข้ารหัสแบบ one-hot, 7 ระดับ) และmon(เดือนที่ออกเดินทาง, เข้ารหัสแบบ one-hot, 12 ระดับ)
ทั้งหมดนี้ถูก assemble ไว้ในคอลัมน์ features ซึ่งเป็น sparse representation ของ 32 คอลัมน์ (จำไว้ว่าการเข้ารหัสแบบ one-hot จะสร้างคอลัมน์น้อยกว่าจำนวนระดับอยู่หนึ่งคอลัมน์เสมอ)
ข้อมูลอยู่ในรูปแบบ flights และถูกแบ่งแบบสุ่มเป็น flights_train และ flights_test
แบบฝึกหัดนี้ใช้ข้อมูลเที่ยวบินชุดย่อยขนาดเล็ก
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning with PySpark
คำแนะนำการฝึกหัด
- Fit โมเดล linear regression กับข้อมูลชุด training
- สร้างค่าพยากรณ์สำหรับข้อมูลชุด testing
- คำนวณค่า RMSE บนข้อมูลชุด testing
- ดูค่าสัมประสิทธิ์ (coefficients) ของโมเดล มีค่าใดเป็นศูนย์บ้างหรือไม่?
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from pyspark.ml.regression import ____
from pyspark.ml.evaluation import ____
# Fit linear regression model to training data
regression = ____(____).____(____)
# Make predictions on testing data
predictions = regression.____(____)
# Calculate the RMSE on testing data
rmse = ____(____).____(____)
print("The test RMSE is", rmse)
# Look at the model coefficients
coeffs = regression.____
print(coeffs)