MCCA

Multi-set canonical correlation analysis (MCCA) with Kettenring’s SUMCOR and MAXVAR criteria, selectable via the objective argument.

class polyview.embed.mcca.MCCA(*args: Any, **kwargs: Any)

Bases: BaseMultiViewTransformer

Multi-set CCA (Kettenring, 1971) with selectable objective.

Supported objectives: - "sumcor": SUMCOR criterion, solved via generalized eigenproblem over concatenated feature-space covariance blocks. - "maxvar": MAXVAR-style shared latent criterion, solved in sample space using summed smoother matrices (GCCA-like formulation).

Parameters:
  • n_components (int or None, default=None) – Number of canonical components. If None, use the smallest feature dimension across views.

  • regularisation (float or list of float, default=1e-6) – Ridge term added to each within-view covariance block.

  • objective ({"sumcor", "maxvar"}, default="sumcor") – Kettenring objective variant used during fitting.

  • output ({"concat", "mean", "list"}, default="concat") – How to combine per-view projections in transform.

  • centre (bool, default=True) – Whether to center columns of each view before fitting.

  • n_views (int or None, default=None) – Expected number of views.

weights_

Per-view projection matrices.

Type:

list of ndarray

eigenvalues_

Top generalized eigenvalues.

Type:

ndarray

means_

Per-view means used for centering.

Type:

list of ndarray

.. rubric:: References
- Kettenring, J. R. (1971). Canonical analysis of several sets of variables.

Biometrika, 58(3), 433-451.

- Guo, C., & Wu, D. (2021). Canonical correlation analysis (CCA) based multi-view learning

arXiv preprint arXiv:1907.01693.

Type:

An overview.

canonical_correlations() numpy.ndarray

Return pairwise per-component correlations on the fitted data.

fit(views: List[numpy.ndarray], y=None) MCCA

Fit the model from a list of views.

Parameters:
  • views (list of array-like of shape (n_samples, n_features_i))

  • y (ignored for unsupervised methods)

Return type:

self

transform(views: List[numpy.ndarray]) numpy.ndarray | List[numpy.ndarray]

Apply the fitted transformation to views.

Parameters:

views (list of array-like)

Return type:

ndarray of shape (n_samples, n_components)