Class GlobalPrincipalComponentAnalysisTransform<O extends NumberVector>

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

    @Alias({"whiten","whitening","pca"})
    @Priority(200)
    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.

    Since:
    0.5.0
    Author:
    Erich Schubert