Penyetelan Hyperparameter di Python
Alex Scriven
Data Scientist
Sangat mirip dengan grid search:
NAMUN kita memilih kotak grid secara acak.
Bengio & Bergstra (2012):
Makalah ini menunjukkan secara empiris dan teoretis bahwa percobaan acak lebih efisien untuk optimasi hiperparameter dibandingkan percobaan pada grid.
Dua alasan utama:
Grid search:

Berapa banyak model yang harus dijalankan untuk peluang 95% memperoleh salah satu kotak hijau?
Model terbaik kita:

Jika kita memilih kombinasi hiperparameter secara acak dan seragam, pertimbangkan peluang untuk MELEWATKAN semua percobaan—untuk menunjukkan betapa kecilnya peluang itu.
Percobaan 1 = peluang sukses 0,05 dan peluang (1 - 0,05) untuk meleset
Dengan n percobaan, peluang semua percobaan meleset dari titik yang diinginkan adalah (1-0,05)^n.
Berapa banyak percobaan untuk peluang 95% masuk ke wilayah itu?
Apa artinya?
Ingat:
Maksimum tetap bergantung pada grid yang Anda tetapkan.
Untuk perbandingan adil dengan grid search, gunakan “anggaran” pemodelan yang sama.
Kita dapat membuat sampel acak kombinasi hiperparameter sendiri:
# Set some hyperparameter lists
learn_rate_list = np.linspace(0.001,2,150)
min_samples_leaf_list = list(range(1,51))
# Create list of combinations
from itertools import product
combinations_list = [list(x) for x in
product(learn_rate_list, min_samples_leaf_list)]
# Select 100 models from our larger set
random_combinations_index = np.random.choice(
range(0,len(combinations_list)), 100,
replace=False)
combinations_random_chosen = [combinations_list[x] for x in
random_combinations_index]
Kita juga dapat memvisualisasikan cakupan random search dengan memplot pilihan hiperparameter pada sumbu X dan Y.

Perhatikan sebarannya luas namun tidak mendalam.
Penyetelan Hyperparameter di Python