The lite version of the main pydlm
package where the plotting functionality and the dependency on the matplotlib
has been removed. Most refactoring work will be conducted on this package to improve the class on multi-threading and online learning. In the meanwhile, the main pydlm
package will remain in its current structure for future development.
Going forward, the two packages will be developed under two different principles:
-
pydlm
will support more sophisticated models and more advanced algorithm such as sequential monte carlo. The algorithm will be optimized in terms of accuracy rather than latency. The primary use case is on advanced inference and data analysis with small datasets. -
pydlm-lite
will mainly focus on normal-normal and poisson-gamma models with the fastest possible fitting algorithm. The class design will support concurrency and online updating. The primary use case is scalable anomaly detection and forecasting with millions of time series.
- Plan to refactor the
dlm
class. Align with the goal to separate model and data, I'm going to refactor thedlm
class such that- The main
dlm
class will only contain model build information and is supposed to be 'const' after construction. - Time series data will be passed in as an argument to the
fit
orforwardFilter
and the fitted result will be returned as well as the model status. - Model status can also be passed into
fit
andforwardFilter
as a prior. The goal is to make thedlm
class state-independent, so that the class is thread-safe and can be shared by multiple threads for parallel processing. While in progress, all the old class behavior will be kept.
- The main
Detailed documentation is provided in PyDLM with special attention to the User manual.