Matrix completion with column subset selection.
Project description
CSMC
CSMC is a Python library for performing column subset selection in matrix completion tasks. It provides an implementation of the CSSMC method, which aims to complete missing entries in a matrix using a subset of columns.
Columns Selected Matrix Completion (CSMC) is a two-stage approach for low-rank matrix recovery. In the first stage, CSMC samples columns of the input matrix and recovers a smaller column submatrix. In the second stage, it solves a least squares problem to reconstruct the whole matrix.
Installation
You can install CSMC using pip:
pip install -i csmc
Usage
- Generate random data
import numpy as np
import random
n_rows = 50
n_cols = 250
rank = 3
x = np.random.default_rng().normal(size=(n_rows, rank))
y = np.random.default_rng().normal(size=(rank, n_cols))
M = np.dot(x, y)
M_incomplete = np.copy(M)
num_missing_elements = int(0.7 * M.size)
indices_to_zero = random.sample(range(M.size), k=num_missing_elements)
rows, cols = np.unravel_index(indices_to_zero, M.shape)
M_incomplete[rows, cols] = np.nan
- Fill with CSNN algorithm
from csmc import CSMC
solver = CSMC(M_incomplete, col_number=100)
M_filled = solver.fit_transform(M_incomplete)
- Fill with Nuclear Norm Minimization with SDP (NN algorithm)
from csmc import NuclearNormMin
solver = NuclearNormMin(M_incomplete)
M_filled = solver.fit_transform(M_incomplete, np.isnan(M_incomplete))
Algorithms
NuclearNormMin: Matrix completion by SDP (NN algorithm) [Exact Matrix Completion via Convex Optimization](http://statweb.stanford.edu/~candes/papers/MatrixCompletion.pdfCSNN: Matrix completion by CSNNPGD: Nuclear norm minimization using Proximal Gradient Descent (PGD) Spectral Regularization Algorithms for Learning Large Incomplete Matrices by Mazumder et. al.CSPGD: Matrix completion by CSPGD
Citation
Krajewska, A., Niewiadomska-Szynkiewicz E. (2023). Matrix Completion with Column Subset Selection. Krajewska, A. (2023). Efficient matrix completion for data recovery in data-driven IT applications. Systems Research Institute Polish Academy of Sciences.
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
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 csmc-0.1.9.tar.gz.
File metadata
- Download URL: csmc-0.1.9.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.12 Linux/6.5.0-15-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
255ac6f13d9abde1092a34dd52b4bf7972b1142ccf711b34e209a21080e074aa
|
|
| MD5 |
88f22eee5f537d4463aa916a2a9fac0d
|
|
| BLAKE2b-256 |
22d1b2091a81db950936376c9166e87a6344e8791e20eabb04927e50e7311fbe
|
File details
Details for the file csmc-0.1.9-py3-none-any.whl.
File metadata
- Download URL: csmc-0.1.9-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.12 Linux/6.5.0-15-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb5183753cf711dab7342507486d6d19d774aa86006175e49df4b11fec76e2d1
|
|
| MD5 |
8db3721b8d88b547674db0e7970e0c2c
|
|
| BLAKE2b-256 |
d094ef327238e14c54e655c9b535c797151404edcbdee19b742f938b70ba1f25
|