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
115.0 KB
83.9 KB
fix weight-decay in derror_symmetric
16.5 KB
add 2019
22.8 KB
add 2019

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.