Python'da Hiperparametre Ayarlama
Alex Scriven
Data Scientist
Ş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?
Şimdiye kadarki süreç:

Alternatif bir yol:

Temel bir bilgili arama yöntemi:
Kaba, rastgele bir yaklaşımla başlayın ve aramayı yinelemeli olarak inceltin.
Süreç:
(3) yerine ızgara öncesi ek rastgele aramalar da yapabilirsiniz
Kabadan ince ayarın bazı avantajları:
İyi sonuç vermeyen alanlarda zaman kaybetmeyin!
Not: Bu, tek modelde değil, partiler üzerinde bilgilidir.
Aşağıdaki hiperparametre aralıklarıyla bir örnek yapalım:
max_depth_list 1 ile 65 arasındamin_sample_list 3 ile 17 arasındalearn_rate_list 0.01 ile 150 arasında 150 değerKaç 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
Sadece 500 kombinasyon üzerinde rastgele arama yapalım.
Burada doğruluk puanlarını çiziyoruz:

İyi modeller hangileri?
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 |
max_depth ile doğruluk puanını görselleştirelim:

min_samples_leaf 8'in altında daha iyi

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

İlk yinelemeden bildiklerimiz:
max_depth 8 ile 30 arasındalearn_rate 1.3'ten küçükmin_samples_leaf muhtemelen 8'den küçükSı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