pca (pyleoclim.utils.decomposition.pca)

pyleoclim.utils.decomposition.pca(ys, n_components=None, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto', random_state=None)[source]

Principal Component Analysis (Empirical Orthogonal Functions)

Decomposition of a signal or data set in terms of orthogonal basis functions.

From scikit-learn: https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

Parameters
  • ys (array) – timeseries

  • n_components (int,None,or str) – [default: None] Number of components to keep. if n_components is not set all components are kept: If n_components == ‘mle’ and svd_solver == ‘full’, Minka’s MLE is used to guess the dimension. Use of n_components == ‘mle’ will interpret svd_solver == ‘auto’ as svd_solver == ‘full’. If 0 < n_components < 1 and svd_solver == ‘full’, select the number of components such that the amount of variance that needs to be explained is greater than the percentage specified by n_components. If svd_solver == ‘arpack’, the number of components must be strictly less than the minimum of n_features and n_samples.

  • copy (bool,optional) – [default: True] If False, data passed to fit are overwritten and running fit(X).transform(X) will not yield the expected results, use fit_transform(X) instead.

  • whiten (bool,optional) – [default: False] When True (False by default) the components_ vectors are multiplied by the square root of n_samples and then divided by the singular values to ensure uncorrelated outputs with unit component-wise variances.

  • svd_solver (str {‘auto’, ‘full’, ‘arpack’, ‘randomized’}) –

    If auto :

    The solver is selected by a default policy based on X.shape and n_components: if the input data is larger than 500x500 and the number of components to extract is lower than 80% of the smallest dimension of the data, then the more efficient ‘randomized’ method is enabled. Otherwise the exact full SVD is computed and optionally truncated afterwards.

    If full :

    run exact full SVD calling the standard LAPACK solver via scipy.linalg.svd and select the components by postprocessing

    If arpack :

    run SVD truncated to n_components calling ARPACK solver via scipy.sparse.linalg.svds. It requires strictly 0 < n_components < min(X.shape)

    If randomized :

    run randomized SVD by the method of Halko et al.

  • tol (float >= 0 ,optional) – [default: 0] Tolerance for singular values computed by svd_solver == ‘arpack’.

  • iterated_power (int >= 0, or string {'auto'}) – [default: ‘auto’] Number of iterations for the power method computed by svd_solver == ‘randomized’.

  • random_state (int, RandomState instance, or None, optional) – [default: None] If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random. Used when svd_solver == ‘arpack’ or ‘randomized’.

Returns

Sklearn PCA object dictionary of all attributes and values.

-components_array, shape (n_components, n_features)

Principal axes in feature space, representing the directions of maximum variance in the data. The components are sorted by explained_variance_.

-explained_variance_array, shape (n_components,)

The amount of variance explained by each of the selected components. Equal to n_components largest eigenvalues of the covariance matrix of X. New in version 0.18.

-explained_variance_ratio_array, shape (n_components,)

Percentage of variance explained by each of the selected components. If n_components is not set then all components are stored and the sum of the ratios is equal to 1.0.

-singular_values_array, shape (n_components,)

The singular values corresponding to each of the selected components. The singular values are equal to the 2-norms of the n_components variables in the lower-dimensional space. New in version 0.19.

-mean_array, shape (n_features,)

Per-feature empirical mean, estimated from the training set. Equal to X.mean(axis=0).

-n_components_int

The estimated number of components. When n_components is set to ‘mle’ or a number between 0 and 1 (with svd_solver == ‘full’) this number is estimated from input data. Otherwise it equals the parameter n_components, or the lesser value of n_features and n_samples if n_components is None.

-n_features_int

Number of features in the training data.

-n_samples_int

Number of samples in the training data.

-noise_variance_float

The estimated noise covariance following the Probabilistic PCA model from Tipping and Bishop 1999. See “Pattern Recognition and Machine Learning” by C. Bishop, 12.2.1 p. 574 or http://www.miketipping.com/papers/met-mppca.pdf. It is required to compute the estimated data covariance and score samples. Equal to the average of (min(n_features, n_samples) - n_components) smallest eigenvalues of the covariance matrix of X.

Return type

dict