pub struct RobustGaussianMixture<S = Untrained> { /* private fields */ }Expand description
Robust Gaussian Mixture Model
A robust version of Gaussian mixture model that is resistant to outliers. This implementation uses trimmed likelihood estimation and outlier detection to provide robust parameter estimates even in the presence of outliers.
§Parameters
n_components- Number of mixture componentscovariance_type- Type of covariance parameterstol- Convergence thresholdreg_covar- Regularization added to the diagonal of covariancemax_iter- Maximum number of EM iterationsn_init- Number of initializations to performoutlier_fraction- Expected fraction of outliers in the data (0.0 to 0.5)outlier_threshold- Threshold for outlier detection (in standard deviations)robust_covariance- Whether to use robust covariance estimationrandom_state- Random state for reproducibility
§Examples
use sklears_mixture::{RobustGaussianMixture, CovarianceType};
use sklears_core::traits::{Predict, Fit};
use scirs2_core::ndarray::array;
let X = array![[0.0, 0.0], [1.0, 1.0], [2.0, 2.0], [100.0, 100.0], [11.0, 11.0], [12.0, 12.0]];
let rgmm = RobustGaussianMixture::new()
.n_components(2)
.outlier_fraction(0.15)
.covariance_type(CovarianceType::Diagonal)
.max_iter(100);
let fitted = rgmm.fit(&X.view(), &()).unwrap();
let labels = fitted.predict(&X.view()).unwrap();Implementations§
Source§impl RobustGaussianMixture<Untrained>
impl RobustGaussianMixture<Untrained>
Sourcepub fn n_components(self, n_components: usize) -> Self
pub fn n_components(self, n_components: usize) -> Self
Set the number of components
Sourcepub fn covariance_type(self, covariance_type: CovarianceType) -> Self
pub fn covariance_type(self, covariance_type: CovarianceType) -> Self
Set the covariance type
Sourcepub fn outlier_fraction(self, outlier_fraction: f64) -> Self
pub fn outlier_fraction(self, outlier_fraction: f64) -> Self
Set the expected fraction of outliers
Sourcepub fn outlier_threshold(self, outlier_threshold: f64) -> Self
pub fn outlier_threshold(self, outlier_threshold: f64) -> Self
Set the outlier detection threshold (in standard deviations)
Sourcepub fn robust_covariance(self, robust_covariance: bool) -> Self
pub fn robust_covariance(self, robust_covariance: bool) -> Self
Set whether to use robust covariance estimation
Sourcepub fn random_state(self, random_state: u64) -> Self
pub fn random_state(self, random_state: u64) -> Self
Set the random state
Source§impl RobustGaussianMixture<RobustGaussianMixtureTrained>
impl RobustGaussianMixture<RobustGaussianMixtureTrained>
Sourcepub fn covariances(&self) -> &[Array2<f64>] ⓘ
pub fn covariances(&self) -> &[Array2<f64>] ⓘ
Get the component covariances
Sourcepub fn log_likelihood(&self) -> f64
pub fn log_likelihood(&self) -> f64
Get the log likelihood of the fitted model
Sourcepub fn outlier_mask(&self) -> &Array1<bool>
pub fn outlier_mask(&self) -> &Array1<bool>
Get the outlier mask
Sourcepub fn n_outliers(&self) -> usize
pub fn n_outliers(&self) -> usize
Get the number of detected outliers
Sourcepub fn predict_proba(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array2<f64>>
pub fn predict_proba(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array2<f64>>
Predict probabilities for each component
Sourcepub fn score_samples(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<f64>>
pub fn score_samples(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<f64>>
Compute the per-sample log-likelihood
Sourcepub fn score(&self, X: &ArrayView2<'_, Float>) -> SklResult<f64>
pub fn score(&self, X: &ArrayView2<'_, Float>) -> SklResult<f64>
Compute the average log-likelihood
Sourcepub fn detect_outliers(
&self,
X: &ArrayView2<'_, Float>,
) -> SklResult<Array1<bool>>
pub fn detect_outliers( &self, X: &ArrayView2<'_, Float>, ) -> SklResult<Array1<bool>>
Detect outliers in new data
Trait Implementations§
Source§impl<S: Clone> Clone for RobustGaussianMixture<S>
impl<S: Clone> Clone for RobustGaussianMixture<S>
Source§fn clone(&self) -> RobustGaussianMixture<S>
fn clone(&self) -> RobustGaussianMixture<S>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S: Debug> Debug for RobustGaussianMixture<S>
impl<S: Debug> Debug for RobustGaussianMixture<S>
Source§impl Default for RobustGaussianMixture<Untrained>
impl Default for RobustGaussianMixture<Untrained>
Source§impl Estimator for RobustGaussianMixture<Untrained>
impl Estimator for RobustGaussianMixture<Untrained>
Source§type Error = SklearsError
type Error = SklearsError
Error type for the estimator
Source§fn validate_config(&self) -> Result<(), SklearsError>
fn validate_config(&self) -> Result<(), SklearsError>
Validate estimator configuration with detailed error context
Source§fn check_compatibility(
&self,
n_samples: usize,
n_features: usize,
) -> Result<(), SklearsError>
fn check_compatibility( &self, n_samples: usize, n_features: usize, ) -> Result<(), SklearsError>
Check if estimator is compatible with given data dimensions
Source§fn metadata(&self) -> EstimatorMetadata
fn metadata(&self) -> EstimatorMetadata
Get estimator metadata
Source§impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ()> for RobustGaussianMixture<Untrained>
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ()> for RobustGaussianMixture<Untrained>
Source§type Fitted = RobustGaussianMixture<RobustGaussianMixtureTrained>
type Fitted = RobustGaussianMixture<RobustGaussianMixtureTrained>
The fitted model type
Source§fn fit(self, X: &ArrayView2<'_, Float>, _y: &()) -> SklResult<Self::Fitted>
fn fit(self, X: &ArrayView2<'_, Float>, _y: &()) -> SklResult<Self::Fitted>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Source§impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for RobustGaussianMixture<RobustGaussianMixtureTrained>
impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for RobustGaussianMixture<RobustGaussianMixtureTrained>
Source§fn predict(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<i32>>
fn predict(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<i32>>
Make predictions on the provided data
Source§fn predict_with_uncertainty(
&self,
x: &X,
) -> Result<(Output, UncertaintyMeasure), SklearsError>
fn predict_with_uncertainty( &self, x: &X, ) -> Result<(Output, UncertaintyMeasure), SklearsError>
Make predictions with confidence intervals
Auto Trait Implementations§
impl<S> Freeze for RobustGaussianMixture<S>where
S: Freeze,
impl<S> RefUnwindSafe for RobustGaussianMixture<S>where
S: RefUnwindSafe,
impl<S> Send for RobustGaussianMixture<S>where
S: Send,
impl<S> Sync for RobustGaussianMixture<S>where
S: Sync,
impl<S> Unpin for RobustGaussianMixture<S>where
S: Unpin,
impl<S> UnwindSafe for RobustGaussianMixture<S>where
S: 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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
Source§impl<T> StableApi for Twhere
T: Estimator,
impl<T> StableApi for Twhere
T: Estimator,
Source§const STABLE_SINCE: &'static str = "0.1.0"
const STABLE_SINCE: &'static str = "0.1.0"
API version this type was stabilized in
Source§const HAS_EXPERIMENTAL_FEATURES: bool = false
const HAS_EXPERIMENTAL_FEATURES: bool = false
Whether this API has any experimental features