Objective
Implement PCA for visualization in addition to UMAP. This could be configured by a user in dataset.compute_visualization(method="pca").
Proposed strategy
Depending on mapping types, we could employ different implementations:
euclidean → euclidean: Standard PCA, normalize to [-1, 1]
euclidean → poincare: Standard PCA, then normalize into disk (e.g., tanh scaling)
hyperboloid → euclidean: logmap_0 to tangent space, PCA, normalize to [-1, 1]
hyperboloid → poincare: logmap_0 to tangent space, PCA to 2D, expmap_0 back to B^2
Acceptance criteria
compute_visualization(method="pca") runs without error
- All mapping types can produce a graph
- Minimal test suite for this method
- Sufficient error catching with verbose logs for users
Objective
Implement PCA for visualization in addition to UMAP. This could be configured by a user in
dataset.compute_visualization(method="pca").Proposed strategy
Depending on mapping types, we could employ different implementations:
euclidean → euclidean: Standard PCA, normalize to [-1, 1]
euclidean → poincare: Standard PCA, then normalize into disk (e.g., tanh scaling)
hyperboloid → euclidean: logmap_0 to tangent space, PCA, normalize to [-1, 1]
hyperboloid → poincare: logmap_0 to tangent space, PCA to 2D, expmap_0 back to B^2
Acceptance criteria
compute_visualization(method="pca")runs without error