Kom igångKom igång gratis

Korsvalidering med slumpmässig uppdelning

Som du kanske minns innebär korsvalidering att data delas upp i tränings- och testmängder flera gånger, där varje omgång använder en annan uppdelning. I den här övningen utför du en traditionell ShuffleSplit-korsvalidering på företagsvärdesdata från tidigare. Senare går vi igenom vilka anpassningar som behövs för tidsseriedata. Vi använder samma historiska prisdata för ett antal stora företag.

En instans av objektet för linjär regression (model) finns tillgänglig i din arbetsmiljö tillsammans med funktionen r2_score() för poängsättning. Data finns lagrat i arrayerna X och y. Vi har också tillhandahållit en hjälpfunktion (visualize_predictions()) för att visualisera resultaten.

Den här övningen är en del av kursen

Maskininlärning för tidsseriedata i Python

Visa kurs

Övningsinstruktioner

  • Initiera ett ShuffleSplit-korsvalideringsobjekt med 10 uppdelningar.
  • Iterera genom CV-uppdelningarna med hjälp av det här objektet. För varje iteration:
    • Anpassa en modell med hjälp av träningsindexen.
    • Generera förutsägelser med hjälp av testindexen, poängsätt modellen (\(R^2\)) med förutsägelserna och samla in resultaten.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod