Skip to main content

Artan

Build Status codecov Maven Central PyPI Documentation Status

Model-parallel online latent state estimation with Apache Spark.

Overview

This library provides supports for model-parallel latent state estimation with Apache Spark, with a focus on online learning compatible with structured streaming. Mainly developed for time series estimation of latent variables of many small scale systems, this library could fit to your use case if you're looking for:

  • Model-parallelism. Model-parallelism is the main mode of parallelism, such as training multiple similar time series models from online measurements/multiple sensors, or same models with different priors/hyperparameters etc,..
  • Online learning. Model parameters are updated sequentially with measurements with a single pass. The state used by the algorithms are bounded with #models and model parameters.
  • Latent state estimation. Focusing on methods for hidden state estimation, implemented methods include solutions for filtering (Kalman filters, EKF, UKF, Multiple-Model Adaptive filters, etc..) problems, smoothing (RTS) problems, finite mixture models (Multivariate Gaussian, Poisson, Bernoulli, etc,..).

Artan requires Scala 2.12, Spark 3.0+ and Python 3,6+

Download

This project has been published to the Maven Central Repository. When submitting jobs on your cluster, you can use spark-submit with --packages parameter to download all required dependencies including python packages.

spark-submit --packages='com.github.ozancicek:artan_2.12:0.5.1'

For SBT:

libraryDependencies += "com.github.ozancicek" %% "artan" % "0.5.1"

For python:

pip install artan

Note that pip will only install the python dependencies. To submit pyspark jobs, --packages='com.github.ozancicek:artan_2.12:0.5.1' argument should be specified in order to download necessary jars.

Docs and Examples

Visit docs to get started and see examples for all sample scripts.

Structured streaming examples

  • Local linear trend filtering with Linear Kalman Filter (python, scala)
  • Recursive least squares (python, scala)
  • Nonlinear estimation with Extended Kalman Filter (scala)
  • Nonlinear estimation with Unscented Kalman Filter (scala)
  • Multiple-Model Adaptive estimation (scala)
  • Online Gaussian Mixture Model (python, scala)

Metadata

Release files for artan 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for artan 0.5.1
File Size Uploaded
artan-0.5.1.tar.gz 14.3 kB Details

Release files / artan-0.5.1.tar.gz

Download URL artan-0.5.1.tar.gz
Size 14.3 kB
Tags Source
SHA-256 checksum
How to use checksums
01e11eaac4728fdd28630e3bcab0223f25bc759bcacb78c8d378f8ad570da260
BLAKE2b-256 checksum
How to use checksums
7bc3152719da84374f79a4269e4b6f97b16333b9fc74c0cf5a36f8e449964de6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.2

Release history Release notifications | RSS feed

This release

0.5.1 This release

1 release file

0.5.0

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page