pub struct ForgetfulKernelMatrix { /* private fields */ }Expand description
Kernel matrix with exponential forgetting for concept drift adaptation.
Older samples are weighted by λ^age, allowing the model to adapt to changing data distributions.
§Example
use tensorlogic_sklears_kernels::{ForgetfulKernelMatrix, ForgetfulConfig, RbfKernel, RbfKernelConfig, Kernel};
let kernel = RbfKernel::new(RbfKernelConfig::new(0.5)).unwrap();
let config = ForgetfulConfig::with_lambda(0.95).unwrap();
let mut forgetful = ForgetfulKernelMatrix::new(Box::new(kernel), config);
// Add samples (older ones get downweighted)
forgetful.add_sample(vec![1.0, 2.0]).unwrap();
forgetful.add_sample(vec![3.0, 4.0]).unwrap();
forgetful.add_sample(vec![5.0, 6.0]).unwrap();
// Get weighted kernel matrix
let weighted = forgetful.get_weighted_matrix();Implementations§
Source§impl ForgetfulKernelMatrix
impl ForgetfulKernelMatrix
Sourcepub fn new(kernel: Box<dyn Kernel>, config: ForgetfulConfig) -> Self
pub fn new(kernel: Box<dyn Kernel>, config: ForgetfulConfig) -> Self
Create a new forgetful kernel matrix.
Sourcepub fn get_matrix(&self) -> &Vec<Vec<f64>>
pub fn get_matrix(&self) -> &Vec<Vec<f64>>
Get the raw (unweighted) kernel matrix.
Sourcepub fn get_weighted_matrix(&self) -> Vec<Vec<f64>>
pub fn get_weighted_matrix(&self) -> Vec<Vec<f64>>
Get the weighted kernel matrix.
Each entry K[i,j] is multiplied by sqrt(w_i * w_j) to maintain PSD property.
Sourcepub fn get_weights(&self) -> &Vec<f64>
pub fn get_weights(&self) -> &Vec<f64>
Get sample weights.
Sourcepub fn get_samples(&self) -> &Vec<Vec<f64>>
pub fn get_samples(&self) -> &Vec<Vec<f64>>
Get the current samples.
Sourcepub fn stats(&self) -> &OnlineStats
pub fn stats(&self) -> &OnlineStats
Get statistics.
Sourcepub fn compute_weighted(&self, query: &[f64]) -> Result<Vec<f64>>
pub fn compute_weighted(&self, query: &[f64]) -> Result<Vec<f64>>
Compute weighted kernel values between query and all stored samples.
Sourcepub fn effective_size(&self) -> f64
pub fn effective_size(&self) -> f64
Get effective sample size (sum of weights).
Auto Trait Implementations§
impl Freeze for ForgetfulKernelMatrix
impl !RefUnwindSafe for ForgetfulKernelMatrix
impl Send for ForgetfulKernelMatrix
impl Sync for ForgetfulKernelMatrix
impl Unpin for ForgetfulKernelMatrix
impl !UnwindSafe for ForgetfulKernelMatrix
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> 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