Skip to main content

A python package containing several robust algorithms for matrix decomposition, rank estimation and relevant analysis.

Project description

decompy

decompy is a Python package containing several robust algorithms for matrix decomposition and analysis. The types of algorithms includes

  • Robust PCA or SVD based methods
  • Matrix completion methods
  • Robust matrix or tensor factorization methods.
  • Matrix rank estimation methods.

Features

  • Data decomposition using various methods
  • Support for sparse decomposition, low-rank approximation, and more
  • User-friendly API for easy integration into your projects
  • Extensive documentation and examples

Installation

You can install decompy using pip:

pip install decompy

Usage

Here's a simple example demonstrating how to use decompy for data decomposition:

import numpy as np
from decompy.robust_svd import DensityPowerDivergence

# Load your data
data = np.arange(100).reshape(20,5).astype(np.float64)

# Perform data decomposition
algo = DensityPowerDivergence(alpha = 0.5)
result = algo.decompose(data)

# Access the decomposed components
U, V = result.singular_vectors(type = "both")
S = result.singular_values()
low_rank_component = U @ S @ V.T
sparse_component = data - low_rank_component

print(low_rank_component)
print(sparse_component)

While the singular values are about 573 and 7.11 for this case (check the S variable), it can get highly affected if you use the simple SVD and change a single entry of the data matrix.

s2 = np.linalg.svd(data, compute_uv = False)
print(np.round(s2, 2))    # estimated by usual SVD
print(np.diag(np.round(S, 2)))    # estimated by robust SVD


data[1, 1] = 10000  # just change a single entry
s3 = np.linalg.svd(data, compute_uv = False)
print(np.round(s3, 2))   # usual SVD shoots up
s4 = algo.decompose(data).singular_values()
print(np.diag(np.round(s4, 2)))

You can find more example notebooks in examples folder. For more detailed usage instructions, please refer to the documentation.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please create an issue or submit a pull request on the GitHub repository. For contributing developers, please refer to Contributing.md file.

License

This project is licensed under the BSD 3-Clause License.

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

decompy-0.2.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

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

decompy-0.2.0-py3-none-any.whl (39.7 kB view details)

Uploaded Python 3

File details

Details for the file decompy-0.2.0.tar.gz.

File metadata

  • Download URL: decompy-0.2.0.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for decompy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f46945e1d8f42ae4475928cb38a7372bb8f997c4c71d9c67d160cab1ad5c9f9e
MD5 c8e704fbe5bacfccbf3ce3afeeda0eeb
BLAKE2b-256 485c1e4e2ea52661e0d8b2291e9ab8719630bb8013f01fc2e28d92c41a173389

See more details on using hashes here.

File details

Details for the file decompy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: decompy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for decompy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 428f00c1a9588719a9b534c20708d441dc6c3eed46af68e68e444b7c037d2b5c
MD5 08e30176e40ad695b818b14c7dac2900
BLAKE2b-256 e15faba75c96bc4b129775b851138e893a47321b0baddb9db83d28e972969c30

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