Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

screenot-0.0.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

screenot-0.0.1-py2.py3-none-any.whl (5.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file screenot-0.0.1.tar.gz.

File metadata

  • Download URL: screenot-0.0.1.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.4

File hashes

Hashes for screenot-0.0.1.tar.gz
Algorithm Hash digest
SHA256 5a29f34ed524b0d7c130c3ebba950c4667f33eac715d7d4a8f75c7294005aaa7
MD5 e93897bd5a6f31e90be012f2f3c412e4
BLAKE2b-256 1e3acbc4cc2c483260c5e72ff88efbd58fc839e5a05964ff24117c0d2651f55e

See more details on using hashes here.

File details

Details for the file screenot-0.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: screenot-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.4

File hashes

Hashes for screenot-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1207c8fede172e2178747ea4a40ca39dd4a1747529ae5f7e4516eda1d6813cd6
MD5 51361213f0116981f2ceefb68d72d6a8
BLAKE2b-256 1878193f6b09672c1081c871b5dcfb56816188be433fd068cc3b3e5c3fd45a59

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page