Previsão de preços de ativos
Agora você pode usar uma rede neural para prever o preço de um ativo, que é um grande componente da análise financeira quantitativa e do gerenciamento de riscos.
Você usará os preços das ações do Citibank, Goldman Sachs e J. P. Morgan entre 2005 e 2010 para treinar uma rede para prever o preço das ações do Morgan Stanley.
Você criará e treinará uma rede neural com uma camada de entrada, uma camada de saída e duas camadas ocultas.
Em seguida, será mostrado um gráfico de dispersão para você ver a distância entre os preços previstos pelo Morgan Stanley e seus valores reais no período de 2005 a 2010. (Lembre-se de que, se as previsões forem perfeitas, o gráfico de dispersão resultante ficará na linha de 45 graus do gráfico).
Os objetos Sequential
e Dense
estão disponíveis, bem como o DataFrame prices
com preços de bancos de investimento de 2005 a 2010.
Este exercício faz parte do curso
Gerenciamento quantitativo de riscos em Python
Instruções do exercício
- Defina os dados de entrada como sendo todos os bancos
prices
, exceto o Morgan Stanley, e os dados de saída como sendo apenas oprices
do Morgan Stanley. - Crie uma rede neural
Sequential
model
com 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 de 1 neurônio para representar o preço do Morgan Stanley.
- Compile a rede neural e treine-a ajustando o site
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()