pub trait Kernel:
Debug
+ Send
+ Sync {
// Required methods
fn compute_kernel_matrix(
&self,
X1: &Array2<f64>,
X2: Option<&Array2<f64>>,
) -> SklResult<Array2<f64>>;
fn kernel(&self, x1: &ArrayView1<'_, f64>, x2: &ArrayView1<'_, f64>) -> f64;
fn get_params(&self) -> Vec<f64>;
fn set_params(&mut self, params: &[f64]) -> SklResult<()>;
fn clone_box(&self) -> Box<dyn Kernel>;
// Provided methods
fn compute_kernel_gradient(
&self,
X1: &Array2<f64>,
X2: Option<&Array2<f64>>,
) -> SklResult<Vec<Array2<f64>>> { ... }
fn kernel_gradient(
&self,
x1: &ArrayView1<'_, f64>,
x2: &ArrayView1<'_, f64>,
) -> SklResult<Vec<f64>> { ... }
}Expand description
Kernel trait for Gaussian Process models
All kernel functions implement this trait to provide consistent interface for computing kernel matrices, gradients, and parameter management.
Required Methods§
Sourcefn compute_kernel_matrix(
&self,
X1: &Array2<f64>,
X2: Option<&Array2<f64>>,
) -> SklResult<Array2<f64>>
fn compute_kernel_matrix( &self, X1: &Array2<f64>, X2: Option<&Array2<f64>>, ) -> SklResult<Array2<f64>>
Compute the kernel matrix between X1 and X2
Sourcefn kernel(&self, x1: &ArrayView1<'_, f64>, x2: &ArrayView1<'_, f64>) -> f64
fn kernel(&self, x1: &ArrayView1<'_, f64>, x2: &ArrayView1<'_, f64>) -> f64
Compute the kernel between two points
Sourcefn get_params(&self) -> Vec<f64>
fn get_params(&self) -> Vec<f64>
Get hyperparameters
Sourcefn set_params(&mut self, params: &[f64]) -> SklResult<()>
fn set_params(&mut self, params: &[f64]) -> SklResult<()>
Set hyperparameters
Provided Methods§
Sourcefn compute_kernel_gradient(
&self,
X1: &Array2<f64>,
X2: Option<&Array2<f64>>,
) -> SklResult<Vec<Array2<f64>>>
fn compute_kernel_gradient( &self, X1: &Array2<f64>, X2: Option<&Array2<f64>>, ) -> SklResult<Vec<Array2<f64>>>
Compute the gradient of the kernel matrix with respect to hyperparameters Returns a vector of gradient matrices, one for each hyperparameter
Sourcefn kernel_gradient(
&self,
x1: &ArrayView1<'_, f64>,
x2: &ArrayView1<'_, f64>,
) -> SklResult<Vec<f64>>
fn kernel_gradient( &self, x1: &ArrayView1<'_, f64>, x2: &ArrayView1<'_, f64>, ) -> SklResult<Vec<f64>>
Compute the gradient of the kernel function with respect to hyperparameters for a single pair of points