pub struct KSweepEntry<F: BixverseFloat> {
pub k: usize,
pub stability: F,
pub best_error: F,
pub median_error: F,
pub consensus_failed: bool,
pub n_dropped: usize,
pub n_empty_clusters: usize,
pub n_converged: usize,
}Expand description
One row of the k sweep.
Fields§
§k: usizeThe rank this row describes.
stability: FMean silhouette of the surviving components. Higher is more stable. NaN
if the consensus step could not run at this k, which R reads as NA; see
consensus_failed.
best_error: FLoss of the best restart, divided by ||V||_F^2. Always populated, since
it comes from the restarts rather than the consensus.
median_error: FMedian restart loss, divided by ||V||_F^2.
consensus_failed: boolTrue if the density filter left fewer than k components, so the
clustering never ran. The error columns are still meaningful; the
stability one is not. Usually means the threshold is too tight for this k.
n_dropped: usizeComponents dropped, whether collapsed or filtered out. A rising drop rate is itself a sign that k has gone past useful.
n_empty_clusters: usizeClusters that ended up empty.
n_converged: usizeRestarts that met the HALS tolerance.
Trait Implementations§
Source§impl<F: Clone + BixverseFloat> Clone for KSweepEntry<F>
impl<F: Clone + BixverseFloat> Clone for KSweepEntry<F>
Auto Trait Implementations§
impl<F> Freeze for KSweepEntry<F>where
F: Freeze,
impl<F> RefUnwindSafe for KSweepEntry<F>where
F: RefUnwindSafe,
impl<F> Send for KSweepEntry<F>
impl<F> Sync for KSweepEntry<F>
impl<F> Unpin for KSweepEntry<F>where
F: Unpin,
impl<F> UnsafeUnpin for KSweepEntry<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for KSweepEntry<F>where
F: UnwindSafe,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.