{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["# Red recurrente para predicción de los valores de una acción\n","\n","## Introducción\n","\n","En este ejercicio vamos a predecir los valores que va a tomar una acción durante un número determinado de días al final de un período. Para ello debemos **cargar en Google Colab** el fichero CSV que se nos proporcionará con los datos de la acción en cuestión."],"metadata":{"id":"JeU-g1yxcXQo"}},{"cell_type":"markdown","source":["## Inicialización\n","\n","Inicializamos las librerías y variables de configuración necesarias antes de empezar"],"metadata":{"id":"5hWkZmBGctm9"}},{"cell_type":"code","source":["# Importar módulos necesarios\n","import numpy as np\n","import pandas as pd\n","import matplotlib.pyplot as plt\n","from keras.models import Sequential\n","from keras.layers import Input, Dense, Dropout, LSTM, Bidirectional\n","from sklearn.preprocessing import MinMaxScaler\n","\n","# Variables de configuración del problema\n","EPOCHS = 50 # Número de iteraciones de la red\n","NEURONAS_CAPA = 50 # Número de neuronas en cada capa oculta\n","T = 60 # Tamaño del \"timestep\""],"metadata":{"id":"FCaFgQWjYsFQ"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["Ahora vamos a cargar el fichero CSV y seleccionar los datos de entrada"],"metadata":{"id":"MfmNR7vEZk9u"}},{"cell_type":"code","source":["# Carga inicial de datos, fijando como índice la columna \"Date\"\n","datos = pd.read_csv('valores_accion.csv', index_col='Date', parse_dates=['Date'])\n","datos.head()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":238},"id":"-TOZr8YwZo98","executionInfo":{"status":"ok","timestamp":1739008576124,"user_tz":-60,"elapsed":162,"user":{"displayName":"Nacho Iborra Baeza","userId":"05178912028373152639"}},"outputId":"801385f9-4c4b-491f-d94a-ace9a285312d"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" Open High Low Close Volume Name\n","Date \n","2006-01-03 39.69 41.22 38.79 40.91 24232729 AABA\n","2006-01-04 41.22 41.90 40.77 40.97 20553479 AABA\n","2006-01-05 40.93 41.73 40.85 41.53 12829610 AABA\n","2006-01-06 42.88 43.57 42.80 43.21 29422828 AABA\n","2006-01-09 43.10 43.66 42.82 43.42 16268338 AABA"],"text/html":["\n","
\n"," | Open | \n","High | \n","Low | \n","Close | \n","Volume | \n","Name | \n","
---|---|---|---|---|---|---|
Date | \n","\n"," | \n"," | \n"," | \n"," | \n"," | \n"," |
2006-01-03 | \n","39.69 | \n","41.22 | \n","38.79 | \n","40.91 | \n","24232729 | \n","AABA | \n","
2006-01-04 | \n","41.22 | \n","41.90 | \n","40.77 | \n","40.97 | \n","20553479 | \n","AABA | \n","
2006-01-05 | \n","40.93 | \n","41.73 | \n","40.85 | \n","41.53 | \n","12829610 | \n","AABA | \n","
2006-01-06 | \n","42.88 | \n","43.57 | \n","42.80 | \n","43.21 | \n","29422828 | \n","AABA | \n","
2006-01-09 | \n","43.10 | \n","43.66 | \n","42.82 | \n","43.42 | \n","16268338 | \n","AABA | \n","