Predicția prețului unui activ
Acum poți folosi o rețea neuronală pentru a prezice prețul unui activ – o componentă esențială atât în analiza financiară cantitativă, cât și în managementul riscului.
Vei folosi prețurile acțiunilor Citibank, Goldman Sachs și J. P. Morgan din perioada 2005–2010 pentru a antrena o rețea care să prezică prețul acțiunilor Morgan Stanley.
Vei crea și antrena o rețea neuronală cu un strat de intrare, un strat de ieșire și două straturi ascunse.
Apoi, un grafic de tip scatter va arăta cât de aproape sunt prețurile prezise ale Morgan Stanley de valorile lor reale din perioada 2005–2010. (Reține că, dacă predicțiile sunt perfecte, graficul de tip scatter va fi aliniat pe diagonala la 45 de grade a reprezentării.)
Obiectele Sequential și Dense sunt disponibile, alături de DataFrame-ul prices cu prețurile băncilor de investiții din 2005–2010.
Acest exercițiu face parte din cursul
Managementul Cantitativ al Riscului în Python
Instrucțiuni pentru exercițiu
- Setează datele de intrare ca fiind toate
pricesale băncilor cu excepția Morgan Stanley, iar datele de ieșire să fie doarpricesale Morgan Stanley. - Creează o rețea neuronală
Sequentialnumitămodelcu două straturi ascunseDense: primul cu 16 neuroni (și trei neuroni de intrare), iar al doilea cu 8 neuroni. - Adaugă un singur strat de ieșire
Densecu 1 neuron pentru a reprezenta prețul Morgan Stanley. - Compilează rețeaua neuronală și antreneaz-o prin ajustarea
model.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()