Trainings- und Test-Features erstellen
Bevor wir unser lineares Modell fitten, fügen wir unseren Features eine Konstante hinzu, damit unser lineares Modell einen Achsenabschnitt (Intercept) hat.
Außerdem wollen wir Trainings- und Test-Features erstellen. So können wir unser Modell auf den Trainingsdatensatz fitten und die Leistung auf dem Testdatensatz bewerten. Wir prüfen die Performance immer auf Daten, die das Modell noch nicht gesehen hat, um sicherzustellen, dass wir nicht überanpassen – also Muster im Training zu exakt auswendig lernen.
Bei einer Zeitreihe wie dieser verwenden wir typischerweise die ältesten Daten als Trainingsset und die neuesten Daten als Testset. So können wir die Leistung des Modells auf den aktuellsten Daten bewerten, was Vorhersagen auf noch unbekannten Daten realistischer simuliert.
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Importiere die Bibliothek
statsmodels.apimit dem Aliassm. - Füge der Variablen
featuresmit der.add_constant()-Funktion von statsmodels eine Konstante hinzu. - Setze
train_sizeauf 85 % der Gesamtzahl der Datenpunkte (Zeilenanzahl) mithilfe der Eigenschaft.shape[0]vonfeaturesodertargets. - Teile
linear_featuresundtargetsmittrain_sizeund Python-Indizierung (z. B.[start:stop]) in Trainings- und Testsets auf.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Import the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)