Class GlobalPrincipalComponentAnalysisTransform<O extends NumberVector>

  • Type Parameters:
    O - Vector type
    All Implemented Interfaces:

    public class GlobalPrincipalComponentAnalysisTransform<O extends NumberVector>
    extends AbstractVectorConversionFilter<O,​O>
    Apply Principal Component Analysis (PCA) to the data set.

    This is also popular form of "Whitening transformation", and will project the data to have a unit covariance matrix.

    If you want to also reduce dimensionality, set the -pca.filter parameter! Note that this implementation currently will always perform a full matrix inversion. For very high dimensional data, this can take an excessive amount of time O(d³) and memory O(d²). Please contribute a better implementation to ELKI that only computes the requiried dimensions, yet allows for the same filtering flexibility.

    TODO: design an API (and implementation) that allows plugging in efficient solvers that do not need to decompose the entire matrix. This may, however, require external dependencies such as jBlas.

    Erich Schubert