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
Instructions
- Définissez les données d’entrée comme étant toutes les
pricesdes banques sauf Morgan Stanley, et les données de sortie comme uniquement lespricesde Morgan Stanley. - Créez un réseau de neurones
Sequentialnommémodelavec deux couches cachéesDense: 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()