An algorithm for low-dimensional Orthogonal Nonnegative Matrix Factorization and multi-component Nonnegative Principal Component Analysis.
The package implements the algorithms of our NIPS 2015 paper Orthogonal NMF through Subspace Exploration.
No real requirement, but you may also want to download the textprogressbar and install it in Matlab's path.
%% Nonnegative PCA
% Generate a random data matrix:
m = 10000;
n = 1000;
M = randn(m, n);
% Specify number of components:
k = 5;
W = spannnpcamulti(M, k, ...
'verbose', true, ...
'approximationrank', 5, ...
'numsamples', 1e4);
%% Orthogonal Nonnegative Matrix Factorization
% Generate a random nonnegative data matrix:
m = 100;
n = 1000;
M = rand(m, n);
% Specify target dimension for the approximate factorization:
k = 5;
[W, H, err] = spanonmf(M, k, ...
'verbose', true, ...
'approximationrank', 5, ...
'numsamples', 1e4);