pub struct GaussianMixtureFit {
pub weights: Array1<f64>,
pub means: Array2<f64>,
pub covariances: Vec<Array2<f64>>,
pub k: usize,
pub d: usize,
pub n_obs: usize,
pub loglik: f64,
pub iterations: usize,
}Expand description
A fitted k-component full-covariance Gaussian mixture.
Fields§
§weights: Array1<f64>Mixing weights, length k, on the simplex.
means: Array2<f64>Component means, k × d.
covariances: Vec<Array2<f64>>Component covariances, k matrices of shape d × d (SPD).
k: usizeNumber of mixture components.
d: usizeData dimension.
n_obs: usizeNumber of rows used to fit.
loglik: f64Maximised total log-likelihood Σ_i log Σ_j w_j N(y_i; μ_j, Σ_j).
iterations: usizeEM iterations taken.
Implementations§
Source§impl GaussianMixtureFit
impl GaussianMixtureFit
Sourcepub fn num_free_parameters(&self) -> usize
pub fn num_free_parameters(&self) -> usize
Free-parameter count P of a k-component full-covariance mixture in
d dimensions: (k − 1) mixing weights on the simplex, k·d mean
coordinates, and k · d(d+1)/2 covariance entries. This is the exact
quantity that enters the rank-aware normalizer as dim(H) − rank(S).
Sourcepub fn per_point_log_density(
&self,
data: ArrayView2<'_, f64>,
) -> Result<Array1<f64>, String>
pub fn per_point_log_density( &self, data: ArrayView2<'_, f64>, ) -> Result<Array1<f64>, String>
Per-observation log predictive density log p(y_i) under the fitted
mixture, length n. This is the held-out-density column source for
cross-class stacking when the mixture is evaluated on a held-out fold.
Sourcepub fn laplace_negative_log_evidence(
&self,
data: ArrayView2<'_, f64>,
) -> Result<f64, String>
pub fn laplace_negative_log_evidence( &self, data: ArrayView2<'_, f64>, ) -> Result<f64, String>
Rank-aware Laplace negative log evidence on the SAME scale as the
smooth topology rungs. −V = loglik − ½ log|H| + ½ P log(2π), realised
by calling laplace_evidence with residual_objective = −loglik,
penalty_log_det = 0, penalty_rank = 0, effective_dim = P, and
log|H| the observed empirical-Fisher information at the optimum.
Trait Implementations§
Source§impl Clone for GaussianMixtureFit
impl Clone for GaussianMixtureFit
Source§fn clone(&self) -> GaussianMixtureFit
fn clone(&self) -> GaussianMixtureFit
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for GaussianMixtureFit
impl RefUnwindSafe for GaussianMixtureFit
impl Send for GaussianMixtureFit
impl Sync for GaussianMixtureFit
impl Unpin for GaussianMixtureFit
impl UnsafeUnpin for GaussianMixtureFit
impl UnwindSafe for GaussianMixtureFit
Blanket Implementations§
impl<T> Allocation for T
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.