LoslegenKostenlos loslegen

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

Kurs anzeigen

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)
Code bearbeiten und ausführen