pub struct StructuredKernelInterpolationGPR {
pub kernel: Box<dyn Kernel>,
pub grid_size: usize,
pub interpolation_method: InterpolationMethod,
pub grid_bounds_method: GridBoundsMethod,
pub boundary_extension: f64,
pub noise_variance: f64,
pub use_toeplitz: bool,
pub random_state: Option<u64>,
pub cg_tolerance: f64,
pub max_cg_iterations: usize,
}Expand description
Structured Kernel Interpolation Gaussian Process Regressor
Uses structured interpolation on regular grids to achieve scalable GP inference with O(n log n) computational complexity for large datasets.
§Example
use sklears_gaussian_process::{StructuredKernelInterpolationGPR, InterpolationMethod, kernels::RBF};
use sklears_core::prelude::*;
// SciRS2 Policy - Use scirs2-autograd for ndarray types and operations
let kernel = Box::new(RBF::new(1.0));
let model = StructuredKernelInterpolationGPR::new(kernel)
.grid_size(64)
.interpolation_method(InterpolationMethod::Linear);
let X = Array2::from_shape_vec((100, 2), (0..200).map(|x| x as f64).collect()).unwrap();
let y = Array1::from_vec((0..100).map(|x| (x as f64).sin()).collect());
let trained_model = model.fit(&X.view(), &y.view()).unwrap();
let predictions = trained_model.predict(&X.view()).unwrap();Fields§
§kernel: Box<dyn Kernel>Base kernel to interpolate
grid_size: usizeGrid size for each dimension
interpolation_method: InterpolationMethodInterpolation method
grid_bounds_method: GridBoundsMethodGrid bounds method
boundary_extension: f64Boundary extension factor
noise_variance: f64Noise variance parameter
use_toeplitz: boolWhether to use Toeplitz structure for regular grids
random_state: Option<u64>Random state for reproducible results
cg_tolerance: f64Tolerance for conjugate gradient solver
max_cg_iterations: usizeMaximum iterations for conjugate gradient
Implementations§
Source§impl StructuredKernelInterpolationGPR
impl StructuredKernelInterpolationGPR
Sourcepub fn interpolation_method(self, method: InterpolationMethod) -> Self
pub fn interpolation_method(self, method: InterpolationMethod) -> Self
Set the interpolation method
Sourcepub fn grid_bounds_method(self, method: GridBoundsMethod) -> Self
pub fn grid_bounds_method(self, method: GridBoundsMethod) -> Self
Set the grid bounds method
Sourcepub fn boundary_extension(self, extension: f64) -> Self
pub fn boundary_extension(self, extension: f64) -> Self
Set boundary extension factor
Sourcepub fn noise_variance(self, variance: f64) -> Self
pub fn noise_variance(self, variance: f64) -> Self
Set noise variance
Sourcepub fn use_toeplitz(self, use_toeplitz: bool) -> Self
pub fn use_toeplitz(self, use_toeplitz: bool) -> Self
Set whether to use Toeplitz structure
Sourcepub fn random_state(self, seed: Option<u64>) -> Self
pub fn random_state(self, seed: Option<u64>) -> Self
Set random state
Sourcepub fn compute_approximation_info(
&self,
X: &ArrayView2<'_, f64>,
grid_points: &[Array1<f64>],
) -> SklResult<SkiApproximationInfo>
pub fn compute_approximation_info( &self, X: &ArrayView2<'_, f64>, grid_points: &[Array1<f64>], ) -> SklResult<SkiApproximationInfo>
Compute approximation quality metrics
Trait Implementations§
Source§impl Clone for StructuredKernelInterpolationGPR
impl Clone for StructuredKernelInterpolationGPR
Source§fn clone(&self) -> StructuredKernelInterpolationGPR
fn clone(&self) -> StructuredKernelInterpolationGPR
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Estimator for StructuredKernelInterpolationGPR
impl Estimator for StructuredKernelInterpolationGPR
Source§type Config = StructuredKernelInterpolationGPR
type Config = StructuredKernelInterpolationGPR
Configuration type for the estimator
Source§type Error = SklearsError
type Error = SklearsError
Error type for the estimator
Source§fn validate_config(&self) -> Result<(), SklearsError>
fn validate_config(&self) -> Result<(), SklearsError>
Validate estimator configuration with detailed error context
Source§fn check_compatibility(
&self,
n_samples: usize,
n_features: usize,
) -> Result<(), SklearsError>
fn check_compatibility( &self, n_samples: usize, n_features: usize, ) -> Result<(), SklearsError>
Check if estimator is compatible with given data dimensions
Source§fn metadata(&self) -> EstimatorMetadata
fn metadata(&self) -> EstimatorMetadata
Get estimator metadata
Source§impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>, SkiGprTrained> for StructuredKernelInterpolationGPR
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>, SkiGprTrained> for StructuredKernelInterpolationGPR
Source§type Fitted = SkiGprTrained
type Fitted = SkiGprTrained
The fitted model type
Source§fn fit(
self,
X: &ArrayView2<'_, f64>,
y: &ArrayView1<'_, f64>,
) -> SklResult<SkiGprTrained>
fn fit( self, X: &ArrayView2<'_, f64>, y: &ArrayView1<'_, f64>, ) -> SklResult<SkiGprTrained>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Auto Trait Implementations§
impl Freeze for StructuredKernelInterpolationGPR
impl !RefUnwindSafe for StructuredKernelInterpolationGPR
impl Send for StructuredKernelInterpolationGPR
impl Sync for StructuredKernelInterpolationGPR
impl Unpin for StructuredKernelInterpolationGPR
impl !UnwindSafe for StructuredKernelInterpolationGPR
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> Pointable for T
impl<T> Pointable for T
Source§impl<T> StableApi for Twhere
T: Estimator,
impl<T> StableApi for Twhere
T: Estimator,
Source§const STABLE_SINCE: &'static str = "0.1.0"
const STABLE_SINCE: &'static str = "0.1.0"
API version this type was stabilized in
Source§const HAS_EXPERIMENTAL_FEATURES: bool = false
const HAS_EXPERIMENTAL_FEATURES: bool = false
Whether this API has any experimental features