Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.

Cevap

Hiperparametreler (learning rate, ağaç derinliği, regularization gücü) eğitimle öğrenilmez, dışarıdan seçilir. Seçim her zaman validation seti veya cross-validation üzerinde yapılır, test seti sadece en sonda bir kez kullanılır.

YöntemNasıl çalışırArtıEksi
Grid searchTüm kombinasyonları denerBasit, tekrarlanabilirBoyut arttıkça patlar
Random searchDağılımlardan rastgele örneklerAynı bütçeyle genelde griden iyiÖnceki sonuçlardan öğrenmez
Bayesian (TPE, GP)Sonuçlardan bir surrogate model kurup umut vadeden bölgeyi seçerPahalı modellerde çok verimliSıralı, paralelleştirmesi zor
Hyperband / ASHAKötü denemeleri erken durdururDerin öğrenmede büyük tasarrufErken metrik yanıltıcı olabilir

Random search'ün gridden iyi olmasının sebebi (Bergstra & Bengio, 2012): genelde sadece birkaç hiperparametre gerçekten önemlidir. Grid bu önemli boyutta az sayıda farklı değer dener, random search ise her denemede farklı bir değer dener.

import optuna
from sklearn.model_selection import cross_val_score
import lightgbm as lgb

def objective(trial):
    params = {
        "learning_rate": trial.suggest_float("learning_rate", 1e-3, 0.3, log=True),
        "num_leaves": trial.suggest_int("num_leaves", 16, 256, log=True),
        "min_child_samples": trial.suggest_int("min_child_samples", 5, 100),
        "subsample": trial.suggest_float("subsample", 0.5, 1.0),
    }
    return cross_val_score(lgb.LGBMClassifier(**params), X, y, cv=5,
                           scoring="average_precision").mean()

study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=100)

Pratik ipuçları: learning rate ve regularization gibi parametreleri log ölçeğinde arayın, aramayı önce geniş sonra dar yapın, aynı validation setinde çok fazla deneme yapınca o sete overfit edilebileceğini unutmayın.

  1. Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?KolayMakine ÖğrenmesiYapay Zeka
  2. PCA (Principal Component Analysis) nasıl çalışır? Ne zaman kullanılır, ne zaman kullanılmamalıdır?OrtaMakine ÖğrenmesiYapay Zeka
  3. NumPy kullanarak k-means algoritmasını sıfırdan yazın. k değerini nasıl seçersiniz ve algoritmanın sınırlamaları nelerdir?ZorMakine ÖğrenmesiYapay Zeka
  4. XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?ZorMakine ÖğrenmesiYapay Zeka
  5. Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.OrtaMakine ÖğrenmesiYapay Zeka
  6. Lineer regresyon ile lojistik regresyon arasındaki fark nedir? Lojistik regresyonda neden MSE yerine log-loss kullanılır?KolayMakine ÖğrenmesiYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle