ปรับแต่ง gamma และ C พร้อมกันด้วย GridSearchCV
ในแบบฝึกหัดก่อนหน้า ค่าที่ดีที่สุดของ gamma คือ 0.001 โดยใช้ค่าดีฟอลต์ของ C ซึ่งเท่ากับ 1 ในแบบฝึกหัดนี้ คุณจะค้นหาค่าผสมที่ดีที่สุดของ C และ gamma โดยใช้ GridSearchCV
เช่นเดียวกับแบบฝึกหัดก่อนหน้า ชุดข้อมูลตัวเลข 2-vs-not-2 โหลดไว้แล้ว แต่คราวนี้แบ่งออกเป็นตัวแปร X_train, y_train, X_test และ y_test แม้ว่า cross-validation จะแบ่งชุดข้อมูลฝึกออกเป็นส่วน ๆ อยู่แล้ว แต่การแยกชุดทดสอบไว้ต่างหากก็เป็นแนวทางที่ดี เพื่อตรวจสอบว่าผลลัพธ์ของ cross-validation นั้นสมเหตุสมผล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Linear Classifiers ใน Python
คำแนะนำการฝึกหัด
- รัน
GridSearchCVเพื่อค้นหาไฮเปอร์พารามิเตอร์ที่ดีที่สุดโดยใช้ชุดข้อมูลฝึก - พิมพ์ค่าที่ดีที่สุดของพารามิเตอร์แต่ละตัว
- พิมพ์ค่าความแม่นยำบนชุดทดสอบ ซึ่งไม่ได้ถูกใช้ในขั้นตอน cross-validation
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Instantiate an RBF SVM
svm = SVC()
# Instantiate the GridSearchCV object and run the search
parameters = {'C':[0.1, 1, 10], 'gamma':[0.00001, 0.0001, 0.001, 0.01, 0.1]}
searcher = GridSearchCV(svm, ____)
____.fit(____)
# Report the best parameters and the corresponding score
print("Best CV params", searcher.best_params_)
print("Best CV accuracy", searcher.best_score_)
# Report the test accuracy using these best parameters
print("Test accuracy of best grid search hypers:", searcher.score(____))