Matthias Scholz
Nonlinear PCA

Nonlinear PCA toolbox for MATLAB

nlpca

Nonlinear principal component analysis (NLPCA)

Nonlinear PCA - Nonlinear principal component analysis (NLPCA)

Syntax

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

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

Description

The nonlinear PCA is based on an auto-associative neural network (autoencoder), see also: www.nlpca.org .

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

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)
   [c,net]=nlpca(data, 1,  'type','inverse',  'circular','yes' );
                                
   % plot components             
   nlpca_plot(net)  
  

See also the demos of the toolbox below.


Download

The NLPCA toolbox is distributed under the GNU General Public License.
NLPCA can be downloaded as single package or individual files:

NLPCA-0.88.zip NLPCA package (all files), version 0.88


package contains:

    nlpca.m main program - component extraction
    nlpca_get_data.m to reconstruct data from new component values
    nlpca_get_components.m to estimate component values from new data
    nlpca_plot.m to plot the 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

References

Validation: Validation of nonlinear PCA.
Matthias Scholz
Neural Processing Letters, Volume 36, Number 1, Pages 21-30, 2012.
[ pdf (pre-print) | pdf (Neural Process Lett) | poster RECOMB 2012 | Matlab code]

review (book chapter): Nonlinear principal component analysis: neural network models and applications.
Matthias Scholz, Martin Fraunholz, and Joachim Selbig.
In Principal Manifolds for Data Visualization and Dimension Reduction, edited by Alexander N. Gorban, Balázs Kégl, Donald C. Wunsch, and Andrei Zinovyev. Volume 58 of LNCSE, pages 44-67. Springer Berlin Heidelberg, 2007.
[ pdf (all book chapters) | pdf (Springer) | entire book (Springer)]

Circular PCA: Analysing periodic phenomena by circular PCA.
Matthias Scholz.
In S. Hochreiter and R. Wagner, editors, Proceedings of the Conference on Bioinformatics Research and Development BIRD'07, LNCS/LNBI Vol. 4414, pages 38-47. Springer-Verlag Berlin Heidelberg, 2007.
[ pdf (final version at Springer) | pdf (author's pre-version)]

Inverse model, missing data: Non-linear PCA: a missing data approach.
Matthias Scholz, Fatma Kaplan, Charles L. Guy, Joachim Kopka, and Joachim Selbig.
Bioinformatics 21(20):3887-3895. 2005.
[ pdf (final version) | pdf (pre-version in colour) ]

Hierarchical NLPCA: Nonlinear PCA: a new hierarchical approach.
Matthias Scholz and Ricardo Vigário.
In M. Verleysen, editor, Proceedings ESANN. 2002.
[ pdf (pre-print version) | pdf (ESANN) ]


See also:

www.matthias-scholz.de
www.nlpca.org