Validation croisée avec permutation
Comme vous vous en souvenez, la validation croisée consiste à répartir vos données en ensembles d'entraînement et de test à plusieurs reprises. Chaque fois, vous choisissez un ensemble d'entraînement et de test différent. Dans cet exercice, vous allez effectuer une validation croisée classique ShuffleSplit sur les données de valeur d'entreprise vues plus tôt. Plus tard, nous verrons ce qu'il faut adapter pour les séries chronologiques. Les données utilisées sont les mêmes prix historiques de plusieurs grandes entreprises.
Une instance de l'objet de régression linéaire (model) est disponible dans votre espace de travail, ainsi que la fonction r2_score() pour l'évaluation. Les données sont aussi stockées dans les tableaux X et y. Nous avons également fourni une fonction d'assistance (visualize_predictions()) pour vous aider à visualiser les résultats.
Cette activité fait partie du cours
Machine Learning pour les données chronologiques en Python
Instructions de l’exercice
- Initialisez un objet de validation croisée ShuffleSplit avec 10 divisions.
- Parcourez les partitions de validation croisée (CV) à l'aide de cet objet. À chaque itération :
- Ajustez un modèle en utilisant les indices d'entraînement.
- Générez des prédictions à partir des indices de test, calculez le score du modèle (\(R^2\)) à l'aide des prédictions et recueillez les résultats.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)