pub struct ExplainabilityCallback { /* private fields */ }Expand description
Callback for computing feature attributions during training
Integrates with aprender’s interpret module to provide explainability insights during model evaluation.
§Example
ⓘ
use entrenar::train::{ExplainabilityCallback, ExplainMethod};
let callback = ExplainabilityCallback::new(ExplainMethod::PermutationImportance)
.with_top_k(5)
.with_eval_samples(100);Implementations§
Source§impl ExplainabilityCallback
impl ExplainabilityCallback
Sourcepub fn new(method: ExplainMethod) -> Self
pub fn new(method: ExplainMethod) -> Self
Sourcepub fn with_top_k(self, k: usize) -> Self
pub fn with_top_k(self, k: usize) -> Self
Set number of top features to track
Sourcepub fn with_eval_samples(self, n: usize) -> Self
pub fn with_eval_samples(self, n: usize) -> Self
Set number of samples to use for evaluation
Sourcepub fn with_feature_names(self, names: Vec<String>) -> Self
pub fn with_feature_names(self, names: Vec<String>) -> Self
Set feature names for interpretability
Sourcepub fn method(&self) -> ExplainMethod
pub fn method(&self) -> ExplainMethod
Get attribution method
Sourcepub fn eval_samples(&self) -> usize
pub fn eval_samples(&self) -> usize
Get eval samples setting
Sourcepub fn results(&self) -> &[FeatureImportanceResult]
pub fn results(&self) -> &[FeatureImportanceResult]
Get all computed results
Sourcepub fn feature_names(&self) -> Option<&[String]>
pub fn feature_names(&self) -> Option<&[String]>
Get feature names if set
Sourcepub fn record_importances(
&mut self,
epoch: usize,
importances: Vec<(usize, f32)>,
)
pub fn record_importances( &mut self, epoch: usize, importances: Vec<(usize, f32)>, )
Record feature importances for an epoch
Call this during on_epoch_end with computed importances
Sourcepub fn compute_permutation_importance<P>(
&self,
predict_fn: P,
x: &[Vector<f32>],
y: &[f32],
) -> Vec<(usize, f32)>
pub fn compute_permutation_importance<P>( &self, predict_fn: P, x: &[Vector<f32>], y: &[f32], ) -> Vec<(usize, f32)>
Compute permutation importance using aprender
§Arguments
predict_fn- Model prediction functionx- Feature vectorsy- Target values
Sourcepub fn compute_integrated_gradients<F>(
&self,
model_fn: F,
sample: &Vector<f32>,
baseline: &Vector<f32>,
) -> Vec<(usize, f32)>
pub fn compute_integrated_gradients<F>( &self, model_fn: F, sample: &Vector<f32>, baseline: &Vector<f32>, ) -> Vec<(usize, f32)>
Compute integrated gradients using aprender
§Arguments
model_fn- Model prediction functionsample- Input sample to explainbaseline- Baseline input (typically zeros)
Sourcepub fn compute_saliency<F>(
&self,
model_fn: F,
sample: &Vector<f32>,
) -> Vec<(usize, f32)>
pub fn compute_saliency<F>( &self, model_fn: F, sample: &Vector<f32>, ) -> Vec<(usize, f32)>
Compute saliency map using aprender
§Arguments
model_fn- Model prediction functionsample- Input sample to explain
Sourcepub fn consistent_top_features(&self) -> Vec<(usize, f32)>
pub fn consistent_top_features(&self) -> Vec<(usize, f32)>
Get top features that have been consistently important across epochs
Trait Implementations§
Source§impl Debug for ExplainabilityCallback
impl Debug for ExplainabilityCallback
Source§impl TrainerCallback for ExplainabilityCallback
impl TrainerCallback for ExplainabilityCallback
Source§fn on_epoch_end(&mut self, ctx: &CallbackContext) -> CallbackAction
fn on_epoch_end(&mut self, ctx: &CallbackContext) -> CallbackAction
Called after each epoch
Source§fn on_train_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_train_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
Called before training starts
Source§fn on_train_end(&mut self, _ctx: &CallbackContext)
fn on_train_end(&mut self, _ctx: &CallbackContext)
Called after training ends
Source§fn on_epoch_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_epoch_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
Called before each epoch
Source§fn on_step_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_step_begin(&mut self, _ctx: &CallbackContext) -> CallbackAction
Called before each training step
Source§fn on_step_end(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_step_end(&mut self, _ctx: &CallbackContext) -> CallbackAction
Called after each training step
Source§fn on_validation(&mut self, _ctx: &CallbackContext) -> CallbackAction
fn on_validation(&mut self, _ctx: &CallbackContext) -> CallbackAction
Called when validation is performed
Auto Trait Implementations§
impl Freeze for ExplainabilityCallback
impl RefUnwindSafe for ExplainabilityCallback
impl Send for ExplainabilityCallback
impl Sync for ExplainabilityCallback
impl Unpin for ExplainabilityCallback
impl UnsafeUnpin for ExplainabilityCallback
impl UnwindSafe for ExplainabilityCallback
Blanket Implementations§
impl<T> Allocation for T
impl<T> Allocation for T
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> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.