pub struct ChineseRestaurantProcess<S = Untrained> { /* private fields */ }Expand description
Chinese Restaurant Process Mixture Model
A nonparametric Bayesian mixture model that automatically determines the number of components using the Chinese Restaurant Process metaphor. Customers (data points) sit at tables (components) with probability proportional to the number of existing customers at each table, or start a new table with probability proportional to the concentration parameter α.
§Examples
use sklears_mixture::{ChineseRestaurantProcess, 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], [10.0, 10.0], [11.0, 11.0], [12.0, 12.0]];
let model = ChineseRestaurantProcess::new()
.alpha(1.0)
.max_components(10)
.covariance_type(CovarianceType::Diagonal);
let fitted = model.fit(&X.view(), &()).unwrap();
let labels = fitted.predict(&X.view()).unwrap();Implementations§
Source§impl ChineseRestaurantProcess<Untrained>
impl ChineseRestaurantProcess<Untrained>
Sourcepub fn max_components(self, max_components: usize) -> Self
pub fn max_components(self, max_components: usize) -> Self
Set the maximum 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 random_state(self, random_state: u64) -> Self
pub fn random_state(self, random_state: u64) -> Self
Set the random state
Source§impl ChineseRestaurantProcess<ChineseRestaurantProcessTrained>
impl ChineseRestaurantProcess<ChineseRestaurantProcessTrained>
Sourcepub fn predict_proba(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array2<f64>>
pub fn predict_proba(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array2<f64>>
Predict class probabilities
Trait Implementations§
Source§impl<S: Clone> Clone for ChineseRestaurantProcess<S>
impl<S: Clone> Clone for ChineseRestaurantProcess<S>
Source§fn clone(&self) -> ChineseRestaurantProcess<S>
fn clone(&self) -> ChineseRestaurantProcess<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 ChineseRestaurantProcess<S>
impl<S: Debug> Debug for ChineseRestaurantProcess<S>
Source§impl Default for ChineseRestaurantProcess<Untrained>
impl Default for ChineseRestaurantProcess<Untrained>
Source§impl Estimator for ChineseRestaurantProcess<Untrained>
impl Estimator for ChineseRestaurantProcess<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 ChineseRestaurantProcess<Untrained>
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ()> for ChineseRestaurantProcess<Untrained>
Source§type Fitted = ChineseRestaurantProcess<ChineseRestaurantProcessTrained>
type Fitted = ChineseRestaurantProcess<ChineseRestaurantProcessTrained>
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 ChineseRestaurantProcess<ChineseRestaurantProcessTrained>
impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for ChineseRestaurantProcess<ChineseRestaurantProcessTrained>
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 ChineseRestaurantProcess<S>where
S: Freeze,
impl<S> RefUnwindSafe for ChineseRestaurantProcess<S>where
S: RefUnwindSafe,
impl<S> Send for ChineseRestaurantProcess<S>where
S: Send,
impl<S> Sync for ChineseRestaurantProcess<S>where
S: Sync,
impl<S> Unpin for ChineseRestaurantProcess<S>where
S: Unpin,
impl<S> UnwindSafe for ChineseRestaurantProcess<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