Predição de preço de ativo
Agora você pode usar uma rede neural para prever o preço de um ativo, que é uma parte importante da análise financeira quantitativa e também da gestão de risco.
Você usará os preços das ações entre 2005 e 2010 do Citibank, Goldman Sachs e J. P. Morgan para treinar uma rede que preveja o preço da ação da Morgan Stanley.
Você vai criar e treinar uma rede neural com uma camada de entrada, uma camada de saída e duas camadas ocultas.
Depois, será exibido um gráfico de dispersão para ver quão longe os preços previstos da Morgan Stanley estão de seus valores reais ao longo de 2005–2010. (Lembre-se: se as previsões forem perfeitas, o gráfico de dispersão resultante ficará sobre a linha de 45 graus do gráfico.)
Os objetos Sequential e Dense estão disponíveis, assim como o DataFrame prices com os preços dos bancos de investimento de 2005–2010.
Este exercício faz parte do curso
Gerenciamento Quantitativo de Risco em Python
Instruções do exercício
- Defina os dados de entrada como todos os
pricesdos bancos exceto os da Morgan Stanley, e os dados de saída como apenas ospricesda Morgan Stanley. - Crie um
modelde rede neuralSequentialcom duas camadas ocultasDense: a primeira com 16 neurônios (e três neurônios de entrada) e a segunda com 8 neurônios. - Adicione uma única camada de saída Dense com 1 neurônio para representar o preço da Morgan Stanley.
- Compile a rede neural e treine-a ajustando o
model.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()