Cross-Validation mit Shuffling
Wie du dich erinnerst, bedeutet Cross-Validation, deine Daten mehrfach in Trainings- und Testsets aufzuteilen. Jedes Mal wählst du ein anderes Trainings- und Testset. In dieser Übung führst du eine klassische ShuffleSplit-Cross-Validation mit den Unternehmenswert-Daten von vorhin durch. Später schauen wir uns an, was bei Zeitreihendaten angepasst werden muss. Die Daten sind die gleichen historischen Kursdaten mehrerer großer Unternehmen.
Eine Instanz des Linear-Regression-Objekts (model) steht dir in deinem Workspace zur Verfügung, zusammen mit der Funktion r2_score() zur Bewertung. Außerdem liegen die Daten in den Arrays X und y. Zusätzlich haben wir eine Hilfsfunktion (visualize_predictions()) bereitgestellt, um die Ergebnisse zu visualisieren.
Diese Übung ist Teil des Kurses
Maschinelles Lernen für Zeitreihendaten in Python
Anleitung zur Übung
- Initialisiere ein ShuffleSplit-Cross-Validation-Objekt mit 10 Splits.
- Iteriere mit diesem Objekt durch die CV-Splits. In jeder Iteration:
- Fitte ein Modell mit den Trainingsindizes.
- Erzeuge Vorhersagen mit den Testindizes, bewerte das Modell (\(R^2\)) anhand der Vorhersagen und sammle die Ergebnisse.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)
# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
# Fit the model on training data
____(X[tr], y[tr])
# Generate predictions on the test data, score the predictions, and collect
prediction = ____(X[tt])
score = r2_score(____, ____)
results.append((prediction, score, tt))
# Custom function to quickly visualize predictions
visualize_predictions(results)