Bắt đầu ngayBắt đầu miễn phí

Thiết lập tham số cho GridSearch

Một hyperparameter là một tham số bên trong hàm. Ví dụ, max_depth hoặc min_samples_leaf là các hyperparameter của hàm DecisionTreeClassifier(). Điều chỉnh hyperparameter (hyperparameter tuning) là quá trình thử các giá trị khác nhau của hyperparameter để tìm ra giá trị tối ưu: giá trị cho dự đoán tốt nhất theo mục tiêu của bạn. Trong sklearn, bạn có thể dùng GridSearch để thử các tổ hợp hyperparameter khác nhau. Thậm chí tốt hơn, bạn có thể dùng GridSearchCV() để vừa thử các tổ hợp vừa chạy cross-validation trong cùng một hàm!

Trong bài tập này, bạn sẽ chuẩn bị các giá trị khác nhau muốn thử cho max_depthmin_samples_leaf. Sau đó, bạn sẽ đưa chúng vào một từ điển, vì đó là định dạng mà GridSearchCV() yêu cầu:

  • khóa của từ điển sẽ là tên các hyperparameter
  • giá trị của từ điển sẽ là các thuộc tính (các giá trị hyperparameter) bạn muốn thử

Thay vì viết tay tất cả giá trị, bạn sẽ dùng hàm range(), hàm này cho phép tạo dãy giá trị tăng dần. Ví dụ, range(1, 10, 2) sẽ tạo một danh sách chứa các giá trị từ 1 (bao gồm) đến 10 (không bao gồm), với bước nhảy 2. Kết quả cuối cùng sẽ là [1, 3, 5, 7, 9].

Bài tập này là một phần của khóa học

Phân tích Nhân sự (HR Analytics): Dự đoán nghỉ việc bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Theo định dạng ví dụ ở trên, tạo các giá trị cho độ sâu tối đa từ 5 đến 20 với bước tăng 1
  • Làm tương tự cho kích thước mẫu tối thiểu với các giá trị từ 50 đến 450 với bước tăng 50
  • Tạo từ điển bằng cách chỉ định các giá trị max_depthmin_samples_leaf cần thử, sử dụng đúng các biến bạn vừa tạo

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.

# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]

# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]

# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)
Chỉnh sửa và Chạy Mã