Skip to content

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

License

Notifications You must be signed in to change notification settings

matthias-scholz/nonlinear-pca

Repository files navigation

Nonlinear PCA

Nonlinear PCA toolbox for Matlab

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

Syntax

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

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

Description

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.

Example

Nonlinear PCA (circular PCA) 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
nlpca_plot(net)

Demos

  • 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

Download

wget https://github.com/matthias-scholz/nonlinear-pca/archive/master.zip

Help

References

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages