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
Egzersiz talimatları
- Olası
max_depthvesubsampledeğerleri için gridleri belirt.max_depthiçin: 3, 5 ve 7.subsampleiçin: 0.8, 0.9 ve 1.0. itertoolspaketindenproduct()fonksiyonunu hiperparametre gridlerine uygula. Bu, bu iki grid için tüm olası kombinasyonları döndürür.- Her bir hiperparametre aday ikilisini modelin
paramssö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)