Previsione del prezzo di un asset
Ora puoi usare una rete neurale per prevedere il prezzo di un asset, un aspetto fondamentale dell’analisi finanziaria quantitativa e del risk management.
Userai i prezzi azionari 2005-2010 di Citibank, Goldman Sachs e J. P. Morgan per addestrare una rete che preveda il prezzo dell’azione di Morgan Stanley.
Creerai e addestrerai una rete neurale con uno strato di input, uno di output e due strati nascosti.
Poi verrà mostrato uno scatter plot per vedere quanto i prezzi previsti di Morgan Stanley si discostano dai loro valori reali nel periodo 2005-2010. (Ricorda che se le previsioni sono perfette, lo scatter plot risultante giacerà sulla linea a 45 gradi del grafico.)
Gli oggetti Sequential e Dense sono disponibili, così come il DataFrame prices con i prezzi delle investment bank dal 2005 al 2010.
Questo esercizio fa parte del corso
Gestione quantitativa del rischio in Python
Istruzioni dell'esercizio
- Imposta i dati di input come tutti i
pricesdelle banche tranne Morgan Stanley, e i dati di output come solo ipricesdi Morgan Stanley. - Crea un
modelneuraleSequentialcon due livelli nascostiDense: il primo con 16 neuroni (e tre neuroni di input), e il secondo con 8 neuroni. - Aggiungi un singolo livello di output Dense con 1 neurone per rappresentare il prezzo di Morgan Stanley.
- Compila la rete neurale e addestrala effettuando il fit del
model.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()