All Projects → bethgelab → decompose

bethgelab / decompose

Licence: MIT License
Blind source separation based on the probabilistic tensor factorisation framework

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to decompose

Lastik
Kotlin Multiplatform + Jetpack Compose pet project, based on www.last.fm/api (in development)
Stars: ✭ 37 (-5.13%)
Mutual labels:  decompose
REPET-Matlab
REPeating Pattern Extraction Technique (REPET) in Matlab for audio source separation: original REPET, REPET extended, adaptive REPET, REPET-SIM, REPET-SIM online
Stars: ✭ 29 (-25.64%)
Mutual labels:  blind-source-separation
NTFk.jl
Unsupervised Machine Learning: Nonnegative Tensor Factorization + k-means clustering
Stars: ✭ 36 (-7.69%)
Mutual labels:  blind-source-separation
SGSNMF TGRS
X. Wang, Y. Zhong, L. Zhang, and Y. Xu, “Spatial Group Sparsity Regularized Nonnegative Matrix Factorization for Hyperspectral Unmixing,” IEEE Transactions on Geoscience and Remote Sensing, vol. 55, no. 11, pp.6287-6304, 2017.
Stars: ✭ 36 (-7.69%)
Mutual labels:  blind-source-separation
unified2021
A UNIFIED SPEECH ENHANCEMENT FRONT-END FOR ONLINE DEREVERBERATION, ACOUSTIC ECHO CANCELLATION, AND SOURCE SEPARATION
Stars: ✭ 77 (+97.44%)
Mutual labels:  blind-source-separation
Librec
LibRec: A Leading Java Library for Recommender Systems, see
Stars: ✭ 3,045 (+7707.69%)
Mutual labels:  tensor-factorization

Decompose

Blind source separation based on the probabilistic tensor factorisation framework

Installation

Decompose demands python 3.6 and tensorflow 1.7. The newest github code of decompose can be installed using pip:

pip3 install git+https://github.com/bethgelab/decompose

Quick start

Decompose provides an interface that is similar to the interface of scikit-learn:

import numpy as np
from sklearn.datasets import make_low_rank_matrix

from decompose.sklearn import DECOMPOSE
from decompose.distributions.cenNormal import CenNormal


# create a numpy array containing a synthetic low rank dataset
X = make_low_rank_matrix(n_samples=1000, n_features=1000,
                         effective_rank=3, tail_strength=0.5)

# create an instance of a decompose model
model = DECOMPOSE(modelDirectory="/tmp/myNewModel",
                  priors=[CenNormal(), CenNormal()],
                  n_components=3)

# train the model and transform the training data
U0 = model.fit_transform(X)

# learned filter bank
U1 = model.components_

# variance ratio of the sources
varianceRatio = model.variance_ratio_

# reconstruction of the data
XHat = np.dot(U0.T, U1)

Publication

The publication linked to this repository is available on arXiv: [1803.08882] Trace your sources in large-scale data: one ring to find them all

Version

The repository is still in alpha stage and does not yet contain all the code used in the publication above. In the next days documentation and features will be added.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].