Nonlinear PCA toolbox for MATLAB /

Filename Size Date modified Message
54 B
Added tag Version-0.88 for changeset aa3add1d1349
3.5 KB edited online with Bitbucket
1.1 KB
Initial commit
73.7 KB
adding unit variance normalization
915 B
add explained variance for the nonlinear PC's
2.7 KB
add explained variance for the nonlinear PC's
770 B
114.1 KB
update year 2017
83.8 KB
update year 2017
16.5 KB
update year 2017
22.8 KB
update year 2017

Nonlinear PCA

Nonlinear PCA toolbox for Matlab

Nonlinear principal component analysis (NLPCA) based on auto-associative neural networks (autoencoder).


[pc, net] = nlpca(data, k)

pc = nlpca_get_components(net, data)
data_reconstruction = nlpca_get_data(net, pc)


pc = nlpca(data,k) extracts k nonlinear components from the data set. pc represents the estimated component values (scores).

net is a data structure explaining the neural network parameters for the nonlinear transformation from data space to component space and reverse.

net can be used in nlpca_get_components and nlpca_get_data to obtain component values (scores) for new data or reconstructed data for any component value.


In this example nonlinear PCA (circular PCA) is applied to artificial data of a noisy circle.

% generate circular data
t=linspace(-pi , +pi , 100);  % angular value t=-pi,...,+pi
data = [sin(t);cos(t)];       % circle
data = data + 0.2*randn(size(data));    % add noise

% nonlinear PCA (circular PCA, inverse network architecture)
[pc,net]=nlpca(data, 1,  'type','inverse',  'circular','yes' );

% plot components


  • demo_hierarchical_NLPCA_StarData.m demo of hierarchical nonlinear PCA
  • demo_circular_PCA.m demo of circular units (Circular PCA)
  • demo_inverse_NLPCA.m demo of inverse network architecture
  • demo_missing_data.m demo of missing data estimation




If you use this toolbox in a publication, please cite one of these articles.