Faire des prédictions avec une random forest
Pour entraîner un modèle de Machine Learning afin de prédire des portefeuilles idéaux, nous devons créer des ensembles d'entraînement et de test pour évaluer les performances. Nous allons procéder comme dans les chapitres précédents : prendre nos tableaux features et targets, puis les scinder en fonction d'un train_size que nous définissons. Souvent, la taille d'entraînement représente environ 70 à 90 % de nos données.
Nous ajusterons ensuite notre modèle (une random forest dans ce cas) sur les données d'entraînement et nous évaluerons les scores R\(^2\) sur entraînement et test à l'aide de .score() depuis notre modèle. Ici, les hyperparamètres ont été définis pour vous, mais en pratique vous voudriez généralement effectuer une recherche avec ParameterGrid, comme nous l'avons fait dans les chapitres précédents.
Cet exercice fait partie du cours
<cours>Machine Learning pour la finance en Python</cours>Instructions de l’exercice
- Définissez
train_sizeà 85 % de l'ensemble complet des données d'entraînement en utilisant la propriété.shapedefeatures. - Créez les cibles d'entraînement et de test à partir de
targetsen utilisant l'indexation Python. - Entraînez le modèle de random forest sur
train_featuresettrain_targets.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Make train and test features
train_size = int(0.85 * ____)
train_features = features[:train_size]
test_features = features[train_size:]
train_targets = targets[____]
test_targets = targets[____]
# Fit the model and check scores on train and test
rfr = RandomForestRegressor(n_estimators=300, random_state=42)
rfr.fit(____, ____)
print(rfr.score(train_features, train_targets))
print(rfr.score(test_features, test_targets))