TSFresh – Merkmalsextraktion aus Zeitreihen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist TSFresh und warum wird es benötigt?

TSFresh (Time Series Feature extraction based on scalable hypothesis tests) ist eine leistungsstarke Python-Bibliothek, die speziell für die automatische Extraktion einer Vielzahl von Merkmalen aus Zeitreihen entwickelt wurde. Entwickelt von einem Forscherteam aus Deutschland, löst diese Bibliothek eine der zeitaufwändigsten Aufgaben in der Datenanalyse: die Umwandlung roher Zeitdaten in aussagekräftige Merkmale, die für maschinelles Lernen geeignet sind.

Die Hauptaufgabe von TSFresh besteht darin, Analysten die manuelle Erstellung von Merkmalen für Zeitreihen zu ersparen. Stattdessen generiert die Bibliothek automatisch hunderte verschiedener statistischer Kennzahlen und verwendet anschließend Methoden der statistischen Hypothesenprüfung, um die relevantesten Merkmale auszuwählen.

Architektur und Funktionsweise von TSFresh

TSFresh basiert auf dem Prinzip der statistisch fundierten Merkmalsauswahl. Die Bibliothek verfolgt einen zweistufigen Ansatz: Zunächst werden so viele Merkmale wie möglich aus den Zeitreihen extrahiert, dann werden statistische Tests angewendet, um deren Signifikanz in Bezug auf die Zielvariable zu bestimmen.

Die interne Architektur der Bibliothek umfasst mehrere Schlüsselkomponenten:

  • Ein Merkmalsextraktionsmodul mit über 60 verschiedenen Funktionen
  • Ein System zur statistischen Filterung basierend auf p-Werten
  • Optimierte Algorithmen für die Verarbeitung großer Datenmengen
  • Integration mit gängigen Machine-Learning-Bibliotheken

Vorteile der Nutzung von TSFresh

TSFresh bietet eine Reihe wesentlicher Vorteile für die Arbeit mit Zeitreihen:

Automatisierung des Feature Engineering – Die Bibliothek generiert eigenständig hunderte Merkmale, was dem Entwickler erheblich Zeit spart.

Statistische Fundierung – Alle ausgewählten Merkmale durchlaufen eine strenge statistische Prüfung auf Signifikanz.

Skalierbarkeit – Die Unterstützung paralleler Verarbeitung ermöglicht effizientes Arbeiten mit großen Datensätzen.

Flexible Konfiguration – Die Parameter der Merkmalsextraktion können an die spezifische Aufgabe angepasst werden.

Breites Funktionsspektrum – Von einfachen statistischen Maßen bis hin zu komplexen Indikatoren für Nichtlinearität und Chaotizität.

Kompatibilität mit dem Python-Ökosystem – Vollständige Integration mit pandas, scikit-learn, NumPy und anderen gängigen Bibliotheken.

Installation und Einrichtung der Umgebung

Für die Arbeit mit TSFresh müssen mehrere Komponenten installiert werden. Die Basisinstallation erfolgt über pip:

pip install tsfresh

Für eine vollständige Nutzung wird empfohlen, auch die folgenden zusätzlichen Abhängigkeiten zu installieren:

pip install scikit-learn pandas numpy matplotlib seaborn

Bei der Arbeit mit großen Datenmengen kann die Installation zusätzlicher Pakete zur Leistungsoptimierung erforderlich sein:

pip install dask[complete] numba

Der grundlegende Import der benötigten Module:

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

Datenstruktur und Format-Anforderungen

TSFresh arbeitet mit Daten in einem speziellen Format, dem sogenannten "Long Format". Dieses Format erfordert eine bestimmte Struktur des DataFrames:

import pandas as pd

# Beispiel einer korrekten Datenstruktur
df = pd.DataFrame({
    'id': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3],
    'time': [1, 2, 3, 4, 1, 2, 3,                    

Empfehlungen