pub struct ManifoldRegularization<S = Untrained> { /* private fields */ }Expand description
Manifold Regularization classifier
Manifold regularization extends supervised learning by incorporating the geometry of the marginal distribution P(X). It optimizes both the empirical risk on labeled data and the smoothness of the function with respect to the data manifold.
The objective function is: min Σ V(yi, f(xi)) + λA ||f||²_K + λI ∫ ||∇f||² dP(x)
where:
- V is the loss function
- λA controls Tikhonov regularization in RKHS
- λI controls manifold regularization
- The integral term enforces smoothness on the manifold
§Parameters
lambda_a- Ambient regularization parameter (RKHS regularization)lambda_i- Intrinsic regularization parameter (manifold regularization)kernel- Kernel function (‘rbf’, ‘linear’, ‘polynomial’)gamma- Parameter for RBF kerneldegree- Degree for polynomial kernelgraph_kernel- Kernel for graph construction (‘knn’ or ‘rbf’)n_neighbors- Number of neighbors for graph constructionmax_iter- Maximum iterations for optimizationtol- Convergence tolerance
§Examples
use scirs2_core::array;
use sklears_semi_supervised::ManifoldRegularization;
use sklears_core::traits::{Predict, Fit};
let X = array![[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0]];
let y = array![0, 1, -1, -1]; // -1 indicates unlabeled
let mr = ManifoldRegularization::new()
.lambda_a(0.01)
.lambda_i(0.1)
.kernel("rbf".to_string())
.gamma(1.0);
let fitted = mr.fit(&X.view(), &y.view()).unwrap();
let predictions = fitted.predict(&X.view()).unwrap();Implementations§
Source§impl ManifoldRegularization<Untrained>
impl ManifoldRegularization<Untrained>
Sourcepub fn graph_kernel(self, graph_kernel: String) -> Self
pub fn graph_kernel(self, graph_kernel: String) -> Self
Set graph kernel for manifold construction
Sourcepub fn n_neighbors(self, n_neighbors: usize) -> Self
pub fn n_neighbors(self, n_neighbors: usize) -> Self
Set number of neighbors for graph construction
Trait Implementations§
Source§impl<S: Clone> Clone for ManifoldRegularization<S>
impl<S: Clone> Clone for ManifoldRegularization<S>
Source§fn clone(&self) -> ManifoldRegularization<S>
fn clone(&self) -> ManifoldRegularization<S>
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<S: Debug> Debug for ManifoldRegularization<S>
impl<S: Debug> Debug for ManifoldRegularization<S>
Source§impl Default for ManifoldRegularization<Untrained>
impl Default for ManifoldRegularization<Untrained>
Source§impl Estimator for ManifoldRegularization<Untrained>
impl Estimator for ManifoldRegularization<Untrained>
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<&i32>, Dim<[usize; 1]>>> for ManifoldRegularization<Untrained>
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<ViewRepr<&i32>, Dim<[usize; 1]>>> for ManifoldRegularization<Untrained>
Source§type Fitted = ManifoldRegularization<ManifoldRegularizationTrained>
type Fitted = ManifoldRegularization<ManifoldRegularizationTrained>
The fitted model type
Source§fn fit(
self,
X: &ArrayView2<'_, Float>,
y: &ArrayView1<'_, i32>,
) -> SklResult<Self::Fitted>
fn fit( self, X: &ArrayView2<'_, Float>, y: &ArrayView1<'_, i32>, ) -> SklResult<Self::Fitted>
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
Source§impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for ManifoldRegularization<ManifoldRegularizationTrained>
impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ArrayBase<OwnedRepr<i32>, Dim<[usize; 1]>>> for ManifoldRegularization<ManifoldRegularizationTrained>
Source§fn predict(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<i32>>
fn predict(&self, X: &ArrayView2<'_, Float>) -> SklResult<Array1<i32>>
Make predictions on the provided data
Source§fn predict_with_uncertainty(
&self,
x: &X,
) -> Result<(Output, UncertaintyMeasure), SklearsError>
fn predict_with_uncertainty( &self, x: &X, ) -> Result<(Output, UncertaintyMeasure), SklearsError>
Make predictions with confidence intervals
Auto Trait Implementations§
impl<S> Freeze for ManifoldRegularization<S>where
S: Freeze,
impl<S> RefUnwindSafe for ManifoldRegularization<S>where
S: RefUnwindSafe,
impl<S> Send for ManifoldRegularization<S>where
S: Send,
impl<S> Sync for ManifoldRegularization<S>where
S: Sync,
impl<S> Unpin for ManifoldRegularization<S>where
S: Unpin,
impl<S> UnwindSafe for ManifoldRegularization<S>where
S: UnwindSafe,
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