Menu iconMenu icon
Fundamentos de Ingeniería de Datos

Capítulo 9: Datos de series temporales: consideraciones especiales

9.3 Ejercicios prácticos para el capítulo 9

Estos ejercicios te ayudarán a practicar la creación e interpretación de características de fecha/hora, características con retraso y características de ventana móvil en datos de series temporales. Cada ejercicio se basa en las técnicas discutidas en este capítulo, permitiéndote profundizar en la manipulación de datos de series temporales y la ingeniería de características.

Ejercicio 1: Extracción de características de fecha/hora

Se te proporciona un conjunto de datos con registros diarios de ventas. Tu tarea es:

  1. Convertir la columna Date al formato datetime.
  2. Extraer AñoMesDía de la semana y Trimestre como características separadas.
import pandas as pd

# Sample data with dates
data = {'Date': ['2022-01-15', '2022-02-10', '2022-03-20', '2022-04-15', '2022-05-25'],
        'Sales': [200, 220, 250, 210, 230]}
df = pd.DataFrame(data)

# Solution: Convert Date column to datetime and extract date/time features
df['Date'] = pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Quarter'] = df['Date'].dt.quarter

print("Dataset with extracted date/time features:")
print(df)

Ejercicio 2: Creación de características con retraso

Usando el mismo conjunto de datos, crea características con retraso para representar las ventas de:

  1. El día anterior (Sales_Lag1).
  2. Dos días antes (Sales_Lag2).
# Solution: Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)

print("Dataset with lagged features:")
print(df)

Ejercicio 3: Creación de características de ventana móvil

Usando el mismo conjunto de datos, calcula las siguientes estadísticas móviles:

  1. Una media móvil de 3 días para la columna Sales.
  2. Una desviación estándar móvil de 3 días para la columna Sales.
# Solution: Create rolling mean and standard deviation
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()

print("Dataset with rolling features:")
print(df)

Ejercicio 4: Combinación de características de fecha/hora, con retraso y de ventana móvil

En este ejercicio, crearás un conjunto de datos combinado con características de fecha/hora, características con retraso y características de ventana móvil. Usando el conjunto de datos anterior, completa las siguientes tareas:

  1. Extrae AñoMes y Día de la semana.
  2. Crea una característica Sales_Lag1 para las ventas del día anterior.
  3. Calcula una media móvil de 3 días para la columna Sales.
# Solution: Combine date/time, lagged, and rolling features
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Sales_Lag1'] = df['Sales'].shift(1)
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()

print("Combined dataset with date/time, lagged, and rolling features:")
print(df)

Ejercicio 5: Codificación de características cíclicas

Para la característica Día de la semana en el conjunto de datos anterior, aplica codificación de seno y coseno para capturar su naturaleza cíclica. Esto ayudará al modelo a reconocer que los días de la semana forman un ciclo repetitivo.

import numpy as np

# Solution: Encode Day of the Week as cyclical features
df['DayOfWeek_sin'] = np.sin(2 * np.pi * df['DayOfWeek'] / 7)
df['DayOfWeek_cos'] = np.cos(2 * np.pi * df['DayOfWeek'] / 7)

print("Dataset with cyclical encoding for Day of the Week:")
print(df[['DayOfWeek', 'DayOfWeek_sin', 'DayOfWeek_cos']])

Estos ejercicios cubren los fundamentos del trabajo con características de fecha/hora, retardadas y de ventana en datos de series temporales, junto con técnicas de codificación cíclica. Al practicar estos métodos, obtendrás una comprensión más profunda de cómo crear e interpretar características dependientes del tiempo, que son esenciales para una predicción efectiva en series temporales.

9.3 Ejercicios prácticos para el capítulo 9

Estos ejercicios te ayudarán a practicar la creación e interpretación de características de fecha/hora, características con retraso y características de ventana móvil en datos de series temporales. Cada ejercicio se basa en las técnicas discutidas en este capítulo, permitiéndote profundizar en la manipulación de datos de series temporales y la ingeniería de características.

Ejercicio 1: Extracción de características de fecha/hora

Se te proporciona un conjunto de datos con registros diarios de ventas. Tu tarea es:

  1. Convertir la columna Date al formato datetime.
  2. Extraer AñoMesDía de la semana y Trimestre como características separadas.
import pandas as pd

# Sample data with dates
data = {'Date': ['2022-01-15', '2022-02-10', '2022-03-20', '2022-04-15', '2022-05-25'],
        'Sales': [200, 220, 250, 210, 230]}
df = pd.DataFrame(data)

# Solution: Convert Date column to datetime and extract date/time features
df['Date'] = pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Quarter'] = df['Date'].dt.quarter

print("Dataset with extracted date/time features:")
print(df)

Ejercicio 2: Creación de características con retraso

Usando el mismo conjunto de datos, crea características con retraso para representar las ventas de:

  1. El día anterior (Sales_Lag1).
  2. Dos días antes (Sales_Lag2).
