Scikit Learn'de RandomSearchCV
Hadi Scikit Learn kullanarak bir RandomizedSearchCV nesnesi oluşturmayı pratik edelim.
Hiperparametre ızgarası max_depth (5 ile 25 arasındaki tüm değerler, uçlar dahil) ve max_features ('auto' ve 'sqrt') için olmalı.
RandomizedSearchCV nesnesi için istenen seçenekler:
n_estimatorsdeğeri 80 olan bir RandomForestClassifier tahminleyicisi.- 3 katlı çapraz doğrulama (
cv) - Modelleri skorlamak için
roc_auckullan - Paralel işlem için 4 çekirdek kullan (
n_jobs) - En iyi modeli yeniden eğittiğinden emin ol ve eğitim skorlarını döndür
- Verimlilik için yalnızca 5 model örnekle (
n_iter)
X_train ve y_train veri kümeleri senin için yüklendi.
Seçilen hiperparametreleri çıkarmak için, bunların cv_results_ içinde her hiperparametre için bir sütunda yer aldığını unutma. Örneğin, criterion hiperparametresi için sütun param_criterion olurdu.
Bu egzersiz
Python'da Hiperparametre Ayarlama
kursunun bir parçasıdırEgzersiz talimatları
- Yukarıdaki bağlamda belirtildiği gibi bir hiperparametre ızgarası oluştur.
- Bağlamda açıklandığı şekilde bir
RandomizedSearchCVnesnesi oluştur. RandomizedSearchCVnesnesini eğitim verilerine uydur.- Modelleme sürecinin her iki hiperparametre (
max_depthvemax_features) için seçtiği değerleri yazdırmak üzerecv_results_nesnesinde indeksleme yap.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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_[____])