Hyperopt ile Bayesian hiperparametre ayarlama
Bu örnekte, Hyperopt paketini (senin için zaten hp olarak içe aktarıldı) kullanarak Bayesian bir hiperparametre optimizasyon süreci kuracak ve çalıştıracaksın. Önce alanı (grid search için grid kurmaya benzer) tanımlayacak, sonra amaç (objective) fonksiyonunu yazacaksın. Son olarak, en iyileyiciyi 20 yineleme boyunca çalıştıracaksın.
Alanı şu değerlerle kurman gerekecek:
max_depthiçin quniform dağılım (2 ile 10 arasında, 2’şer artışlarla)learning_rateiçin uniform dağılım (0.001 ile 0.9)
Bu egzersiz için, veri örneklem boyutu ile hyperopt ve GBM yinelemeleri azaltılmıştır. Bunu kendi makinende deniyorsan, bu yöntemi gerçekten iş başında görmek için daha geniş bir arama alanı, daha fazla deneme, daha fazla çapraz doğrulama ve daha büyük bir veri kümesi boyutu dene!
Bu egzersiz
Python'da Hiperparametre Ayarlama
kursunun bir parçasıdırEgzersiz talimatları
- Yukarıda belirtilen alanı kullanarak bir
spacesözlüğü kur. - Amaç fonksiyonunu bir gradient boosting sınıflandırıcı kullanarak yaz.
- Algoritmayı 20 değerlendirme için çalıştır (slaytlardaki varsayılan, önerilen algoritmayı kullanman yeterli).
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Set up space dictionary with specified hyperparameters
space = {'max_depth': hp.____('max_depth', ____, ____, ____),'learning_rate': hp.____('learning_rate', ____,____)}
# Set up objective function
def objective(params):
params = {'max_depth': int(params[____]),'learning_rate': params[____]}
gbm_clf = ____(n_estimators=100, **params)
best_score = cross_val_score(gbm_clf, X_train, y_train, scoring='accuracy', cv=2, n_jobs=4).mean()
loss = 1 - ____
return ____
# Run the algorithm
best = fmin(fn=____,space=space, max_evals=____, rstate=np.random.default_rng(42), algo=tpe.suggest)
print(____)