Assemblage de modèles
Une façon d'améliorer les prédictions des modèles de Machine Learning est l'assemblage (ensembling). Une méthode de base consiste à faire la moyenne des prédictions de plusieurs modèles. Une approche plus avancée consiste à alimenter les prédictions de plusieurs modèles dans un autre modèle, qui produit les prédictions finales. Dans les deux cas, on améliore généralement la performance globale (pourvu que chaque modèle individuel soit de bonne qualité). Rappelez-vous que les forêts aléatoires utilisent aussi l'assemblage de nombreux arbres de décision.
Pour assembler les prédictions de notre réseau de neurones, nous allons générer des prédictions avec les 3 modèles que nous venons de créer — le modèle de base, le modèle avec la fonction de perte personnalisée et le modèle avec abandon (dropout). Ensuite, nous combinerons ces prédictions avec la fonction .hstack() de numpy, puis nous en ferons la moyenne par ligne avec np.mean(predictions, axis=1).
Cette activité fait partie du cours
Machine Learning pour la finance en Python
Instructions de l’exercice
- Créez des prédictions sur
scaled_train_featuresetscaled_test_featurespour les 3 modèles entraînés (model_1,model_2,model_3) à l'aide de la méthode.predict(). - Empilez horizontalement (
np.hstack()) les prédictions dans une matrice, puis calculez la moyenne par ligne pour obtenir les prédictions moyennes des ensembles d'entraînement et de test.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)
train_pred2 = ____
test_pred2 = ____
train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)
# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])