# Solution: Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)

print("Dataset with lagged features:")
print(df)

Ejercicio 3: Creación de características de ventana móvil

Usando el mismo conjunto de datos, calcula las siguientes estadísticas móviles:

  1. Una media móvil de 3 días para la columna Sales.
  2. Una desviación estándar móvil de 3 días para la columna Sales.
# Solution: Create rolling mean and standard deviation
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()

print("Dataset with rolling features:")
print(df)

Ejercicio 4: Combinación de características de fecha/hora, con retraso y de ventana móvil

En este ejercicio, crearás un conjunto de datos combinado con características de fecha/hora, características con retraso y características de ventana móvil. Usando el conjunto de datos anterior, completa las siguientes tareas:

  1. Extrae AñoMes y Día de la semana.
  2. Crea una característica Sales_Lag1 para las ventas del día anterior.
  3. Calcula una media móvil de 3 días para la columna Sales.
# Solution: Combine date/time, lagged, and rolling features
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Sales_Lag1'] = df['Sales'].shift(1)
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()

print("Combined dataset with date/time, lagged, and rolling features:")
print(df)

Ejercicio 5: Codificación de características cíclicas

Para la característica Día de la semana en el conjunto de datos anterior, aplica codificación de seno y coseno para capturar su naturaleza cíclica. Esto ayudará al modelo a reconocer que los días de la semana forman un ciclo repetitivo.

import numpy as np

# Solution: Encode Day of the Week as cyclical features
df['DayOfWeek_sin'] = np.sin(2 * np.pi * df['DayOfWeek'] / 7)
df['DayOfWeek_cos'] = np.cos(2 * np.pi * df['DayOfWeek'] / 7)

print("Dataset with cyclical encoding for Day of the Week:")
print(df[['DayOfWeek', 'DayOfWeek_sin', 'DayOfWeek_cos']])

Estos ejercicios cubren los fundamentos del trabajo con características de fecha/hora, retardadas y de ventana en datos de series temporales, junto con técnicas de codificación cíclica. Al practicar estos métodos, obtendrás una comprensión más profunda de cómo crear e interpretar características dependientes del tiempo, que son esenciales para una predicción efectiva en series temporales.

9.3 Ejercicios prácticos para el capítulo 9

Estos ejercicios te ayudarán a practicar la creación e interpretación de características de fecha/hora, características con retraso y características de ventana móvil en datos de series temporales. Cada ejercicio se basa en las técnicas discutidas en este capítulo, permitiéndote profundizar en la manipulación de datos de series temporales y la ingeniería de características.

Ejercicio 1: Extracción de características de fecha/hora

Se te proporciona un conjunto de datos con registros diarios de ventas. Tu tarea es:

  1. Convertir la columna Date al formato datetime.
  2. Extraer AñoMesDía de la semana y Trimestre como características separadas.
import pandas as pd

# Sample data with dates
data = {'Date': ['2022-01-15', '2022-02-10', '2022-03-20', '2022-04-15', '2022-05-25'],
        'Sales': [200, 220, 250, 210, 230]}
df = pd.DataFrame(data)

# Solution: Convert Date column to datetime and extract date/time features
df['Date'] = pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Quarter'] = df['Date'].dt.quarter

print("Dataset with extracted date/time features:")
print(df)

Ejercicio 2: Creación de características con retraso

Usando el mismo conjunto de datos, crea características con retraso para representar las ventas de:

  1. El día anterior (Sales_Lag1).
  2. Dos días antes (Sales_Lag2).
# Solution: Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)

print("Dataset with lagged features:")
print(df)

Ejercicio 3: Creación de características de ventana móvil

Usando el mismo conjunto de datos, calcula las siguientes estadísticas móviles:

  1. Una media móvil de 3 días para la columna Sales.
  2. Una desviación estándar móvil de 3 días para la columna Sales.
# Solution: Create rolling mean and standard deviation
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()

print("Dataset with rolling features:")
print(df)

Ejercicio 4: Combinación de características de fecha/hora, con retraso y de ventana móvil

En este ejercicio, crearás un conjunto de datos combinado con características de fecha/hora, características con retraso y características de ventana móvil. Usando el conjunto de datos anterior, completa las siguientes tareas:

  1. Extrae AñoMes y Día de la semana.
  2. Crea una característica Sales_Lag1 para las ventas del día anterior.
  3. Calcula una media móvil de 3 días para la columna Sales.
# Solution: Combine date/time, lagged, and rolling features
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Sales_Lag1'] = df['Sales'].shift(1)
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()

print("Combined dataset with date/time, lagged, and rolling features:")
print(df)

Ejercicio 5: Codificación de características cíclicas

Para la característica Día de la semana en el conjunto de datos anterior, aplica codificación de seno y coseno para capturar su naturaleza cíclica. Esto ayudará al modelo a reconocer que los días de la semana forman un ciclo repetitivo.

