PCA#

class torchdr.PCA(n_components: int = 2, device: str = 'auto', verbose: bool = False, random_state: float | None = None, svd_driver: str | None = None, **kwargs)[source]#

Bases: DRModule

Principal Component Analysis module.

Parameters:
  • n_components (int, default=2) – Number of components to project the input data onto.

  • device (str, default="auto") – Device on which the computations are performed.

  • verbose (bool, default=False) – Whether to print information during the computations.

  • random_state (float, default=None) – Random seed for reproducibility.

  • svd_driver (str, optional) – Name of the cuSOLVER method to be used for torch.linalg.svd. This keyword argument only works on CUDA inputs. Available options are: None, gesvd, gesvdj and gesvda. Defaults to None.

transform(X: Tensor | ndarray) Tensor | ndarray[source]#

Project the input data onto the PCA components.

Parameters:

X (torch.Tensor or np.ndarray of shape (n_samples, n_features)) – Data to project onto the PCA components.

Returns:

X_new – Projected data.

Return type:

torch.Tensor or np.ndarray of shape (n_samples, n_components)

Examples using PCA:#

PCA via SVD and via AffinityMatcher

PCA via SVD and via AffinityMatcher

Incremental PCA on GPU

Incremental PCA on GPU