pykalman
pykalman ist eine Open-Source-Python-Bibliothek für Kalman-Filter, Glättung und Zustandsraummodelle.
pykalman ist eine schlanke Open-Source-Python-Bibliothek für Kalman-Filterung, Kalman-Glättung und Zustandsschätzung in Zeitreihen. Sie stellt effiziente Algorithmen für lineare und nichtlineare dynamische Systeme bereit und eignet sich für sequenzielle Datenmodellierung und Parameterschätzung.
Die Bibliothek ist bewusst einfach gehalten und richtet sich sowohl an Anwender in Praxis und Forschung als auch an Lernende, die Zustandsraummodelle verstehen und einsetzen möchten.
Zielsetzung
Viele Anwendungen erfordern eine robuste Schätzung verborgener Zustände aus verrauschten Messdaten – etwa in Signalverarbeitung, Zeitreihenanalyse oder Regelungstechnik. pykalman wurde entwickelt, um diese Aufgaben mit einer klaren, leicht verständlichen API und bewährten mathematischen Verfahren zu lösen.
Der Fokus liegt auf Einfachheit, Zuverlässigkeit und reproduzierbaren Ergebnissen.
Zentrale Merkmale
Kalman Filter für lineare Zustandsraummodelle
Kalman Smoother zur rückwärtsgerichteten Zustandsschätzung
Unscented Kalman Filter für nichtlineare Dynamiken
EM-Algorithmus zur Parameterschätzung
Unterstützung fehlender Messwerte
Online- und sequentielle Zustandsschätzung
Numerisch robuste Square-Root-Filter
Lineare Zustandsraummodelle
Kalman Filter
Der klassische Kalman Filter ermöglicht die rekursive Schätzung von Zuständen in linearen dynamischen Systemen mit Gaußschem Rauschen.
Kalman Smoother
Zusätzlich zur Vorwärtsfilterung erlaubt der Kalman Smoother eine verbesserte Zustandsschätzung durch Nutzung zukünftiger Beobachtungen.
Parameterschätzung
EM-Algorithmus
pykalman integriert den Expectation-Maximization-Algorithmus, um Modellparameter automatisch aus beobachteten Daten zu lernen. Dies erleichtert die Anwendung in realen Szenarien, in denen Systemparameter unbekannt sind.
Nichtlineare Modelle
Unscented Kalman Filter
Für nichtlineare Übergangs- oder Beobachtungsfunktionen unterstützt pykalman den Unscented Kalman Filter, der nichtlineare Effekte besser approximiert als lineare Ansätze.
Fehlende Daten und Online-Schätzung
Umgang mit fehlenden Messwerten
Die Bibliothek unterstützt explizit fehlende oder maskierte Beobachtungen und bleibt auch bei unvollständigen Zeitreihen stabil.
Online State Estimation
pykalman erlaubt inkrementelle Updates der Zustandsschätzung, wodurch es für Streaming-Daten und Echtzeitanwendungen geeignet ist.
Numerische Stabilität
Square-Root-Filter
Für erhöhte numerische Robustheit stehen Square-Root-Varianten wie der Cholesky Kalman Filter zur Verfügung, die besonders bei langen Zeitreihen oder schlecht konditionierten Problemen Vorteile bieten.
Einsatzgebiete
Zeitreihenanalyse und Signalverarbeitung
Zustands- und Trajektorienschätzung
Dynamische Systeme und Regelungstechnik
Tracking- und Sensordatenfusion
Forschung, Lehre und Prototyping
Open Source
pykalman ist freie Open-Source-Software und steht unter der BSD 3-Clause License. Die Bibliothek wurde ursprünglich von Daniel Duckworth entwickelt und wird heute von einer aktiven Community weiter gepflegt.
GC.OS unterstützt pykalman als Open-Source-Projekt für transparente, robuste und mathematisch fundierte Zustands- und Zeitreihenmodellierung.