Inizia subitoInizia gratis

Cross-validation con mescolamento

Come ricorderai, la cross-validation consiste nello suddividere i dati più volte in insiemi di training e di test. Ogni volta scegli un insieme di training e di test diverso. In questo esercizio eseguirai una classica cross-validation ShuffleSplit sui dati del valore aziendale visti in precedenza. Più avanti vedremo quali modifiche servono per le serie temporali. Useremo gli stessi dati storici dei prezzi per alcune grandi aziende.

Nel tuo workspace è disponibile un'istanza dell'oggetto di regressione lineare (model) insieme alla funzione r2_score() per il punteggio. I dati sono memorizzati negli array X e y. Abbiamo anche fornito una funzione di supporto (visualize_predictions()) per aiutarti a visualizzare i risultati.

Questo esercizio fa parte del corso

Machine Learning per dati di serie temporali in Python

Visualizza corso

Istruzioni dell'esercizio

  • Inizializza un oggetto di cross-validation ShuffleSplit con 10 suddivisioni.
  • Itera tra le suddivisioni di CV usando questo oggetto. A ogni iterazione:
    • Addestra un modello usando gli indici di training.
    • Genera le predizioni usando gli indici di test, calcola il punteggio del modello (\(R^2\)) usando le predizioni e raccogli i risultati.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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)
Modifica ed esegui il codice