BaşlayınÜcretsiz başlayın

2B grid araması

Her hiperparametreyi birbirinden bağımsız ayarlamanın dezavantajı, hiperparametreler arasında olası bir bağımlılık olmasıdır. Daha iyi yaklaşım, tüm olası hiperparametre kombinasyonlarını denemektir. Ancak bu durumda grid arama uzayı hızla genişler. Örneğin, 10 olası değere sahip 2 parametre varsa, bu 100 deney çalıştırması anlamına gelir.

Amacın, Gradient Boosting modelinde max_depth ve subsample için en iyi hiperparametre ikilisini bulmak. subsample, tek tek ağaçları eğitmek için kullanılacak gözlemlerin oranıdır.

Sana, eğitim veri kümesini ve model parametrelerinin sözlüğünü argüman olarak alan ve 3 katlı çapraz doğrulama üzerinden genel doğrulama RMSE skorunu döndüren get_cv_score() fonksiyonu verildi.

Bu egzersiz, kursun bir parçasıdır

Python ile Bir Kaggle Yarışmasını Kazanmak

Kursa Göz Atın

Egzersiz talimatları

  • Olası max_depth ve subsample değerleri için gridleri belirt. max_depth için: 3, 5 ve 7. subsample için: 0.8, 0.9 ve 1.0.
  • itertools paketinden product() fonksiyonunu hiperparametre gridlerine uygula. Bu, bu iki grid için tüm olası kombinasyonları döndürür.
  • Her bir hiperparametre aday ikilisini modelin params sözlüğüne geçir.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

import itertools

# Hyperparameter grids
max_depth_grid = [____]
subsample_grid = [____]
results = {}

# For each couple in the grid
for max_depth_candidate, subsample_candidate in itertools.____(max_depth_grid, subsample_grid):
    params = {'max_depth': ____,
              'subsample': ____}
    validation_score = get_cv_score(train, params)
    # Save the results for each couple
    results[(max_depth_candidate, subsample_candidate)] = validation_score   
print(results)
Kodu Düzenle ve Çalıştır