การค้นหาแบบสุ่ม (Randomized Search)
# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)
# Fit the model
grid_search.fit(X, y)
ในโค้ดจากแบบฝึกหัดก่อนหน้านี้ คุณอาจสังเกตได้ว่าบรรทัดแรกรันได้อย่างรวดเร็ว ในขณะที่การเรียก .fit() ใช้เวลาหลายวินาทีในการประมวลผล
สาเหตุก็คือ .fit() คือขั้นตอนที่ทำการค้นหา Grid Search จริง ๆ ซึ่งในกรณีของเราต้องลองชุดค่าพารามิเตอร์หลายชุดมาก ยิ่ง Hyperparameter Grid มีขนาดใหญ่ขึ้น Grid Search ก็จะยิ่งช้าลง วิธีแก้ปัญหาคือแทนที่จะลองทุกชุดค่าผสม เราสามารถ สุ่ม ข้ามไปลองชุดค่าผสมต่าง ๆ แทนได้ แม้จะมีโอกาสเล็กน้อยที่อาจพลาดชุดค่าผสม ที่ดีที่สุด แต่จะช่วยประหยัดเวลาได้มาก หรือช่วยให้ปรับจูน Hyperparameter ได้มากขึ้นในเวลาเท่าเดิม
ใน scikit-learn คุณสามารถทำสิ่งนี้ได้ด้วย RandomizedSearchCV ซึ่งมี API เหมือนกับ GridSearchCV ทุกประการ ต่างกันตรงที่ต้องระบุ distribution ของพารามิเตอร์สำหรับสุ่มตัวอย่าง แทนที่จะระบุค่า Hyperparameter แบบตายตัว มาลองใช้งานกันเลย! โดย Parameter Distribution ถูกกำหนดไว้ให้แล้ว พร้อมกับ Random Forest Classifier ชื่อ clf
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Marketing Analytics: การพยากรณ์การเลิกใช้บริการของลูกค้าด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import RandomizedSearchCV