pub struct DemocraticCoLearning<S = Untrained> { /* private fields */ }Expand description
Democratic Co-Learning classifier for semi-supervised learning
Democratic co-learning extends traditional co-training by using multiple classifiers trained on different views of the data. Instead of pairwise labeling, all classifiers vote democratically on which unlabeled samples should be added to the training set.
§Parameters
views- Feature indices for each viewk_add- Number of samples to add per iterationmax_iter- Maximum number of iterationsconfidence_threshold- Minimum confidence threshold for pseudo-labelingmin_agreement- Minimum number of classifiers that must agreeverbose- Whether to print progress information
§Examples
ⓘ
use sklears_semi_supervised::DemocraticCoLearning;
use sklears_core::traits::{Predict, Fit};
let X = array![[1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
[2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
[3.0, 4.0, 5.0, 6.0, 7.0, 8.0],
[4.0, 5.0, 6.0, 7.0, 8.0, 9.0]];
let y = array![0, 1, -1, -1]; // -1 indicates unlabeled
let dcl = DemocraticCoLearning::new()
.views(vec![vec![0, 1], vec![2, 3], vec![4, 5]])
.k_add(1)
.min_agreement(2)
.max_iter(10);
let fitted = dcl.fit(&X.view(), &y.view()).unwrap();
let predictions = fitted.predict(&X.view()).unwrap();Implementations§
Source§impl DemocraticCoLearning<Untrained>
impl DemocraticCoLearning<Untrained>
Sourcepub fn confidence_threshold(self, threshold: f64) -> Self
pub fn confidence_threshold(self, threshold: f64) -> Self
Set the confidence threshold
Sourcepub fn min_agreement(self, min_agreement: usize) -> Self
pub fn min_agreement(self, min_agreement: usize) -> Self
Set the minimum number of classifiers that must agree
Sourcepub fn selection_strategy(self, strategy: String) -> Self
pub fn selection_strategy(self, strategy: String) -> Self
Set selection strategy for choosing samples to add
Trait Implementations§
Source§impl<S: Clone> Clone for DemocraticCoLearning<S>
impl<S: Clone> Clone for DemocraticCoLearning<S>
Source§fn clone(&self) -> DemocraticCoLearning<S>
fn clone(&self) -> DemocraticCoLearning<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 DemocraticCoLearning<S>
impl<S: Debug> Debug for DemocraticCoLearning<S>
Source§impl Default for DemocraticCoLearning<Untrained>
impl Default for DemocraticCoLearning<Untrained>
Source§impl Estimator for DemocraticCoLearning<Untrained>
impl Estimator for DemocraticCoLearning<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]>>, ArrayBase<ViewRepr<&i32>, Dim<[usize; 1]>>> for DemocraticCoLearning<Untrained>
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&i32>, Dim<[usize; 1]>>> for DemocraticCoLearning<Untrained>
Source§type Fitted = DemocraticCoLearning<DemocraticCoLearningTrained>
type Fitted = DemocraticCoLearning<DemocraticCoLearningTrained>
The fitted model type
Source§fn fit(
self,
X: &ArrayView2<'_, Float>,
y: &ArrayView1<'_, i32>,
) -> SklResult<Self::Fitted>
fn fit( self, X: &ArrayView2<'_, Float>, y: &ArrayView1<'_, i32>, ) -> 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 DemocraticCoLearning<DemocraticCoLearningTrained>
impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for DemocraticCoLearning<DemocraticCoLearningTrained>
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 DemocraticCoLearning<S>where
S: Freeze,
impl<S> RefUnwindSafe for DemocraticCoLearning<S>where
S: RefUnwindSafe,
impl<S> Send for DemocraticCoLearning<S>where
S: Send,
impl<S> Sync for DemocraticCoLearning<S>where
S: Sync,
impl<S> Unpin for DemocraticCoLearning<S>where
S: Unpin,
impl<S> UnwindSafe for DemocraticCoLearning<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