Tinh chỉnh đồng thời gamma và C với GridSearchCV
Trong bài trước, giá trị gamma tốt nhất là 0.001 khi dùng giá trị mặc định của C là 1. Trong bài này, bạn sẽ tìm tổ hợp tốt nhất của C và gamma bằng GridSearchCV.
Giống như bài trước, bộ dữ liệu chữ số 2-vs-không-phải-2 đã được nạp sẵn, nhưng lần này đã được chia vào các biến X_train, y_train, X_test và y_test. Mặc dù cross-validation đã tự chia tập huấn luyện thành nhiều phần, thường vẫn nên giữ riêng một tập kiểm tra để đảm bảo kết quả cross-validation là hợp lý.
Bài tập này là một phần của khóa học
Bộ phân loại tuyến tính với Python
Hướng dẫn bài tập
- Chạy
GridSearchCVđể tìm siêu tham số tốt nhất bằng tập huấn luyện. - In ra các giá trị tham số tốt nhất.
- In độ chính xác trên tập kiểm tra, tập này không được dùng trong quy trình cross-validation.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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(____))