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 include

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

PyPI - Downloads decompy Tests Status Test Coverage Flake8

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.matrix_factorization import RobustSVDDensityPowerDivergence

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

# Perform data decomposition
algo = RobustSVDDensityPowerDivergence(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 the 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.

List of Algorithms available in the decompy library

Matrix Factorization Methods

Currently, there are 19 matrix factorization methods available in decompy, as follows:

Methods to be added (Coming soon)

Rank Estimation Methods

In rankmethods/penalized.py -

In rankmethods/cvrank.py -

In rankmethods/bayes.py -

News

v1.1.1

  • Release of unit test cases using pytest library.

v1.1.0

  • Bug fixes.
  • Release Documentation

v1.0.0

  • Major refactorization.
  • Added 15 more matrix factorization methods.
  • Added rank estimation methods.

v0.2.0

  • Added 4 matrix factorization methods.

v0.1.0

  • Initial release.

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-1.1.1.tar.gz (56.4 kB view hashes)

Uploaded Source

Built Distribution

decompy-1.1.1-py3-none-any.whl (71.8 kB view hashes)

Uploaded Python 3

Supported by

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