ExpectedModelChange

Struct ExpectedModelChange 

Source
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 labeling
  • approximation_method - Method for approximating model change (“gradient_norm”, “fisher_information”, “parameter_variance”)
  • learning_rate - Learning rate for gradient approximation
  • epsilon - Small value for numerical stability
  • normalize_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

Source

pub fn new() -> Self

Create a new ExpectedModelChange instance

Source

pub fn n_samples(self, n_samples: usize) -> Self

Set the number of samples to select

Source

pub fn approximation_method(self, method: String) -> Self

Set the approximation method for model change

Source

pub fn learning_rate(self, lr: f64) -> Self

Set the learning rate for gradient approximation

Source

pub fn epsilon(self, epsilon: f64) -> Self

Set epsilon for numerical stability

Source

pub fn normalize_scores(self, normalize: bool) -> Self

Set whether to normalize scores

Source

pub fn diversity_weight(self, weight: f64) -> Self

Set diversity weight for selection

Source

pub fn batch_size(self, batch_size: usize) -> Self

Set batch size for computation

Source

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

Source§

fn clone(&self) -> ExpectedModelChange

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExpectedModelChange

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ExpectedModelChange

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V