Generación de secuencias
Para poder entrenar redes neuronales con datos secuenciales, primero tienes que preprocesarlos. Trocearás los datos en pares de entrada-objetivo, donde las entradas son un cierto número de puntos de datos consecutivos y el objetivo es el siguiente punto de datos.
Tu tarea es definir una función para hacer esto llamada create_sequences()
. Como entradas, recibirá datos almacenados en un DataFrame, df
y seq_length
, la longitud de las entradas. Como salida, debe devolver dos matrices NumPy, una con las secuencias de entrada y otra con los objetivos correspondientes.
A modo de recordatorio, este es el aspecto del DataFrame df
:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
Este ejercicio forma parte del curso
Aprendizaje profundo intermedio con PyTorch
Instrucciones del ejercicio
- Itera por el intervalo del número de puntos de datos menos la longitud de una secuencia de entrada.
- Define las entradas
x
como la segmentación dedf
desde la filai
hasta la filai + seq_length
y la columna en el índice1
. - Define el objetivo
y
como la porción dedf
en el índice de la filai + seq_length
y la columna en el índice1
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
import numpy as np
def create_sequences(df, seq_length):
xs, ys = [], []
# Iterate over data indices
for i in range(____):
# Define inputs
x = df.iloc[____, ____]
# Define target
y = df.iloc[____, ____]
xs.append(x)
ys.append(y)
return np.array(xs), np.array(ys)