Klassifizieren Sie multivariate Zeitreihen

9

Ich habe einen Datensatz, der aus Zeitreihen (8 Punkte) mit ungefähr 40 Dimensionen besteht (also ist jede Zeitreihe 8 mal 40). Die entsprechende Ausgabe (die möglichen Ergebnisse für die Kategorien) ist entweder 0 oder 1.

Was wäre der beste Ansatz, um einen Klassifikator für Zeitreihen mit mehreren Dimensionen zu entwerfen?

Meine anfängliche Strategie bestand darin, Merkmale aus diesen Zeitreihen zu extrahieren: Mittelwert, Standard, maximale Variation für jede Dimension. Ich habe einen Datensatz erhalten, mit dem ich einen RandomTreeForest trainiert habe. Da ich mir der völligen Naivität bewusst bin und schlechte Ergebnisse erzielt habe, suche ich jetzt nach einem verbesserten Modell.

Meine Leads sind die folgenden: Klassifizieren Sie die Reihen für jede Dimension (unter Verwendung des KNN-Algorithmus und der DWT), reduzieren Sie die Dimensionalität mit PCA und verwenden Sie einen endgültigen Klassifikator entlang der mehrdimensionalen Kategorien. Da ich für ML relativ neu bin, weiß ich nicht, ob ich völlig falsch liege.

AugBar
quelle
Was Sie tun, ist ein ziemlich guter Ansatz. Wie viele Proben haben Sie in Ihrem Datensatz?
Kasra Manshaei
Ich habe ungefähr 500 000 Zeitreihen (wobei ich mich daran erinnere, dass jede Zeitreihe 8 Zeitstempel * 40 Dimensionen hat)
AugBar
Haben Sie versucht, nur die 320 Features Raw zu verwenden? 320 Funktionen sind nicht viel für 500.000 Proben
Jan van der Vegt
@ Jan van der Vegt: Ich habe diese Methode mit einem neuronalen Netzwerk ausprobiert, aber die Ergebnisse waren nicht so überzeugend - ich habe die Rohdaten ohne Vorverarbeitung verwendet. Welche Operationen sollte ich vorher auf meine 320-Features-Raws anwenden, um den Klassifikator zu füttern?
AugBar
1
Im Falle eines neuronalen Netzwerks ist die Normalisierung Ihrer Eingabe wichtig, abhängig von der Reichweite Ihrer Funktionen, die möglicherweise von Bedeutung sind. Aber ich würde nur die Rohfunktionen in eine RF einspeisen und sehen, wie gut das funktioniert. Es erfordert weniger Abstimmung, um zu sehen, ob Sie leicht etwas daraus machen können
Jan van der Vegt

Antworten:

5

Du bist auf dem richtigen Weg. Schauen Sie sich die Berechnung einiger weiterer Funktionen im Zeit- und Frequenzbereich an. Solange die Anzahl der Beispiele >> die Anzahl der Funktionen beträgt, ist es unwahrscheinlich, dass Sie überanpassen. Gibt es Literatur zu einem ähnlichen Problem? Wenn ja, ist dies immer ein guter Ausgangspunkt.

Versuchen Sie es mit einem Boosted Tree Classifier wie xgboost oder LightGBM. Sie sind in der Regel einfacher zu optimieren und liefern mit Standardparametern gute Ergebnisse. Sowohl Random Forest- als auch Boosted Tree-Klassifizierer können die Wichtigkeit von Features zurückgeben, sodass Sie sehen können, welche Features für das Problem relevant sind. Sie können auch versuchen, Funktionen zu entfernen, um nach Kovarianzen zu suchen.

Am wichtigsten ist jedoch, dass Sie sicherstellen, dass Ihr Problem richtig definiert ist, wenn Ihre Ergebnisse unerwartet schlecht sind. Überprüfen Sie Ihre Ergebnisse manuell, um sicherzustellen, dass Ihre Pipeline keine Fehler enthält.

mpotma
quelle
6

Wenn Sie sich in Python befinden, gibt es einige Pakete, mit denen Sie automatisch Hunderte oder Tausende von Features aus Ihren Zeitreihen extrahieren, mit Ihren Labels korrelieren, die wichtigsten auswählen und Modelle für Sie trainieren können.

https://github.com/blue-yonder/tsfresh

https://github.com/rtavenar/tslearn

Doktor J.
quelle
2

Sie können Ihrem Datensatz weitere Funktionen hinzufügen (siehe unten).

  1. Sie können das Nolds-Paket ausprobieren, wenn Ihre Daten aus einem stark nichtlinearen Prozess stammen.

  2. max, min, mean, skew, kurtosis und wenn möglich einige rollende Statistiken.

Ich arbeite an etwas Ähnlichem und habe eine verwandte Frage gestellt .

Anurag Upadhyaya
quelle
1

Ich stimme Jan van der Vegt zu, Standardisierung (z. B. [-1, 1]) oder Normalisierung N (0, 1) in Kombination mit der Aktivierungsfunktion können bei neuronalen Netzen sehr wichtig sein. Ich würde die Dissertation von Pichaid Varoonchotikul überprüfen: "Hochwasservorhersage mit künstlichen neuronalen Netzen" für die Vor- und Nachteile von ANNs. Es hat sehr interessante Vorbehalte. Wie auch immer, ich versuche es zuerst ohne, aber wenn die Ergebnisse unbefriedigend sind, bin ich es gewohnt, Versuche mit beiden zu machen. Ich bin mir nicht sicher, ob es helfen wird, aber ich würde das R-Paket TSclust und die zugehörigen Dokumente überprüfen . Die Autoren sind sehr freundlich und helfen Ihnen, bestimmte Modelle dafür zu finden. Sie sind Experten für Zeitreihenanalysen! Viel Glück!

Rafa M. Mas
quelle