Skip to main content

OSD: Optimization(-based) Signal Decomposition

Modeling language for finding signal decompositions

This software provides a modeling language for describing and solving signal decomposition problems. This framework is described in detail in an acompanying monograph, and examples are available in the notebooks directory.

New users are encouraged to try out our no-code, no-math introduction to signal decomposition, available here: http://signal-decomp-tutorial.org/

Brief overview

We formulate the problem of decomposing a signal into components as an optimization problem, where components are described by their loss functions. Once the component class loss functions are chosen, we minimize the total loss subject to replicating the given signal with the components. Our software provides a robust algorithm for carying out this decomposition, which is guaranteed to find the globally optimal descomposition when the loss functions are all convex, and is a good heuristic when they are not.

Vector times series signals with missing entries

We consider a vector time series or signal, y, which possibly has missing entries. We represent the signal compactly as a T x p matrix, with T time steps and p entries at each time. Some of these entries may be missing—filled with NaN or some other missing value indicator. We will be concerned with finding decompositions that exactly match the data at the known entries.

Signal decomposition

We model the given signal y as a sum (or decomposition) of K component, x^1,...,x^K. Each component x^k is also a T x p matrix, but they do not have any missing values. Indeed, we can use the values of x^1,...,x^K as estimates of the missing values in the original signal. This is useful for data imputation as well as model validation.

Component classes

The K components are characterized by cost functions that encode the loss of or impolausibility that a component takes on a certaint value. (In some cases, we can interpret the classes statistically, with the cost function corresponding to the negative log-likelihood of some probability density function, but this is not necessary.) Our solution method is based on evaluating the masked proximal operators of the class cost functions. These operators have been defined for many useful classes in the classes module.

Installation

We do not yet have a package released for this code, so for now, please clone the repository and set up a virtual environment with the packages listed in the requirements file.

Metadata

Release files for sig-decomp 0.3.2

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

Source distribution (sdist)

Source distribution for sig-decomp 0.3.2
File Size Uploaded Provenance Actions
sig_decomp-0.3.2.tar.gz 2.9 MB Without provenance Details for sig_decomp-0.3.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sig-decomp 0.3.2
File Interpreter ABI Platform Actions
sig_decomp-0.3.2-py3-none-any.whl Python 3 none any Details for sig_decomp-0.3.2-py3-none-any.whl

Total release size: 3.0 MB

Release files / sig_decomp-0.3.2.tar.gz

Download URL sig_decomp-0.3.2.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
756569154377071640f295aead8bbd43b042269495b1e7404bea9b0353220f95
BLAKE2b-256 checksum
How to use checksums
cca9d0a0ccedc41dfbf7df1e2c7ee479ffa515b8741f7ca67ef83dca09047a7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / sig_decomp-0.3.2-py3-none-any.whl

Download URL sig_decomp-0.3.2-py3-none-any.whl
Size 95.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41a018aa93be31a3983c2b8e2557f6da3d29271d8b7ee89a46452b5459462e44
BLAKE2b-256 checksum
How to use checksums
06d5e9ffaa2e58a69ba1f2cbfe31a2756e75a2209c4f8f10bb859c329f6953d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Security for sig-decomp 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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