การเลือกตัวแปรที่ดีที่สุดถัดไป
วิธีการเลือกตัวแปรแบบ forward stepwise จะเริ่มต้นด้วยชุดตัวแปรว่างเปล่า แล้วดำเนินการทีละขั้น โดยในแต่ละขั้นจะเพิ่มตัวแปรที่ดีที่สุดเข้าไป สำหรับแบบฝึกหัดนี้ได้เตรียมฟังก์ชันที่เป็นประโยชน์ไว้ให้ 2 ตัว
ฟังก์ชัน auc จะคำนวณค่า AUC ของโมเดลที่ใช้ชุดตัวแปร variables ที่กำหนดเป็นตัวพยากรณ์ ส่วนฟังก์ชัน next_best จะคำนวณว่าควรเพิ่มตัวแปรใดเข้าไปในรายการตัวแปรในขั้นถัดไป
ในแบบฝึกหัดนี้ จะได้ทดลองใช้ฟังก์ชันทั้งสองเพื่อทำความเข้าใจวัตถุประสงค์ของแต่ละฟังก์ชัน โดยจะคำนวณค่า AUC ของชุดตัวแปรที่กำหนด คำนวณว่าควรเพิ่มตัวแปรใดในขั้นถัดไป และตรวจสอบว่าผลลัพธ์ที่ได้ให้ค่า AUC ที่ดีที่สุดจริง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์เชิงพยากรณ์เบื้องต้นด้วย Python
คำแนะนำการฝึกหัด
- ฟังก์ชัน
aucได้เตรียมไว้ให้แล้ว ให้คำนวณค่า AUC ของโมเดลที่ใช้"max_gift","mean_gift"และ"min_gift"เป็นตัวพยากรณ์ โดยส่งตัวแปรเหล่านี้ในรูปแบบลิสต์เป็นอาร์กิวเมนต์แรกของฟังก์ชันauc - ฟังก์ชัน
next_bestได้เตรียมไว้ให้แล้ว ให้คำนวณว่าควรเพิ่มตัวแปรใดในขั้นถัดไป โดยกำหนดให้"max_gift","mean_gift"และ"min_gift"อยู่ในโมเดลปัจจุบัน และมี"age"กับ"gender_F"เป็นตัวแปรผู้สมัครถัดไป อาร์กิวเมนต์แรกของฟังก์ชันnext_bestคือลิสต์ของตัวแปรปัจจุบัน ส่วนอาร์กิวเมนต์ที่สองคือลิสต์ของตัวพยากรณ์ที่เป็นผู้สมัคร - คำนวณค่า AUC ของโมเดลที่ใช้
"max_gift","mean_gift","min_gift"และ"age"เป็นตัวพยากรณ์ - คำนวณค่า AUC ของโมเดลที่ใช้
"max_gift","mean_gift","min_gift"และ"gender_F"เป็นตัวพยากรณ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Calculate the AUC of a model that uses "max_gift", "mean_gift" and "min_gift" as predictors
auc_current = ____([____, ____, ____], ["target"], basetable)
print(round(auc_current,4))
# Calculate which variable among "age" and "gender_F" should be added to the variables "max_gift", "mean_gift" and "min_gift"
next_variable = ____([____, ____, ____], [____, ____], ["target"], basetable)
print(next_variable)
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "age" as predictors
auc_current_age = ____([____, ____, ____, ____], ["target"], basetable)
print(round(auc_current_age,4))
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "gender_F" as predictors
auc_current_gender_F = ____([____], ["target"], basetable)
print(round(auc_current_gender_F,4))