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

RandomSearchCV trong Scikit Learn

Hãy luyện tập xây dựng một đối tượng RandomizedSearchCV bằng Scikit Learn.

Lưới siêu tham số cần có max_depth (mọi giá trị từ 5 đến 25, bao gồm cả hai đầu) và max_features ('auto' và 'sqrt').

Các tùy chọn cần có cho đối tượng RandomizedSearchCV:

  • Estimator RandomForestClassifier với n_estimators bằng 80.
  • Cross validation 3-fold (cv)
  • Dùng roc_auc để chấm điểm mô hình
  • Dùng 4 lõi để xử lý song song (n_jobs)
  • Đảm bảo bạn refit mô hình tốt nhất và trả về điểm huấn luyện
  • Chỉ lấy mẫu 5 mô hình để hiệu quả (n_iter)

Bộ dữ liệu X_train & y_train đã được nạp sẵn cho bạn.

Hãy nhớ, để trích xuất các siêu tham số đã chọn, chúng nằm trong cv_results_ với một cột cho mỗi siêu tham số. Ví dụ, cột cho siêu tham số criterion sẽ là param_criterion.

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

Tinh chỉnh siêu tham số trong Python

Xem khóa học

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

  • Tạo một lưới siêu tham số như mô tả ở phần ngữ cảnh phía trên.
  • Tạo một đối tượng RandomizedSearchCV như đã nêu trong ngữ cảnh ở trên.
  • Fit đối tượng RandomizedSearchCV vào dữ liệu huấn luyện.
  • Truy cập vào đối tượng cv_results_ để in ra các giá trị được quá trình mô hình hóa chọn cho cả hai siêu tham số (max_depthmax_features).

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 grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]} 

# Create a random search object
random_rf_class = RandomizedSearchCV(
    estimator = ____(n_estimators=____),
    param_distributions = ____, n_iter = ____,
    scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )

# Fit to the training data
____.fit(X_train, y_train)

# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])
Chỉnh sửa và Chạy Mã