CommencezCommencez gratuitement

Prédiction du prix d'un actif

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

Vous utiliserez les prix boursiers 2005-2010 de Citibank, Goldman Sachs et J. P. Morgan pour entraîner un réseau qui prédira le prix de l'action de 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 s'affichera ensuite pour comparer les prix prédits de Morgan Stanley à leurs valeurs réelles sur 2005-2010. (Rappelez-vous que si les prédictions sont parfaites, le nuage de points se trouvera sur la ligne à 45 degrés du graphique.)

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

Cette activité fait partie du cours

Gestion quantitative des risques en Python

Voir le cours

Instructions de l’exercice

  • Définissez les données d'entrée comme tous les prices des banques sauf Morgan Stanley, et les données de sortie comme seulement 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), et la seconde avec 8 neurones.
  • Ajoutez une seule 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 ce code d’exemple.

# 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