Bilgili Arama: Kabadan İnceye

Python'da Hiperparametre Ayarlama

Alex Scriven

Data Scientist

Bilgili vs Bilgisiz Arama

 

Şu ana kadar yaptıklarımız bilgisiz aramaydı:

Bilgisiz arama: Hiperparametre ayarlamasının her yinelemesi, önceki yinelemelerden öğrenmez.

Bu, işi paralelleştirmemizi sağlar. Yine de pek verimli değil gibi?

Python'da Hiperparametre Ayarlama

Bilgili vs Bilgisiz

Şimdiye kadarki süreç:

bilgisiz süreç haritası

Alternatif bir yol:

bilgili süreç haritası

Python'da Hiperparametre Ayarlama

Kabadan İnce Ayara

Temel bir bilgili arama yöntemi:

Kaba, rastgele bir yaklaşımla başlayın ve aramayı yinelemeli olarak inceltin.

Süreç:

  1. Rastgele arama
  2. Umut vadeden bölgeleri bulun
  3. Küçük alanda ızgara araması yapın
  4. En iyi puana ulaşana kadar sürdürün

(3) yerine ızgara öncesi ek rastgele aramalar da yapabilirsiniz

Python'da Hiperparametre Ayarlama

Neden Kabadan İnceye?

Kabadan ince ayarın bazı avantajları:

  • Izgara ve rastgele aramanın avantajlarını kullanır.
    • Başta geniş arama
    • İyi bir nokta olasıysa sonrasında derin arama
  • Zaman ve hesaplama daha verimli kullanılır; daha hızlı yineleme yaparsınız

İyi sonuç vermeyen alanlarda zaman kaybetmeyin!

Not: Bu, tek modelde değil, partiler üzerinde bilgilidir.

Python'da Hiperparametre Ayarlama

Kabadan İnceye Uygulama

Aşağıdaki hiperparametre aralıklarıyla bir örnek yapalım:

  • max_depth_list 1 ile 65 arasında
  • min_sample_list 3 ile 17 arasında
  • learn_rate_list 0.01 ile 150 arasında 150 değer

Kaç olası modelimiz var?

combinations_list = [list(x) for x in product(max_depth_list, min_sample_list, learn_rate_list)]
print(len(combinations_list))
134400
Python'da Hiperparametre Ayarlama

Kabadan İnceye Görselleştirme

Sadece 500 kombinasyon üzerinde rastgele arama yapalım.

Burada doğruluk puanlarını çiziyoruz:

modellerin doğruluk yoğunluk grafiği

İyi modeller hangileri?

Python'da Hiperparametre Ayarlama

Kabadan İnceye Görselleştirme

En iyi sonuçlar:

max_depth min_samples_leaf learn_rate accuracy
10 7 0.01 96
19 7 0.023355705 96
30 6 1.038389262 93
27 7 1.11852349 91
16 7 0.597651007 91
Python'da Hiperparametre Ayarlama

Kabadan İnceye Görselleştirme

max_depth ile doğruluk puanını görselleştirelim:

maksimum derinlik vs doğruluk saçılım grafiği

Python'da Hiperparametre Ayarlama

Kabadan İnceye Görselleştirme

min_samples_leaf 8'in altında daha iyi

yaprak başına asgari örnek vs doğruluk saçılım grafiği

learn_rate 1.3'ün üstünde daha kötü

öğrenme oranı vs doğruluk saçılım grafiği

Python'da Hiperparametre Ayarlama

Sonraki adımlar

İlk yinelemeden bildiklerimiz:

  • max_depth 8 ile 30 arasında
  • learn_rate 1.3'ten küçük
  • min_samples_leaf muhtemelen 8'den küçük

Sırada ne var? Bildiklerimizle yeni bir rastgele veya ızgara araması!

Not: Bu yalnızca iki değişkenli bir analizdi. Tek grafikte birden çok hiperparametreyi (3, 4 veya daha fazla) inceleyebilirsiniz; ancak bu dersin kapsamı dışındadır.

Python'da Hiperparametre Ayarlama

Hadi pratik yapalım!

Python'da Hiperparametre Ayarlama

Preparing Video For Download...