sklearn.decomposition.RandomizedPCA

class sklearn.decomposition.RandomizedPCA(n_components=None, copy=True, iterated_power=3, whiten=False, random_state=None)[source]

Principal component analysis (PCA) using randomized SVD

Linear dimensionality reduction using approximated Singular Value Decomposition of the data and keeping only the most significant singular vectors to project the data to a lower dimensional space.

Read more in the User Guide.

Parameters:

n_components : int, optional

Maximum number of components to keep. When not given or None, this is set to n_features (the second dimension of the training data).

copy : bool

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.

iterated_power : int, optional

Number of iterations for the power method. 3 by default.

whiten : bool, optional

When True (False by default) the components_ vectors are divided by the singular values to ensure uncorrelated outputs with unit component-wise variances.

Whitening will remove some information from the transformed signal (the relative variance scales of the components) but can sometime improve the predictive accuracy of the downstream estimators by making their data respect some hard-wired assumptions.

random_state : int or RandomState instance or None (default)

Pseudo Random Number generator seed control. If None, use the numpy.random singleton.

Attributes:

components_ : array, [n_components, n_features]

Components with maximum variance.

explained_variance_ratio_ : array, [n_components]

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

mean_ : array, [n_features]

Per-feature empirical mean, estimated from the training set.

See also

PCA, TruncatedSVD

References

[Halko2009]Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions Halko, et al., 2009 (arXiv:909)
[MRT]A randomized algorithm for the decomposition of matrices Per-Gunnar Martinsson, Vladimir Rokhlin and Mark Tygert

Examples

>>> import numpy as np
>>> from sklearn.decomposition import RandomizedPCA
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> pca = RandomizedPCA(n_components=2)
>>> pca.fit(X)                 
RandomizedPCA(copy=True, iterated_power=3, n_components=2,
       random_state=None, whiten=False)
>>> print(pca.explained_variance_ratio_) 
[ 0.99244...  0.00755...]

Methods

fit(X[, y]) Fit the model with X by extracting the first principal components.
fit_transform(X[, y]) Fit the model with X and apply the dimensionality reduction on X.
get_params([deep]) Get parameters for this estimator.
inverse_transform(X[, y]) Transform data back to its original space.
set_params(**params) Set the parameters of this estimator.
transform(X[, y]) Apply dimensionality reduction on X.
__init__(n_components=None, copy=True, iterated_power=3, whiten=False, random_state=None)[source]
fit(X, y=None)[source]

Fit the model with X by extracting the first principal components.

Parameters:

X: array-like, shape (n_samples, n_features) :

Training data, where n_samples in the number of samples and n_features is the number of features.

Returns:

self : object

Returns the instance itself.

fit_transform(X, y=None)[source]

Fit the model with X and apply the dimensionality reduction on X.

Parameters:

X : array-like, shape (n_samples, n_features)

New data, where n_samples in the number of samples and n_features is the number of features.

Returns:

X_new : array-like, shape (n_samples, n_components)

get_params(deep=True)[source]

Get parameters for this estimator.

Parameters:

deep: boolean, optional :

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

params : mapping of string to any

Parameter names mapped to their values.

inverse_transform(X, y=None)[source]

Transform data back to its original space.

Returns an array X_original whose transform would be X.

Parameters:

X : array-like, shape (n_samples, n_components)

New data, where n_samples in the number of samples and n_components is the number of components.

Returns:

X_original array-like, shape (n_samples, n_features) :

Notes

If whitening is enabled, inverse_transform does not compute the exact inverse operation of transform.

set_params(**params)[source]

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The former have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Returns:self :
transform(X, y=None)[source]

Apply dimensionality reduction on X.

X is projected on the first principal components previous extracted from a training set.

Parameters:

X : array-like, shape (n_samples, n_features)

New data, where n_samples in the number of samples and n_features is the number of features.

Returns:

X_new : array-like, shape (n_samples, n_components)