ComenzarEmpieza gratis

Previsión del precio de los activos

Ahora puedes utilizar una red neuronal para prever un precio de activo, que es un componente importante del análisis financiero cuantitativo, así como de la gestión de riesgos.

Utilizarás los precios de las acciones de 2005-2010 de Citibank, Goldman Sachs y J. P. Morgan para entrenar una red que prevea el precio de la acción de Morgan Stanley.

Crearás y entrenarás una red neuronal con una capa de entrada, una capa de salida y dos capas ocultas.

A continuación, se mostrará un diagrama de dispersión para ver la distancia entre los precios previstos de Morgan Stanley y sus valores reales durante 2005-2010. (Recuerda que si las previsiones son perfectas, el diagrama de dispersión resultante se situará en la línea de 45 grados del diagrama).

Están disponibles los objetos Sequential y Dense, así como el DataFrame prices con los precios de banco de inversión de 2005-2010.

Este ejercicio forma parte del curso

Gestión cuantitativa de riesgos en Python

Ver curso

Instrucciones de ejercicio

  • Establece que los datos de entrada sean los prices de todos los bancos excepto Morgan Stanley, y que los datos de salida sean solo los prices de Morgan Stanley.
  • Crea un model de red neuronal Sequential con dos capas ocultas Dense: la primera con 16 neuronas (y tres neuronas de entrada) y la segunda con 8 neuronas.
  • Añade una sola capa de salida densa de 1 neurona para representar el precio de Morgan Stanley.
  • Compila la red neuronal y entrénala ajustando el model.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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 y ejecutar código