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
Egzersiz talimatları
gridsözlüğünden_estimatorshiperparametresini tek bir değerden (200) oluşan bir liste olarak ayarla.gridsözlüğündemax_featureshiperparametresini 4 ve 8'i içeren bir liste olarak ayarla.- Döngüdeki her hiperparametre kombinasyonu
gile rastgele orman regresör modelini (rfr, senin için oluşturuldu)train_featuresvetrain_targetsüzerinde eğit. test_featuresüzerinderfr.score()kullanarak R\(^2\) hesapla ve sonucutest_scoreslistesine 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])