ÎncepețiÎncepe gratuit

Validare încrucișată cu amestecare

Așa cum îți amintești, validarea încrucișată presupune împărțirea repetată a datelor în seturi de antrenament și de testare. De fiecare dată, alegi un set de antrenament și un set de testare diferite. În acest exercițiu, vei efectua o validare încrucișată clasică de tip ShuffleSplit pe datele despre valoarea companiilor din exercițiile anterioare. Ulterior, vom vedea ce ajustări sunt necesare pentru datele de tip serie temporală. Datele utilizate sunt aceleași prețuri istorice pentru câteva companii mari.

În spațiul de lucru ai la dispoziție o instanță a obiectului de regresie liniară (model) și funcția r2_score() pentru evaluare. Datele sunt stocate în arrays-urile X și y. Am inclus, de asemenea, o funcție auxiliară (visualize_predictions()) pentru a vizualiza rezultatele.

Acest exercițiu face parte din cursul

Machine Learning pentru Date de Tip Șir de Timp în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Inițializează un obiect de validare încrucișată ShuffleSplit cu 10 împărțiri.
  • Iterează prin diviziunile de validare încrucișată folosind acest obiect. La fiecare iterație:
    • Ajustează un model folosind indicii de antrenament.
    • Generează predicții folosind indicii de testare, evaluează modelul (\(R^2\)) pe baza predicțiilor și colectează rezultatele.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul