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
Övningsinstruktioner
- Sätt indatan till alla bankers
pricesutom Morgan Stanleys, och utdatan till enbart Morgan Stanleysprices. - Skapa ett
Sequentialneuralt nätverkmodelmed två doldaDense-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()