TSFresh: extracción de características de series temporales en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es TSFresh y para qué sirve?

TSFresh (Time Series Feature extraction based on scalable hypothesis tests) es una potente librería de Python diseñada específicamente para extraer automáticamente una gran cantidad de características (features) a partir de series temporales. Desarrollada por un equipo de investigadores de Alemania, esta librería resuelve una de las tareas más tediosas en el análisis de datos: transformar datos temporales sin procesar en características informativas listas para el machine learning.

El objetivo principal de TSFresh es liberar a los analistas de la necesidad de crear manualmente características para series temporales. En su lugar, la librería genera automáticamente cientos de diferentes características estadísticas y luego utiliza métodos de prueba de hipótesis estadísticas para seleccionar las más relevantes.

Arquitectura y principios de funcionamiento de TSFresh

TSFresh se basa en el principio de selección de características con fundamento estadístico. La librería utiliza un enfoque de dos fases: primero extrae la mayor cantidad posible de características de las series temporales y luego aplica pruebas estadísticas para determinar su relevancia con respecto a la variable objetivo.

La arquitectura interna de la librería incluye varios componentes clave:

  • Módulo de extracción de características con más de 60 funciones diferentes
  • Sistema de filtrado estadístico basado en valores p
  • Algoritmos optimizados para trabajar con grandes volúmenes de datos
  • Integración con librerías populares de machine learning

Ventajas de usar TSFresh

TSFresh ofrece una serie de ventajas significativas para trabajar con series temporales:

Automatización del proceso de feature engineering - la librería genera cientos de características por sí sola, ahorrando un tiempo valioso al desarrollador.

Fundamento estadístico - todas las características seleccionadas pasan por una rigurosa verificación estadística de relevancia.

Escalabilidad - el soporte para procesamiento paralelo permite trabajar eficientemente con grandes conjuntos de datos.

Flexibilidad de configuración - posibilidad de ajustar los parámetros de extracción de características según la tarea específica.

Amplio espectro de funciones - desde medidas estadísticas simples hasta indicadores complejos de no linealidad y caos.

Compatibilidad con el ecosistema Python - integración completa con pandas, scikit-learn, NumPy y otras librerías populares.

Instalación y configuración del entorno

Para trabajar con TSFresh es necesario instalar varios componentes. La instalación principal se realiza a través de pip:

pip install tsfresh

Para un funcionamiento completo, se recomienda instalar también las dependencias adicionales:

pip install scikit-learn pandas numpy matplotlib seaborn

Al trabajar con grandes volúmenes de datos, puede ser necesario instalar paquetes adicionales para optimizar el rendimiento:

pip install dask[complete] numba

Importación básica de los módulos necesarios:

from tsfresh import extract_features, select_features
from tsfresh.utilities.dataframe_functions import impute
from tsfresh.feature_extraction import ComprehensiveFCParameters, EfficientFCParameters
from tsfresh.feature_selection.relevance import calculate_relevance_table
import pandas as pd
import numpy as np

Estructura de datos y requisitos de formato

TSFresh trabaja con datos en un formato especial llamado "tabla larga" (long format). Este formato requiere una estructura específica del DataFrame:

import pandas as pd

# Ejemplo de estructura de datos correcta
df = pd.DataFrame({
    'id': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3],
    'time': [1, 2, 3, 4, 1, 2, 3,                    

Recommendations