Koersvoorspelling van assets
Nu kun je een neuraal netwerk gebruiken om een assetprijs te voorspellen, een belangrijk onderdeel van kwantitatieve financiële analyse en risicobeheer.
Je gebruikt de aandelenkoersen van 2005–2010 van Citibank, Goldman Sachs en J. P. Morgan om een netwerk te trainen dat de koers van het aandeel van Morgan Stanley voorspelt.
Je maakt en traint een neuraal netwerk met één inputlaag, één outputlaag en twee verborgen lagen.
Daarna zie je een scatterplot om te bekijken hoe ver de voorspelde prijzen van Morgan Stanley afwijken van de werkelijke waarden over 2005–2010. (Onthoud: als de voorspellingen perfect zijn, ligt de scatterplot op de 45-gradenlijn van de grafiek.)
De objecten Sequential en Dense zijn beschikbaar, evenals de DataFrame prices met koersen van investment banks uit 2005–2010.
Deze oefening maakt deel uit van de cursus
Kwantitatief risicobeheer in Python
Oefeninstructies
- Stel de inputgegevens in op alle bank-
pricesbehalve Morgan Stanley, en de outputgegevens op alleen depricesvan Morgan Stanley. - Maak een
Sequentialneuraal netwerkmodelmet twee verborgenDense-lagen: de eerste met 16 neuronen (en drie inputneuronen) en de tweede met 8 neuronen. - Voeg één enkele Dense-outputlaag van 1 neuron toe om de prijs van Morgan Stanley weer te geven.
- Compileer het neurale netwerk en train het door het
modelte fitten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()