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

Tinh chỉnh siêu tham số với RandomizedSearchCV

Như bạn đã thấy, GridSearchCV có thể tốn nhiều chi phí tính toán, đặc biệt khi bạn tìm kiếm trên không gian siêu tham số lớn. Trong trường hợp này, bạn có thể dùng RandomizedSearchCV, phương pháp sẽ thử một số lượng cố định các cấu hình siêu tham số được lấy mẫu từ các phân phối xác suất xác định trước.

Các tập huấn luyện và kiểm tra từ diabetes_df đã được nạp sẵn cho bạn dưới dạng X_train, X_test, y_train, và y_test, trong đó biến mục tiêu là "diabetes". Một mô hình logistic regression đã được tạo và lưu dưới tên logreg, cùng với một biến KFold lưu trong kf.

Bạn sẽ định nghĩa một dải siêu tham số và dùng RandomizedSearchCV (đã được import từ sklearn.model_selection) để tìm các siêu tham số tối ưu từ những lựa chọn này.

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

Học có giám sát với scikit-learn

Xem khóa học

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

  • Tạo params, thêm "l1""l2" làm giá trị penalty, đặt C thành một dải gồm 50 giá trị float từ 0.1 đến 1.0, và class_weight"balanced" hoặc một dictionary chứa 0:0.8, 1:0.2.
  • Tạo đối tượng Randomized Search CV, truyền mô hình và bộ tham số, và đặt cv bằng kf.
  • Fit logreg_cv với dữ liệu huấn luyện.
  • In ra các siêu tham số tốt nhất của mô hình và điểm chính xác (accuracy).

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.

# Create the parameter space
params = {"penalty": ["____", "____"],
         "tol": np.linspace(0.0001, 1.0, 50),
         "C": np.linspace(____, ____, ____),
         "class_weight": ["____", {0:____, 1:____}]}

# Instantiate the RandomizedSearchCV object
logreg_cv = ____(____, ____, cv=____)

# Fit the data to the model
logreg_cv.____(____, ____)

# Print the tuned parameters and score
print("Tuned Logistic Regression Parameters: {}".format(____.____))
print("Tuned Logistic Regression Best Accuracy Score: {}".format(____.____))
Chỉnh sửa và Chạy Mã