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, Auch in der Bibliothek
Arbeiten mit YAML in Go (Golang): Bibliotheken go-yaml und yaml.v3
HTML-Parsing in Swift: Die Bibliothek SwiftSoup für iOS/macOS
HTTP-Client für Go (Golang): Top-Bibliotheken für die Arbeit mit HTTP
Arbeiten mit ZIP-Archiven in PHP: vollständige Anleitung zu ZipArchive