MvMDS

Multi-view multidimensional scaling (MvMDS) learns a shared low-dimensional embedding from multiple view-specific distance structures while adaptively weighting views during optimization.

polyview.embed.multiviewmds.MVMDS

alias of MultiViewMDS

class polyview.embed.multiviewmds.MultiViewMDS(*args: Any, **kwargs: Any)

Bases: BaseMultiViewEmbedder

Multi-view MDS with adaptive view weighting (Bai et al., 2017).

The method minimizes a weighted multi-view stress objective:

\[J(X, \alpha) = \sum_{v=1}^{M} \alpha_v^{\gamma} J^{(v)}(X),\]

where

\[J^{(v)}(X) = \frac{1}{2}\sum_{i \neq j} w^{(v)}_{ij} \left(\delta^{(v)}_{ij} - d_{ij}(X)\right)^2,\]

with \(d_{ij}(X)=\|x_i-x_j\|_2\) and \(\delta^{(v)}\) the input dissimilarities for view \(v\).

Parameters:
  • n_components (int, default=2) – Embedding dimension.

  • gamma (float, default=2.0) – View-weight concentration parameter. Must be > 1.

  • dissimilarity ({"euclidean", "precomputed"}, default="euclidean") – If “euclidean”, each view is treated as a feature matrix and converted to pairwise distances. If “precomputed”, each view is a square dissimilarity matrix.

  • metric (str, default="euclidean") – Metric passed to sklearn.metrics.pairwise_distances() when dissimilarity='euclidean'.

  • metric_params (dict or None, default=None) – Extra keyword arguments for pairwise_distances.

  • max_iter (int, default=200) – Maximum number of MM iterations.

  • tol (float, default=1e-6) – Relative objective decrease tolerance.

  • eps (float, default=1e-12) – Numerical stability constant.

  • random_state (int or None, default=None) – Random seed for initialization.

  • init (ndarray of shape (n_samples, n_components) or None, default=None) – Optional initial embedding.

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

embedding_

Learned embedding.

Type:

ndarray of shape (n_samples, n_components)

stress_

Final objective value \(J(X, \alpha)\).

Type:

float

view_stress_

Final per-view stress terms \(J^{(v)}(X)\).

Type:

ndarray of shape (n_views,)

view_weights_

Learned view weights \(\alpha\).

Type:

ndarray of shape (n_views,)

dissimilarities_

Per-view input dissimilarity matrices used in fitting.

Type:

list of ndarray

n_iter_

Number of optimization iterations.

Type:

int

References

  • Bai, S., Bai, X., Latecki, L. J., & Tian, Q. (2017). Multidimensional Scaling on Multiple Input Distance Matrices. arXiv:1605.00286.

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

Fit the multi-view MDS model.

Parameters:
  • views (list of ndarray) – Input views as feature matrices or precomputed dissimilarities.

  • y (ignored)

Returns:

self

Return type:

MultiViewMDS

fit_transform(views: List[numpy.ndarray], y=None) → numpy.ndarray

Fit the model and return the learned embedding.

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

Return embedding of the training samples.

This algorithm is non-parametric and does not provide an out-of-sample extension. The method validates input consistency and returns embedding_.