Prognose von Asset-Preisen
Jetzt kannst du ein neuronales Netz verwenden, um einen Asset-Preis vorherzusagen – eine zentrale Aufgabe der quantitativen Finanzanalyse und des Risikomanagements.
Du nutzt die Aktienkurse von 2005–2010 von Citibank, Goldman Sachs und J. P. Morgan, um ein Netz zu trainieren, das den Kurs der Morgan-Stanley-Aktie vorhersagt.
Du erstellst und trainierst ein neuronales Netz mit einer Eingabeschicht, einer Ausgabeschicht und zwei verborgenen Schichten.
Anschließend wird ein Streudiagramm angezeigt, das zeigt, wie stark die vorhergesagten Morgan-Stanley-Preise von den tatsächlichen Werten im Zeitraum 2005–2010 abweichen. (Erinnere dich: Sind die Vorhersagen perfekt, liegt das Streudiagramm auf der 45-Grad-Linie.)
Die Objekte Sequential und Dense sind verfügbar sowie das DataFrame prices mit den Kursen der Investmentbanken von 2005–2010.
Diese Übung ist Teil des Kurses
Quantitative Risk Management in Python
Anleitung zur Übung
- Setze die Eingabedaten auf alle Bank-
pricesaußer Morgan Stanley und die Ausgabedaten auf nur diepricesvon Morgan Stanley. - Erstelle ein
Sequential-neuronales Netzmodelmit zwei verborgenenDense-Schichten: die erste mit 16 Neuronen (und drei Eingabeneuronen) und die zweite mit 8 Neuronen. - Füge eine einzelne dichte Ausgabeschicht mit 1 Neuron hinzu, die den Preis von Morgan Stanley repräsentiert.
- Kompiliere das neuronale Netz und trainiere es, indem du das
modelfitst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()