Optimization-based signal decomposition
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sig_decomp-0.3.2.tar.gz
.
File metadata
- Download URL: sig_decomp-0.3.2.tar.gz
- Upload date:
- Size: 2.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 756569154377071640f295aead8bbd43b042269495b1e7404bea9b0353220f95 |
|
MD5 | 57befb6033aeae0cd0716b9327e27c40 |
|
BLAKE2b-256 | cca9d0a0ccedc41dfbf7df1e2c7ee479ffa515b8741f7ca67ef83dca09047a7c |
File details
Details for the file sig_decomp-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: sig_decomp-0.3.2-py3-none-any.whl
- Upload date:
- Size: 95.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41a018aa93be31a3983c2b8e2557f6da3d29271d8b7ee89a46452b5459462e44 |
|
MD5 | 05f6bd644ecc2dc316879b756c6c10eb |
|
BLAKE2b-256 | 06d5e9ffaa2e58a69ba1f2cbfe31a2756e75a2209c4f8f10bb859c329f6953d6 |