สุ่มค้นหาด้วย Random Forest
เพื่อเสริมความเข้าใจเรื่องการสุ่มตัวอย่าง มาลองทำแบบฝึกหัดในลักษณะเดียวกัน แต่เปลี่ยนไปใช้ไฮเปอร์พารามิเตอร์และอัลกอริทึมที่แตกต่างออกไป
เหมือนกับที่ทำมาก่อน ให้สร้าง list ของไฮเปอร์พารามิเตอร์ที่สามารถนำมารวมกันเป็น list of lists ได้ โดยจะใช้ไฮเปอร์พารามิเตอร์ criterion, max_depth และ max_features ของอัลกอริทึม random forest จากนั้นสุ่มเลือกชุดค่าผสมของไฮเปอร์พารามิเตอร์เพื่อเตรียมพร้อมสำหรับการทำ random search
ในงานนี้จะใช้แพ็กเกจสำหรับสุ่มตัวอย่างที่แตกต่างออกไปเล็กน้อย คือ random.sample()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับ Hyperparameter ใน Python
คำแนะนำการฝึกหัด
- สร้าง list ที่มีค่า
'gini'และ'entropy'สำหรับcriterionและ list ที่มีค่า"auto","sqrt","log2",Noneสำหรับmax_features - สร้าง list ที่มีค่าตั้งแต่ 3 ถึง 55 (รวมทั้งสองค่า) สำหรับไฮเปอร์พารามิเตอร์
max_depthแล้วกำหนดให้กับตัวแปรmax_depth_listโปรดจำไว้ว่าrange(N,M)จะสร้าง list จากNถึงM-1 - นำ list เหล่านี้มารวมกันเป็น list of lists โดยใช้
product()เพื่อใช้สุ่มตัวอย่าง - สุ่มเลือกโมเดล 150 โมเดลจาก list ที่รวมแล้ว และแสดงผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create lists for criterion and max_features
criterion_list = ____
max_feature_list = ____
# Create a list of values for the max_depth hyperparameter
max_depth_list = list(range(____,____))
# Combination list
combinations_list = [list(x) for x in product(____, ____, ____)]
# Sample hyperparameter combinations for a random search
combinations_random_chosen = random.sample(____, ____)
# Print the result
print(____)