RandomSearchCV di Scikit Learn
Mari berlatih membangun objek RandomizedSearchCV menggunakan Scikit Learn.
Grid hiperparameter harus mencakup max_depth (semua nilai antara 5 hingga 25, termasuk keduanya) dan max_features ('auto' dan 'sqrt').
Opsi yang diinginkan untuk objek RandomizedSearchCV adalah:
- Estimator RandomForestClassifier dengan
n_estimatorssebesar 80. - Validasi silang 3-fold (
cv) - Gunakan
roc_aucuntuk menilai model - Gunakan 4 core untuk pemrosesan paralel (
n_jobs) - Pastikan Anda melakukan refit pada model terbaik dan mengembalikan skor pelatihan
- Hanya sampel 5 model demi efisiensi (
n_iter)
Himpunan data X_train & y_train sudah dimuat untuk Anda.
Ingat, untuk mengekstrak hiperparameter terpilih, nilai tersebut terdapat di cv_results_ dengan satu kolom per hiperparameter. Misalnya, kolom untuk hiperparameter criterion adalah param_criterion.
Latihan ini adalah bagian dari kursus
Penyetelan Hyperparameter di Python
Petunjuk latihan
- Buat grid hiperparameter seperti yang ditentukan pada konteks di atas.
- Buat objek
RandomizedSearchCVseperti yang diuraikan pada konteks di atas. - Latih objek
RandomizedSearchCVpada data pelatihan. - Lakukan indeks pada objek
cv_results_untuk mencetak nilai yang dipilih oleh proses pemodelan untuk kedua hiperparameter (max_depthdanmax_features).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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_[____])