Surapprentissage et assemblage

Machine Learning pour la finance en Python

Nathan George

Data Science Professor

surapprentissage

Machine Learning pour la finance en Python

Simplifier le modèle

réseau limité

Machine Learning pour la finance en Python

Options pour réseaux de neurones

Options contre le surapprentissage :

  • Réduire le nombre de nœuds
  • Utiliser la régularisation L1/L2
  • Dropout
  • Architecture autoencodeur
  • Arrêt anticipé
  • Ajouter du bruit aux données
  • Contraintes de norme max
  • Assemblage
Machine Learning pour la finance en Python

Dropout

dropout

Machine Learning pour la finance en Python

Dropout dans keras

from keras.layers import Dense, Dropout

model = Sequential() model.add(Dense(500, input_dim=scaled_train_features.shape[1], activation='relu')) model.add(Dropout(0.5)) model.add(Dense(100, activation='relu')) model.add(Dense(1, activation='linear'))
Machine Learning pour la finance en Python

Comparaison sur l'ensemble de test

Valeurs R$^2$ sur AMD sans dropout :

  • entraînement : 0,91
  • test : −0,72

Avec dropout :

  • entraînement : 0,46
  • test : −0,22
Machine Learning pour la finance en Python

Assemblage

forêt aléatoire

Machine Learning pour la finance en Python

Mettre en œuvre l'assemblage

# prédictions de 2 réseaux de neurones
test_pred1 = model_1.predict(scaled_test_features)
test_pred2 = model_2.predict(scaled_test_features)

# empiler horizontalement et moyenner par ligne test_preds = np.mean(np.hstack((test_pred1, test_pred2)), axis=1)
Machine Learning pour la finance en Python

Comparer l'ensemble

Score R$^2$ du Modèle 1 sur test :

  • −0,179

modèle 2 :

  • −0,148

ensemble (prédictions moyennées) :

  • −0,146
Machine Learning pour la finance en Python

Dropout et assemblage !

Machine Learning pour la finance en Python

Preparing Video For Download...