กลับสู่การถดถอยด้วย Stacking
ในบทที่ 1 เราจัดการกับคะแนนแอปในรูปแบบของปัญหาการถดถอย โดยพยากรณ์คะแนนในช่วง 1 ถึง 5 แต่ในบทนี้ เราได้เปลี่ยนมาจัดการในรูปแบบของปัญหาการจำแนกประเภท โดยปัดคะแนนให้เป็นจำนวนเต็มที่ใกล้ที่สุด เพื่อฝึกการใช้ StackingRegressor เราจะกลับมาใช้แนวทางการถดถอยอีกครั้ง
เช่นเดิม ฟีเจอร์อินพุตได้รับการทำให้เป็นมาตรฐานด้วย StandardScaler() ไว้ให้แล้ว
เมตริกที่ใช้ประเมินผลคือ MAE (mean absolute error) ในบทที่ 1 ค่า MAE อยู่ที่ประมาณ 0.61 มาดูกันว่าวิธี Stacking ensemble จะช่วยลดความคลาดเคลื่อนนั้นได้หรือไม่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Ensemble Methods ใน Python
คำแนะนำการฝึกหัด
- สร้าง Decision tree regressor โดยกำหนด
min_samples_leaf = 11และmin_samples_split = 33 - สร้าง Linear regression แบบค่าเริ่มต้น
- สร้างโมเดล
Ridgeregression โดยกำหนดrandom_state = 500 - สร้างและฝึก
StackingRegressorโดยส่งregressorsและmeta_regressorเข้าไป
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Instantiate the 1st-layer regressors
reg_dt = ____(____, ____, random_state=500)
reg_lr = ____
reg_ridge = ____
# Instantiate the 2nd-layer regressor
reg_meta = LinearRegression()
# Build the Stacking regressor
reg_stack = ____
reg_stack.____
# Evaluate the performance on the test set using the MAE metric
pred = reg_stack.predict(X_test)
print('MAE: {:.3f}'.format(mean_absolute_error(y_test, pred)))