CommencerCommencer gratuitement

Prédiction de prix d’actif

Vous allez maintenant utiliser un réseau de neurones pour prédire un prix d’actif, une composante majeure de l’analyse financière quantitative et de la gestion des risques.

Vous utiliserez les cours boursiers 2005-2010 de Citibank, Goldman Sachs et J. P. Morgan pour entraîner un réseau à prédire le cours de l’action Morgan Stanley.

Vous allez créer et entraîner un réseau de neurones avec une couche d’entrée, une couche de sortie et deux couches cachées.

Un nuage de points sera ensuite affiché pour évaluer l’écart entre les prix prédits de Morgan Stanley et leurs valeurs réelles sur 2005-2010. (Rappelez-vous que si les prédictions sont parfaites, le nuage de points se situe sur la diagonale à 45 degrés du graphique.)

Les objets Sequential et Dense sont disponibles, ainsi que le DataFrame prices contenant les prix des banques d’investissement de 2005 à 2010.

Cet exercice fait partie du cours

Gestion quantitative des risques en Python

Afficher le cours

Instructions

  • Définissez les données d’entrée comme étant toutes les prices des banques sauf Morgan Stanley, et les données de sortie comme uniquement les prices de Morgan Stanley.
  • Créez un réseau de neurones Sequential nommé model avec deux couches cachées Dense : la première avec 16 neurones (et trois neurones d’entrée), la seconde avec 8 neurones.
  • Ajoutez une unique couche de sortie Dense de 1 neurone pour représenter le prix de Morgan Stanley.
  • Compilez le réseau de neurones, puis entraînez-le en ajustant le model.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Set the input and output data
training_input = prices.____('Morgan Stanley', axis=1)
training_output = prices['Morgan Stanley']

# Create and train the neural network with two hidden layers
model = ____()
model.add(Dense(16, input_dim=____, activation='sigmoid'))
model.add(____(8, activation='relu'))
model.add(____(1))

model.____(loss='mean_squared_logarithmic_error', optimizer='rmsprop')
model.____(training_input, training_output, epochs=100)

# Scatter plot of the resulting model prediction
axis.scatter(training_output, model.predict(training_input)); plt.show()
Modifier et exécuter le code