Hiperparametre optimizasyonu, makine öğrenmesi modellerinin başarımını belirleyen kritik bir adımdır. Grid Search, Random Search ve Bayesian Optimization en yaygın kullanılan üç yöntemdir. Peki hangisi daha iyi? Bu yazıda her yöntemin çalışma prensibini, avantajlarını ve dezavantajlarını detaylıca inceleyerek doğru seçimi yapmanıza yardımcı olacağız.
Grid Search Nedir?
Grid Search (Izgara Arama), hiperparametre uzayını belirli aralıklarla bölerek tüm kombinasyonları dener. Örneğin, bir XGBoost modelinde learning_rate için [0.01, 0.1, 0.3] ve n_estimators için [100, 200, 300] değerlerini tanımlarsanız, yöntem 3×3=9 farklı kombinasyonu sırayla değerlendirir. Her kombinasyon için model eğitilir ve doğrulama performansı kaydedilir. En iyi skoru veren parametre seti seçilir.
Avantajları
- Basit ve anlaşılır: Tüm değerler denenir, sonuç net bir şekilde karşılaştırılabilir.
- Küçük hiperparametre uzaylarında etkilidir.
- Paralelize edilebilir (her kombinasyon bağımsız olduğundan).
Dezavantajları
- Boyut arttıkça kombinasyon sayısı üstel olarak artar (küresel arama sorunu).
- Gereksiz bölgelerde de zaman harcar; optimumdan uzak noktaları da dener.
- Sürekli hiperparametreler için uygun değildir (kesikli aralıklar gerekir).
Random Search Nedir?
Random Search (Rastgele Arama), hiperparametre uzayından rastgele örneklemler alarak çalışır. Örneğin, yukarıdaki örnekte her iki parametre için belirlediğiniz aralıkta rastgele değerler seçer ve belirlediğiniz deneme sayısı kadar model eğitir. Bergstra ve Bengio'nun 2012 yılında yayımladığı makaleye göre, Random Search çoğu durumda Grid Search'ten daha başarılıdır. Bunun nedeni, optimumun genellikle düşük boyutlu altuzaylarda yer alması ve rastgele örneklemenin bu bölgelere denk gelme olasılığının daha yüksek olmasıdır.
Avantajları
- Yüksek boyutlu uzaylarda Grid Search'ten daha verimlidir.
- Hedef deneme sayısını belirleyebilirsiniz (örneğin 10 deneme).
- Sürekli değişkenlerle kolayca çalışır.
Dezavantajları
- Optimuma ulaşma garantisi yoktur.
- Geçmiş denemelerden öğrenmez; her deneme bağımsızdır.
- Çok az deneme yapılırsa iyi sonuç vermeyebilir.
Bayesian Optimization Nedir?
Bayesian Optimization (Bayes Optimizasyonu), olasılıksal bir model (genellikle Gaussian Process) kullanarak hiperparametre uzayını akıllıca tarar. Önceki denemelerin sonuçlarına dayanarak bir sonraki en umut verici noktayı seçer. Keşfetme (yeni bölgeler) ve sömürme (bilinen iyi bölgeler) arasında denge kurar. Bu sayede daha az denemeyle daha iyi sonuçlara ulaşabilir. Scikit-optimize veya Optuna gibi kütüphanelerle kolayca uygulanabilir.
Avantajları
- Az sayıda denemeyle iyi sonuç verir (genelde < 100 deneme).
- Kesikli ve sürekli değişkenleri birlikte işleyebilir.
- Gürültülü verilerle başa çıkabilir.
Dezavantajları
- Başlangıçta birkaç rastgele nokta seçmesi gerekir.
- Gaussian Process modelinin hesaplama maliyeti deneme sayısı arttıkça artar.
- Uygulanması diğer yöntemlere göre daha karmaşıktır.
Grid Search mi, Random Search mi, Bayesian Optimization mu?
Hangi yöntemi seçeceğiniz aşağıdaki faktörlere bağlıdır:
| Kriter | Grid Search | Random Search | Bayesian Optimization |
|---|---|---|---|
| Hiperparametre sayısı | Az (≤3) | Orta-Çok | Çok |
| Hedef deneme sayısı | Birçok (kombinasyon) | Sabit (az-orta) | Az (genelde ≤50) |
| Performans (doğruluk) | Yüksek (kapsamlı) | Orta-Yüksek | Yüksek |
| Uygulama kolaylığı | Çok kolay | Kolay | Orta |
| Zaman/hesaplama maliyeti | Yüksek | Düşük-Orta | Düşük-Orta |
| Paralelleştirme | Mükemmel | Mükemmel | Sınırlı (sıralı) |
Genel bir kural olarak:
- Hiperparametre sayısı az (≤3) ve hesaplama bütçeniz yüksekse Grid Search kullanın.
- Hiperparametre sayısı fazlaysa veya bütçeniz kısıtlıysa Random Search iyi bir başlangıçtır.
- Daha az denemeyle daha iyi sonuç almak istiyorsanız ve uygulama karmaşıklığına hazırsanız Bayesian Optimization en güçlü seçenektir.
Hiperparametre optimizasyonu modellerinizin başarımını doğrudan etkiler. XGBoost, LightGBM ve CatBoost karşılaştırmasında da gördüğünüz gibi, her modelin en iyi çalıştığı parametre aralıkları farklıdır. Ayrıca, regularizasyon yöntemleri gibi teknikler de hiperparametre olarak optimize edilebilir.
Sık Yapılan Hatalar ve İpuçları
- Çok dar aralık seçmek: Optimum değer aralığın dışında kalabilir. Geniş başlayıp sonra daraltın.
- Yalnızca doğruluk metriğine odaklanmak: Aşırı uyum riskini göz ardı etmeyin. Cross-validation kullanın.
- Rastgele deneme sayısını çok az tutmak: Random Search'te en az 10-20 deneme yapın.
- Bayesian Optimization'da başlangıç noktalarını ihmal etmek: En az 5-10 rastgele deneme ile başlayın.
- Paralel kaynakları verimli kullanmamak: Grid Search ve Random Search kolayca paralelleştirilebilir.
Sonuç olarak, hiperparametre optimizasyonu için tek bir doğru yöntem yoktur. Projenizin süresi, hesaplama kaynakları ve model karmaşıklığına göre en uygun yaklaşımı seçmelisiniz. Başlangıç için Random Search idealken, ileri düzey projelerde Bayesian Optimization ile daha iyi sonuçlar alabilirsiniz. Unutmayın, iyi bir hiperparametre seçimi modelinizi sıradanlıktan kurtarıp en iyi başarımı elde etmenizi sağlar.
Sık Sorulan Sorular
Grid Search ile Random Search arasındaki temel fark nedir?
Grid Search tüm kombinasyonları denerken, Random Search hiperparametre uzayından rastgele örneklemler alır. Random Search yüksek boyutlu uzaylarda daha verimliyken, Grid Search küçük uzaylarda daha kapsamlıdır.
Bayesian Optimization ne zaman tercih edilmelidir?
Hesaplama maliyeti yüksek modellerde (örneğin derin öğrenme) ve az denemeyle iyi sonuç almak istendiğinde tercih edilmelidir. Ayrıca sürekli hiperparametreler için uygundur.
Hiperparametre optimizasyonu için hangi Python kütüphanelerini kullanmalıyım?
Scikit-learn (GridSearchCV, RandomizedSearchCV), Optuna, Hyperopt ve Scikit-optimize en popüler kütüphanelerdir. Özellikle Optuna, Bayesian Optimization ile uyumlu ve kullanımı kolaydır.
Kaç deneme yapmalıyım?
Random Search için genellikle 10-50 arası, Bayesian Optimization için 20-100 arası deneme önerilir. Deneme sayısı hiperparametre sayısına ve hesaplama bütçenize bağlıdır.
Cross-validation gerekli mi?
Evet, aşırı uyumu önlemek için her denemede cross-validation kullanmak önemlidir. Aksi takdirde seçilen parametreler yalnızca eğitim verisine uyum sağlayabilir.






