pub struct UmapSphereProjection { /* private fields */ }Expand description
UMAP-style projection that lives on S² and transforms new points by kNN-weighted averaging over the fitted positions.
Implementations§
Source§impl UmapSphereProjection
impl UmapSphereProjection
Sourcepub fn fit_default(embeddings: &[Embedding]) -> Result<Self, ProjectionError>
pub fn fit_default(embeddings: &[Embedding]) -> Result<Self, ProjectionError>
Fit with default config and no categories.
Sourcepub fn fit_from_graph(
graph: &UmapGraph,
categories: Option<&[u32]>,
radial: RadialStrategy,
config: UmapConfig,
) -> Result<Self, ProjectionError>
pub fn fit_from_graph( graph: &UmapGraph, categories: Option<&[u32]>, radial: RadialStrategy, config: UmapConfig, ) -> Result<Self, ProjectionError>
Optimize from a prebuilt kNN graph. This is the cheap part of UMAP fit — O(N·k·epochs) for the Adam optimizer. The graph is not rebuilt.
Use this when the tuner has already built the graph via
UmapGraph::build and is sweeping n_epochs / category_weight.
Sourcepub fn fit(
embeddings: &[Embedding],
categories: Option<&[u32]>,
radial: RadialStrategy,
config: UmapConfig,
) -> Result<Self, ProjectionError>
pub fn fit( embeddings: &[Embedding], categories: Option<&[u32]>, radial: RadialStrategy, config: UmapConfig, ) -> Result<Self, ProjectionError>
Fit with custom config. categories is parallel to embeddings
when supplied; pass None to disable the supervised term even
if config.category_weight > 0.
Equivalent to UmapGraph::build followed by
Self::fit_from_graph — the tuner calls those two halves
directly so it can reuse graphs across configs that share
n_neighbors; this entry point serves every other caller.
Sourcepub fn explained_variance_ratio(&self) -> f64
pub fn explained_variance_ratio(&self) -> f64
Post-fit quality: trustworthiness-style kNN recall. For each
point, its k nearest neighbors among the fitted 3D positions
(k = the graph’s n_neighbors) are intersected with its
original-space kNN set; the score is the mean overlap fraction.
Bounded [0, 1], where 1.0 means every original neighborhood
survives the projection.
Intentionally exposed under the EVR name so the auto-tuner’s
MetaModel consumers can compare projection kinds on one
scalar. Note the semantics changed: this used to be the fraction
of kNN edges shorter than the median random pairwise distance, a
bar that random spherical pairs (≈90° apart) made trivially
clearable, so scores saturated high and barely discriminated.
Recall is rank-meaningful across corpora and more honest when
compared against other projection kinds.
Trait Implementations§
Source§impl Clone for UmapSphereProjection
impl Clone for UmapSphereProjection
Source§fn clone(&self) -> UmapSphereProjection
fn clone(&self) -> UmapSphereProjection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl From<UmapSphereProjection> for ConfiguredProjection
impl From<UmapSphereProjection> for ConfiguredProjection
Source§fn from(p: UmapSphereProjection) -> Self
fn from(p: UmapSphereProjection) -> Self
Source§impl Projection for UmapSphereProjection
impl Projection for UmapSphereProjection
fn project(&self, embedding: &Embedding) -> SphericalPoint
Source§fn project_rich(&self, embedding: &Embedding) -> ProjectedPoint
fn project_rich(&self, embedding: &Embedding) -> ProjectedPoint
fn dimensionality(&self) -> usize
Auto Trait Implementations§
impl !RefUnwindSafe for UmapSphereProjection
impl !UnwindSafe for UmapSphereProjection
impl Freeze for UmapSphereProjection
impl Send for UmapSphereProjection
impl Sync for UmapSphereProjection
impl Unpin for UmapSphereProjection
impl UnsafeUnpin for UmapSphereProjection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more