Grassmann Projections

A collection of methods to project data on the Grassmann manifold.

The abstract GrassmannProjection class is the parent class that allows the user to define methods for projection of data onto the Grassmann manifold. These projection methods must be created within child classes built from this abstract class.

class GrassmannProjection[source]

The parent class to all classes used to project data onto the Grassmann manifold.

The GrassmannProjection class is imported using the following command:

>>> from UQpy.dimension_reduction.grassmann_manifold.projections.baseclass.GrassmannProjection import GrassmannProjection

The user may create a new Grassmann projection method by subclassing GrassmannProjection. Any such class must create points with type GrassmannPoint.

SVD Projection

The SVDProjection class is used to project each data point of a given dataset onto a Grassmann manifold using the Singular Value Decomposition (SVD). The SVD factorizes a matrix \(\mathbf{X}\in \mathbb{R}^{n \times m}\) into three matrices:

\[\mathbf{X} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^\intercal\]

where \(\mathbf{U}\) and \(\mathbf{V}\) are the matrices of left and right eigenvectors, respectively and \(\mathbf{\Sigma}\) is a diagonal matrix containing the eigenvalues. Since \(\mathbf{U}\) and \(\mathbf{V}\) are orthonormal matrices we consider them to be representatives of the data point on the Grassmann manifold. The SvdProjection class allows the user to define the Grassmann manifold \(\mathcal{G}(p, n)\) on which the data will reside by selecting the number of \(p-\) planes, i.e., the rank of matrix \(\mathbf{U}\) is equal to the number of \(p-\) planes.

The SVDProjection class is imported using the following command:

>>> from UQpy.dimension_reduction.SVDProjection import SVDProjection

A description of the class signature is shown below:

class SVDProjection(data, p, tol=None)[source]
Parameters:
  • data (list[ndarray]) – Raw data given as a list of matrices.

  • p (Union[int, str]) –

    Number of independent p-planes of each Grassmann point. Options:

    int: Integer specifying the number of p-planes

    str:

    ”max”: Set p equal to the maximum rank of all provided data matrices

    ”min”: Set p equal to the minimum rank of all provided data matrices

  • tol (Optional[float]) – Tolerance on the SVD

Attributes

SVDProjection.u: list[GrassmannPoint]

Left singular vectors from the SVD of each sample in data representing a point on the Grassmann manifold.

SVDProjection.sigma: ndarray

Singular values from the SVD of each sample in data.

SVDProjection.v: list[GrassmannPoint]

Right singular vectors from the SVD of each sample in data representing a point on the Grassmann manifold.