Code package for ScreeNOT: Exact MSE-Optimal Singular Value Thresholding in Correlated Noise
Project description
ScreeNOT: Optimal Singular Value Thresholding in Correlated Noise
ScreeNOT is a code library for hard thresholding of singular values. The procedure adaptively estimates the best singular value threshold under unknown noise characteristics. The threshold chosen by ScreeNOT is optimal (asymptotically, in the sense of minimum Frobenius error) under the the so-called "Spiked model" of a low-rank matrix observed in additive noise. In contrast to previous works, the noise is not assumed to be i.i.d. or white; it can have an essentially and unknown correlation structure, across either rows, columns or both. ScreeNOT is proposed to practitioners as a mathematically solid alternative to Cattell's ever-popular but vague Scree Plot heuristic from 1966.
Please refer to the project's homepage: https://github.com/eladromanov/ScreeNOT
Usage
The main API for this package is the function
adaptiveHardThresholding(Y, k, strategy='i')
It receives as input a matrix Y (in Python: a numpy array); a non-negative integer k, an upper bound (potentially loose) on the low-rank signal to-be-recovered; (optional) a string strategy, which defines an estimation strategy for the noise bulk - valid options are 'i' (imputation; this is the default, and should be best for most practical uses), '0' (transport to zero) or 'w' (winsorization) - see paper for details.
The function returns three values:
Xest: a matrix with same dimensions as Y; an estimator for the low-rank signal (the result of performing thresholding on the singular values of Y).
Topt: the hard threshold which was used; computed adaptively from the singular values of Y.
r: the number of "relevant"/"strong" components of the signal: r=rank(Xest).
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file screenot-0.0.2.tar.gz.
File metadata
- Download URL: screenot-0.0.2.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24ed96b94a9fac2240cc0dc25aa9dbe8c28f97138ec94caf3e99f0fa914e4bea
|
|
| MD5 |
d52ccd01c4b84018353e7456f4faee69
|
|
| BLAKE2b-256 |
87d8812e07fe542df7aa23d2aad41bcf853f0f578e9b1d0f651a1ed4b760a7be
|
File details
Details for the file screenot-0.0.2-py2.py3-none-any.whl.
File metadata
- Download URL: screenot-0.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a13ba50aa8f8204f5605718582b47f1cec5b506de5cce6c177d124efbdef93c1
|
|
| MD5 |
cc161fa561689a243614f5d243fc50a8
|
|
| BLAKE2b-256 |
9107c0050c755e9236ccbab02849874bcb060f51b45faee15f8b929459b8eece
|