pub struct ExpectedModelChange { /* private fields */ }Expand description
Expected Model Change for Active Learning
Expected Model Change selects samples that are expected to cause the largest change in the model parameters when added to the training set. This strategy looks ahead to predict which samples would be most informative for model updating.
§Parameters
n_samples- Number of samples to select for labelingapproximation_method- Method for approximating model change (“gradient_norm”, “fisher_information”, “parameter_variance”)learning_rate- Learning rate for gradient approximationepsilon- Small value for numerical stabilitynormalize_scores- Whether to normalize change scores
§Examples
ⓘ
use sklears_semi_supervised::ExpectedModelChange;
let X = array![[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]];
let gradients = array![[0.1, 0.2], [0.3, 0.1], [0.05, 0.4]];
let emc = ExpectedModelChange::new()
.approximation_method("gradient_norm".to_string())
.n_samples(2);
let selected = emc.select_samples(&X.view(), &gradients.view()).unwrap();Implementations§
Source§impl ExpectedModelChange
impl ExpectedModelChange
Sourcepub fn approximation_method(self, method: String) -> Self
pub fn approximation_method(self, method: String) -> Self
Set the approximation method for model change
Sourcepub fn learning_rate(self, lr: f64) -> Self
pub fn learning_rate(self, lr: f64) -> Self
Set the learning rate for gradient approximation
Sourcepub fn normalize_scores(self, normalize: bool) -> Self
pub fn normalize_scores(self, normalize: bool) -> Self
Set whether to normalize scores
Sourcepub fn diversity_weight(self, weight: f64) -> Self
pub fn diversity_weight(self, weight: f64) -> Self
Set diversity weight for selection
Sourcepub fn batch_size(self, batch_size: usize) -> Self
pub fn batch_size(self, batch_size: usize) -> Self
Set batch size for computation
Sourcepub fn select_samples(
&self,
X: &ArrayView2<'_, f64>,
gradients: &ArrayView2<'_, f64>,
) -> SklResult<Vec<usize>>
pub fn select_samples( &self, X: &ArrayView2<'_, f64>, gradients: &ArrayView2<'_, f64>, ) -> SklResult<Vec<usize>>
Select samples based on expected model change
Trait Implementations§
Source§impl Clone for ExpectedModelChange
impl Clone for ExpectedModelChange
Source§fn clone(&self) -> ExpectedModelChange
fn clone(&self) -> ExpectedModelChange
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 Debug for ExpectedModelChange
impl Debug for ExpectedModelChange
Auto Trait Implementations§
impl Freeze for ExpectedModelChange
impl RefUnwindSafe for ExpectedModelChange
impl Send for ExpectedModelChange
impl Sync for ExpectedModelChange
impl Unpin for ExpectedModelChange
impl UnwindSafe for ExpectedModelChange
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 more