การแสดงผลแบบ Coarse to Fine
ในแบบฝึกหัดนี้จะได้ลองทำขั้นตอนแรกของการค้นหาแบบ Coarse to Fine ซึ่งเริ่มจากการวิเคราะห์ผลลัพธ์ของการค้นหาแบบสุ่มเบื้องต้นที่ครอบคลุมพื้นที่การค้นหาขนาดใหญ่ แล้วพิจารณาว่าขั้นตอนต่อไปควรเป็นอย่างไรเพื่อให้การค้นหาไฮเปอร์พารามิเตอร์ละเอียดยิ่งขึ้น
มีข้อมูลพร้อมใช้งานดังนี้:
combinations_list— รายการของการผสมไฮเปอร์พารามิเตอร์ที่ใช้ในการค้นหาแบบสุ่มresults_df— DataFrame ที่บันทึกการผสมไฮเปอร์พารามิเตอร์แต่ละแบบพร้อมค่าความแม่นยำจากการทดลองทั้งหมด 500 ครั้ง แต่ละไฮเปอร์พารามิเตอร์คือหนึ่งคอลัมน์ โดยมีชื่อไฮเปอร์พารามิเตอร์เป็น headervisualize_hyperparameter()— ฟังก์ชันที่รับคอลัมน์จาก DataFrame (เป็น string) แล้วสร้างกราฟกระจายเพื่อเปรียบเทียบค่าในคอลัมน์นั้นกับคะแนนความแม่นยำ ตัวอย่างการเรียกใช้งาน:visualize_hyperparameter('accuracy')
หากต้องการดูนิยามของฟังก์ชัน visualize_hyperparameter() ให้รันโค้ดนี้:
import inspect
print(inspect.getsource(visualize_hyperparameter))
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับ Hyperparameter ใน Python
คำแนะนำการฝึกหัด
- ตรวจสอบ (โดยการพิมพ์ออกมา) ขนาดของ
combinations_listเพื่อยืนยันว่าจำเป็นต้องเริ่มต้นด้วยการค้นหาแบบสุ่ม - เรียงลำดับ
results_dfตามค่าความแม่นยำ แล้วพิมพ์ 10 แถวแรกออกมา มีข้อมูลเชิงลึกที่ชัดเจนหรือไม่? ระวังด้วยว่าขนาดตัวอย่างยังน้อยอยู่ - ตรวจสอบ (โดยการพิมพ์ออกมา) ว่าใช้ไฮเปอร์พารามิเตอร์ใดบ้างในการค้นหาครั้งนี้ ซึ่งก็คือชื่อคอลัมน์ใน
results_df - เรียกใช้
visualize_hyperparameter()กับไฮเปอร์พารามิเตอร์แต่ละตัวทีละค่า (max_depth,min_samples_leaf,learn_rate) สังเกตว่ามีแนวโน้มใดที่น่าสนใจหรือไม่
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Confirm the size of the combinations_list
print(____(____))
# Sort the results_df by accuracy and print the top 10 rows
print(results_df.____(by=____, ascending=False).head(____))
# Confirm which hyperparameters were used in this search
print(results_df.____)
# Call visualize_hyperparameter() with each hyperparameter in turn
visualize_hyperparameter(____)
visualize_hyperparameter(____)
visualize_hyperparameter(____)