Créer les variables d'entraînement et de test
Avant d'ajuster notre modèle linéaire, nous voulons ajouter une constante à nos variables explicatives afin d'avoir une ordonnée à l'origine pour notre modèle linéaire.
Nous voulons aussi créer des variables pour l'entraînement et pour le test. Cela nous permet d'ajuster le modèle sur l'ensemble d'entraînement et d'évaluer ses performances sur l'ensemble de test. Il faut toujours vérifier les performances sur des données que le modèle n'a pas vues pour éviter le surapprentissage, c'est-à-dire mémoriser trop exactement les motifs présents dans les données d'entraînement.
Avec une série chronologique comme celle-ci, on utilise généralement les données les plus anciennes pour l'entraînement et les plus récentes pour le test. Ainsi, on évalue les performances du modèle sur les données les plus récentes, ce qui simule plus fidèlement des prédictions sur des données encore inconnues.
Cet exercice fait partie du cours
<cours>Machine Learning pour la finance en Python</cours>Instructions de l’exercice
- Importez la bibliothèque
statsmodels.apiavec l'aliassm. - Ajoutez une constante à la variable
featuresen utilisant la fonction.add_constant()de statsmodels. - Définissez
train_sizeà 85 % du nombre total de points de données (nombre de lignes) à l'aide de la propriété.shape[0]defeaturesoutargets. - Scindez
linear_featuresettargetsen ensembles d'entraînement et de test en utilisanttrain_sizeet l'indexation Python (p. ex.[start:stop]).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Import the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)