Vorhersagen mit einem Random Forest treffen
Um ein Machine-Learning-Modell zur Vorhersage optimaler Portfolios zu trainieren, müssen wir Trainings- und Testsets zur Leistungsbewertung erstellen. Das machen wir wie in den vorherigen Kapiteln: Wir nehmen unsere Arrays features und targets und splitten sie basierend auf einer von uns gesetzten train_size. Häufig liegt die Trainingsgröße bei etwa 70–90 % unserer Daten.
Anschließend trainieren wir unser Modell (hier einen Random Forest) auf den Trainingsdaten und bewerten die R\(^2\)-Scores auf Train und Test mit .score() aus unserem Modell. In diesem Fall wurden die Hyperparameter für dich gesetzt, aber normalerweise würdest du wie in den vorherigen Kapiteln mit ParameterGrid eine Suche durchführen.
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Setze
train_sizeauf 85 % der gesamten Trainingsdaten mithilfe der Eigenschaft.shapevonfeatures. - Erzeuge Trainings- und Test-Ziele aus
targetsmithilfe der Python-Indizierung. - Trainiere das Random-Forest-Modell mit
train_featuresundtrain_targets.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Make train and test features
train_size = int(0.85 * ____)
train_features = features[:train_size]
test_features = features[train_size:]
train_targets = targets[____]
test_targets = targets[____]
# Fit the model and check scores on train and test
rfr = RandomForestRegressor(n_estimators=300, random_state=42)
rfr.fit(____, ____)
print(rfr.score(train_features, train_targets))
print(rfr.score(test_features, test_targets))