Kom igångKom igång gratis

Prediktion av tillgångspriser

Nu kan du använda ett neuralt nätverk för att förutsäga ett tillgångspris – en central del av både kvantitativ finansiell analys och riskhantering.

Du använder aktiekurserna för Citibank, Goldman Sachs och J. P. Morgan från 2005–2010 för att träna ett nätverk att förutsäga Morgan Stanleys aktiekurs.

Du skapar och tränar ett neuralt nätverk med ett indatalager, ett utdatalager och två dolda lager.

Därefter visas ett spridningsdiagram så att du kan se hur nära de predikterade Morgan Stanley-kurserna ligger de faktiska värdena för 2005–2010. (Kom ihåg att om prediktionerna är perfekta, kommer punkterna i diagrammet att ligga längs diagrammets 45-graderslinje.)

Objekten Sequential och Dense är tillgängliga, liksom DataFrame:n prices med investmentbankers aktiekurser från 2005–2010.

Den här övningen är en del av kursen

Kvantitativ riskhantering i Python

Visa kurs

Övningsinstruktioner

  • Sätt indatan till alla bankers prices utom Morgan Stanleys, och utdatan till enbart Morgan Stanleys prices.
  • Skapa ett Sequential neuralt nätverk model med två dolda Dense-lager: det första med 16 neuroner (och tre indataneuroner) och det andra med 8 neuroner.
  • Lägg till ett enskilt Dense-utdatalager med 1 neuron för att representera Morgan Stanleys aktiekurs.
  • Kompilera det neurala nätverket och träna det genom att anpassa model.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod