I've added the referenced materials below
Nonlinear principal component analysis (NLPCA) based on auto-associative neural networks (autoencoder).
#!python
[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.
wget https://bitbucket.org/matthias-scholz/nonlinear-pca-toolbox-for-matlab/get/default.zip
If you use this toolbox in a publication, please cite one of these articles.
-
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.
-
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.
-
Validation of nonlinear PCA. Matthias Scholz Neural Processing Letters, Volume 36, Number 1, Pages 21-30, 2012.
-
Nonlinear PCA: a new hierarchical approach. Matthias Scholz and Ricardo Vigário. In M. Verleysen, editor, Proceedings ESANN. 2002.
-
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.