import numpy as np

# Solution: Encode Day of the Week as cyclical features
df['DayOfWeek_sin'] = np.sin(2 * np.pi * df['DayOfWeek'] / 7)
df['DayOfWeek_cos'] = np.cos(2 * np.pi * df['DayOfWeek'] / 7)

print("Dataset with cyclical encoding for Day of the Week:")
print(df[['DayOfWeek', 'DayOfWeek_sin', 'DayOfWeek_cos']])

Estos ejercicios cubren los fundamentos del trabajo con características de fecha/hora, retardadas y de ventana en datos de series temporales, junto con técnicas de codificación cíclica. Al practicar estos métodos, obtendrás una comprensión más profunda de cómo crear e interpretar características dependientes del tiempo, que son esenciales para una predicción efectiva en series temporales.

9.3 Ejercicios prácticos para el capítulo 9

Estos ejercicios te ayudarán a practicar la creación e interpretación de características de fecha/hora, características con retraso y características de ventana móvil en datos de series temporales. Cada ejercicio se basa en las técnicas discutidas en este capítulo, permitiéndote profundizar en la manipulación de datos de series temporales y la ingeniería de características.

Ejercicio 1: Extracción de características de fecha/hora

Se te proporciona un conjunto de datos con registros diarios de ventas. Tu tarea es:

  1. Convertir la columna Date al formato datetime.
  2. Extraer AñoMesDía de la semana y Trimestre como características separadas.
import pandas as pd

# Sample data with dates
data = {'Date': ['2022-01-15', '2022-02-10', '2022-03-20', '2022-04-15', '2022-05-25'],
        'Sales': [200, 220, 250, 210, 230]}
df = pd.DataFrame(data)

# Solution: Convert Date column to datetime and extract date/time features
df['Date'] = pd.to_datetime(df['Date'])
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Quarter'] = df['Date'].dt.quarter

print("Dataset with extracted date/time features:")
print(df)

Ejercicio 2: Creación de características con retraso

Usando el mismo conjunto de datos, crea características con retraso para representar las ventas de:

  1. El día anterior (Sales_Lag1).
  2. Dos días antes (Sales_Lag2).
# Solution: Create lagged features
df['Sales_Lag1'] = df['Sales'].shift(1)
df['Sales_Lag2'] = df['Sales'].shift(2)

print("Dataset with lagged features:")
print(df)

Ejercicio 3: Creación de características de ventana móvil

Usando el mismo conjunto de datos, calcula las siguientes estadísticas móviles:

  1. Una media móvil de 3 días para la columna Sales.
  2. Una desviación estándar móvil de 3 días para la columna Sales.
# Solution: Create rolling mean and standard deviation
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()
df['RollingStd_3'] = df['Sales'].rolling(window=3).std()

print("Dataset with rolling features:")
print(df)

Ejercicio 4: Combinación de características de fecha/hora, con retraso y de ventana móvil

En este ejercicio, crearás un conjunto de datos combinado con características de fecha/hora, características con retraso y características de ventana móvil. Usando el conjunto de datos anterior, completa las siguientes tareas:

  1. Extrae AñoMes y Día de la semana.
  2. Crea una característica Sales_Lag1 para las ventas del día anterior.
  3. Calcula una media móvil de 3 días para la columna Sales.
# Solution: Combine date/time, lagged, and rolling features
df['Year'] = df['Date'].dt.year
df['Month'] = df['Date'].dt.month
df['DayOfWeek'] = df['Date'].dt.dayofweek
df['Sales_Lag1'] = df['Sales'].shift(1)
df['RollingMean_3'] = df['Sales'].rolling(window=3).mean()

print("Combined dataset with date/time, lagged, and rolling features:")
print(df)

Ejercicio 5: Codificación de características cíclicas

Para la característica Día de la semana en el conjunto de datos anterior, aplica codificación de seno y coseno para capturar su naturaleza cíclica. Esto ayudará al modelo a reconocer que los días de la semana forman un ciclo repetitivo.

import numpy as np

# Solution: Encode Day of the Week as cyclical features
df['DayOfWeek_sin'] = np.sin(2 * np.pi * df['DayOfWeek'] / 7)
df['DayOfWeek_cos'] = np.cos(2 * np.pi * df['DayOfWeek'] / 7)

print("Dataset with cyclical encoding for Day of the Week:")
print(df[['DayOfWeek', 'DayOfWeek_sin', 'DayOfWeek_cos']])

Estos ejercicios cubren los fundamentos del trabajo con características de fecha/hora, retardadas y de ventana en datos de series temporales, junto con técnicas de codificación cíclica. Al practicar estos métodos, obtendrás una comprensión más profunda de cómo crear e interpretar características dependientes del tiempo, que son esenciales para una predicción efectiva en series temporales.