BaşlayınÜcretsiz başlayın

Rastgele orman hiperparametrelerini ayarla

Tüm modellerde olduğu gibi, hiperparametreleri ayarlayarak performansı eniyilemek isteriz. Rastgele ormanlar için birçok hiperparametre vardır, ancak en önemlisi genellikle her bölünmede örneklediğimiz özellik sayısıdır; sklearn kütüphanesindeki RandomForestRegressor içinde max_features. Rastgeleliği yerleşik olan rastgele orman gibi modeller için ayrıca random_state de ayarlamak isteriz. Bu, sonuçlarımızın yeniden üretilebilir olması için yapılır.

Genellikle hiperparametre araması için sklearn'ün GridSearchCV() yöntemini kullanabiliriz, ancak finansal zaman serilerinde veri karışımı nedeniyle çapraz doğrulama yapmak istemeyiz. Modellerimizi en eski veri üzerinde eğitip en yeni veri üzerinde değerlendirmek isteriz. Bu yüzden hiperparametre kombinasyonları oluşturmak için sklearn'ün ParameterGrid aracını kullanacağız.

Bu egzersiz, kursun bir parçasıdır

Python ile Finans için Machine Learning

Kursa Göz Atın

Egzersiz talimatları

  • grid sözlüğünde n_estimators hiperparametresini tek bir değerden (200) oluşan bir liste olarak ayarla.
  • grid sözlüğünde max_features hiperparametresini 4 ve 8'i içeren bir liste olarak ayarla.
  • Döngüdeki her hiperparametre kombinasyonu g ile rastgele orman regresör modelini (rfr, senin için oluşturuldu) train_features ve train_targets üzerinde eğit.
  • test_features üzerinde rfr.score() kullanarak R\(^2\) hesapla ve sonucu test_scores listesine ekle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

from sklearn.model_selection import ParameterGrid

# Create a dictionary of hyperparameters to search
grid = {____, 'max_depth': [3], 'max_features': ____, 'random_state': [42]}
test_scores = []

# Loop through the parameter grid, set the hyperparameters, and save the scores
for g in ParameterGrid(grid):
    rfr.set_params(**g)  # ** is "unpacking" the dictionary
    rfr.fit(____, ____)
    test_scores.append(rfr.score(____, ____))

# Find best hyperparameters from the test score and print
best_idx = np.argmax(test_scores)
print(test_scores[best_idx], ParameterGrid(grid)[best_idx])
Kodu Düzenle ve Çalıştır