Isomap
#include <Skigen/Manifold>
template <typename Scalar = double>
class Skigen::Isomap(n_components=2, n_neighbors=5, eigen_solver="auto")
Isometric Mapping (Isomap).
Non-linear dimensionality reduction that preserves geodesic distances between all pairs of points. The algorithm builds a K-nearest-neighbours graph, computes shortest-path (geodesic) distances with Dijkstra's algorithm, then applies classical (metric) MDS via eigendecomposition of the double-centred squared distance matrix.
Mirrors sklearn.manifold.Isomap.
Parameters:
-
n_components : int, default=2 Embedding dimensionality (default 2).
-
n_neighbors : int, default=5 Number of nearest neighbours for the graph (default 5).
-
eigen_solver : std::string, default="auto" Eigensolver backend:
"auto","arpack", or"dense"(default"auto")."arpack"is only active underSKIGEN_ENABLE_SPECTRA; otherwise the dense solver is used.
Attributes:
-
embedding : MatrixType Embedding coordinates (n_samples x n_components).
-
dist_matrix : MatrixType Geodesic (shortest-path) distance matrix (n_samples x n_samples).
-
eigen_solver : const std::string The configured eigensolver name (
"auto"/"arpack"/"dense").
Methods
SKIGEN_PARAMS()
Fit the Isomap model.
Builds a KNN graph from the Euclidean distances of X, computes all-pairs shortest paths via Dijkstra, then applies classical MDS (double-centring + eigendecomposition) to obtain the embedding.
Parameters:
- X Data matrix of shape (n_samples, n_features).
Returns:
- result
Reference to the fitted transformer (
*this).
transform()
Return the stored embedding.
For Isomap the transform simply returns the embedding computed during fit. The input X is expected to match the training data.
Parameters:
- X Data matrix (ignored; the stored embedding is returned).
Returns:
- result : MatrixType The embedding matrix (n_samples x n_components).