ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Defina os dados de entrada como todos os prices dos bancos exceto os da Morgan Stanley, e os dados de saída como apenas os prices da Morgan Stanley.
  • Crie um model de rede neural Sequential com duas camadas ocultas Dense: 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()
Editar e executar o código