Heim  >  Artikel  >  Backend-Entwicklung  >  Extrahieren Sie eine große Anzahl von Zeitreihenfunktionen mit einer kleinen Menge Code

Extrahieren Sie eine große Anzahl von Zeitreihenfunktionen mit einer kleinen Menge Code

王林
王林nach vorne
2023-04-25 14:40:081201Durchsuche

Herkömmliche Algorithmen für maschinelles Lernen können die zeitliche Reihenfolge von Zeitreihendaten nicht erfassen. Datenwissenschaftler müssen relevantes Feature-Engineering durchführen, um die wichtigen Merkmale der Daten in mehreren Metriken zu erfassen. Das Generieren einer großen Anzahl von Zeitreihenmerkmalen und das Extrahieren relevanter Merkmale daraus ist eine zeitaufwändige und mühsame Aufgabe.

几行 Python 代码就可以提取数百个时间序列特征

Das tsfresh-Paket von Python kann standardmäßig Hunderte gemeinsamer Funktionen für Zeitreihendaten generieren. In diesem Artikel werden wir die Verwendung des tsfresh-Pakets ausführlich besprechen.

tsfresh ist ein Open-Source-Paket, das Hunderte relevanter Zeitreihenfunktionen generieren kann. Mit tsfresh generierte Funktionen können zur Lösung von Anwendungsfällen in den Bereichen Klassifizierung, Vorhersage und Ausreißererkennung verwendet werden. Das

tsfresh-Paket bietet verschiedene Funktionen zum Durchführen von Feature-Engineering an Zeitreihendaten, darunter:

  • Feature-Generierung
  • Feature-Auswahl
  • Kompatibilität mit Big Data

Die Installation von tsfresh ist ebenfalls eine sehr einfache, offiziell bereitgestellte Installationsmethode von pip und conda:

pip install -U tsfresh# orconda install -c conda-forge tsfresh

1. Feature-Generierung

tsfresh-Paket bietet eine API zur automatischen Feature-Generierung, die mehr als 750 verwandte Features aus einer Zeitreihenvariablen generieren kann. Es wird eine breite Palette von Funktionen generiert, darunter:

  • Beschreibende Statistiken (Mittelwert, Maximum, Korrelation usw.)
  • Physikbasierte Nichtlinearitäts- und Komplexitätsmetriken
  • Funktionen für die digitale Signalverarbeitung
  • Historische Komprimierungsfunktionen

Verwendung die Funktion tsfresh.extract_features() zum Generieren von 789 Features aus mehreren Domänen für 1 Zeitreihenvariable.

import pandas as pdfrom tsfresh import select_features# Read the time-series datadf = pd.read_excel("train.xlsx", parse_dates=['date']).set_index('date')# automated feature generationfeatures = tsfresh.extract_features(df, column_, column_sort="date")

Da es zu viele Funktionen gibt, lesen Sie bitte die offizielle Dokumentation für eine detaillierte Einführung aller Funktionen.

2. Feature-Auswahl

Das tsfresh-Paket bietet auch eine Feature-Auswahlimplementierung basierend auf Hypothesentests, die zur Identifizierung relevanter Features der Zielvariablen verwendet werden kann. Um die Anzahl irrelevanter Features zu begrenzen, enthält tsfresh den Fresh-Algorithmus (Fresh steht für Feature-Extraktion basierend auf skalierbaren Hypothesentests). Mit der Funktion

tsfresh.select_features() können Benutzer die Funktionsauswahl implementieren.

3. Kompatibel mit Big Data

Wenn wir eine große Menge an Zeitreihendaten haben. tsfresh bietet außerdem APIs zur Erweiterung der Feature-Generierung/-Extraktion sowie der Implementierung der Feature-Auswahl für große Datenmengen:

  • Multithread-Verarbeitung: Das Standardpaket tsfresh kann die Feature-Generierung/-Extraktion und die Feature-Auswahl parallel auf mehreren Kernen ausführen.
  • Verteiltes Framework: tsfresh implementiert außerdem ein eigenes verteiltes Framework, um Feature-Berechnungen auf mehrere Maschinen zu verteilen und so die Berechnungen zu beschleunigen.
  • Spark-kompatibel: tsfresh kann auch Spark oder Dask verwenden, um sehr große Datenmengen zu verarbeiten.

Schließlich kann tsfresh in wenigen Zeilen Python-Code relevante Features für Zeitreihenfeatures generieren und auswählen. Es extrahiert und wählt automatisch über 750 in der Praxis getestete Funktionen aus mehreren Bereichen zeitbasierter Datenproben aus. Dadurch wird die Arbeitszeit, die Datenwissenschaftler mit der Feature-Entwicklung verschwenden, erheblich reduziert.

Und Zeitreihendaten sind ziemlich groß. tsfresh verwendet auch Multithreading und unterstützt Dask und Spark, um große Datenproben zu verarbeiten, die nicht von einer einzelnen Maschine verarbeitet werden können.

Das obige ist der detaillierte Inhalt vonExtrahieren Sie eine große Anzahl von Zeitreihenfunktionen mit einer kleinen Menge Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen