Ich habe ein Paket erstellt, um Zeitreihen mit Python zu filtern
Einführung
Ich hatte keine gute Implementierung von Zeitreihenfiltern in Python, also habe ich es selbst gemacht.
Implementiert
Ich habe folgendes implementiert.
Kalman Filter
Geben Sie beim Erstellen einer Instanz die folgenden Matrizen $ F, G, Q, H, R $ an.
Zustandsraumdarstellung
x_{n+1} = F x_n + G v_n, \hspace{1em} v_n \sim N(O,Q) \\
y_n = H x_n + w_n, \hspace{2em} w_n \sim N(O,R)
Was du tun kannst
--Lucity-Berechnung
- Filterung
- Feste Abschnittsglättung
Partikelfilter
Geben Sie beim Erstellen einer Instanz die Statusübergangsmethode "Aktualisierung", die Protokollwahrscheinlichkeitsberechnungsmethode "Protokollwahrscheinlichkeit" und die Statusschätzungsmethode "Schätzung" an.
Zustandsraumdarstellung
x_{n+1} = F(x_n, v_n) \\
y_n = H(x_n) + w_n
Was du tun kannst
--Lucity-Berechnung
- Filterung
- Feste Teppichglättung
Repository
Informationen zur Verwendung finden Sie unter LESEN
ryskiwt/tsfilter: Time Series Filtering
Einfallsreichtum
- Das Zustandsraummodell kann zum Zeitpunkt der Generierung angegeben werden, damit es universell verwendet werden kann.
―― Achten Sie so weit wie möglich auf die Geschwindigkeit, indem Sie im Voraus Speicher zuweisen und das Kopieren von Arrays vermeiden.
»Stattdessen esse ich viel Gedächtnis
- Die zufällige Probenahme des Partikelfilters wurde mit "Numba" beschleunigt
»Ich habe es mit Cython verglichen, aber es hat sich nicht so sehr geändert, also habe ich mich für dieses entschieden.
von jetzt an
- Das Signal wird ausgegeben, aber der Zustand wird nicht ausgegeben, also verbessern Sie es.