pub struct NormalizedKernel { /* private fields */ }Expand description
Wrapper that creates a normalized version of any kernel.
The normalized kernel computes K_norm(x,y) = K(x,y) / sqrt(K(x,x) * K(y,y)) ensuring that K_norm(x,x) = 1.0 for all x.
Implementations§
Source§impl NormalizedKernel
impl NormalizedKernel
Sourcepub fn new(base_kernel: Box<dyn Kernel>) -> Self
pub fn new(base_kernel: Box<dyn Kernel>) -> Self
Create a new normalized kernel wrapper
§Examples
use tensorlogic_sklears_kernels::{LinearKernel, NormalizedKernel, Kernel};
let linear = Box::new(LinearKernel::new());
let normalized = NormalizedKernel::new(linear);
let x = vec![1.0, 2.0, 3.0];
let y = vec![4.0, 5.0, 6.0];
let sim = normalized.compute(&x, &y).unwrap();
// Self-similarity should be 1.0
let self_sim = normalized.compute(&x, &x).unwrap();
assert!((self_sim - 1.0).abs() < 1e-10);Trait Implementations§
Auto Trait Implementations§
impl !Freeze for NormalizedKernel
impl !RefUnwindSafe for NormalizedKernel
impl Send for NormalizedKernel
impl Sync for NormalizedKernel
impl Unpin for NormalizedKernel
impl !UnwindSafe for NormalizedKernel
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