| Nonlinear PCA toolbox for MATLAB | by Matthias Scholz |
nlpcaNonlinear principal component analysis (NLPCA) |
|
[pc, net] = nlpca(data, k) pc = nlpca_get_components(net, data) data_reconstruction = nlpca_get_data(net, pc)
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.
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.
The NLPCA toolbox is distributed under the
GNU General Public License.
NLPCA can be downloaded as single package or individual files:
| NLPCA_2008-08-15.zip | NLPCA package (all files), version 0.88 |
| | |
| package contains: | |
| | |
| main program - component extraction | |
| to reconstruct data from new component values | |
| to estimate component values from new data | |
| to plot the components | |
| | |
| demo of hierarchical nonlinear PCA | |
| demo of circular units (Circular PCA) | |
| demo of inverse network architecture | |
| demo of missing data estimation |
| review (book chapter): |
Matthias Scholz, Martin Fraunholz, and Joachim Selbig.
Nonlinear principal component analysis: neural network models and applications.
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: |
Matthias Scholz.
Analysing periodic phenomena by circular PCA.
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: |
Matthias Scholz,
Fatma Kaplan, Charles L. Guy,
Joachim Kopka, and Joachim Selbig.
Non-linear PCA: a missing data approach.
Bioinformatics 21(20):3887-3895. 2005.
[ pdf (final version) | pdf (pre-version in colour) ] |
| Hierarchical NLPCA: |
Matthias Scholz and
Ricardo Vigário.
Nonlinear PCA: a new hierarchical approach.
In M. Verleysen, editor,
Proceedings ESANN. 2002.
[ pdf ] |
| www.NLPCA.org |