LIME

Struct LIME 

Source
pub struct LIME { /* private fields */ }
Expand description

LIME (Local Interpretable Model-agnostic Explanations).

Explains predictions by fitting a simple interpretable model locally around the instance being explained.

§Algorithm

  1. Generate perturbed samples around the instance
  2. Get model predictions for each perturbation
  3. Weight samples by proximity to original instance
  4. Fit weighted linear model to the perturbations
  5. Return linear model coefficients as explanations

§Reference

  • Ribeiro, M. T., et al. (2016). “Why Should I Trust You?”: Explaining the Predictions of Any Classifier. KDD.

Implementations§

Source§

impl LIME

Source

pub fn new(n_samples: usize, kernel_width: f32) -> Self

Create new LIME explainer.

§Arguments
  • n_samples - Number of perturbations to generate (default: 1000)
  • kernel_width - Width of exponential kernel (default: 0.75)
Source

pub fn explain<F>( &self, model_fn: F, sample: &Vector<f32>, seed: u64, ) -> LIMEExplanation
where F: Fn(&Vector<f32>) -> f32,

Explain a prediction by fitting a local linear model.

§Arguments
  • model_fn - Prediction function
  • sample - Instance to explain
  • seed - Random seed for reproducibility
§Returns

Coefficients of the local linear model (feature importance)

Source

pub fn n_samples(&self) -> usize

Source

pub fn kernel_width(&self) -> f32

Trait Implementations§

Source§

impl Debug for LIME

Source§

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

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

impl Default for LIME

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl Freeze for LIME

§

impl RefUnwindSafe for LIME

§

impl Send for LIME

§

impl Sync for LIME

§

impl Unpin for LIME

§

impl UnwindSafe for LIME

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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