ManifoldRegularization

Struct ManifoldRegularization 

Source
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 kernel
  • degree - Degree for polynomial kernel
  • graph_kernel - Kernel for graph construction (‘knn’ or ‘rbf’)
  • n_neighbors - Number of neighbors for graph construction
  • max_iter - Maximum iterations for optimization
  • tol - 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>

Source

pub fn new() -> Self

Create a new ManifoldRegularization instance

Source

pub fn lambda_a(self, lambda_a: f64) -> Self

Set ambient regularization parameter

Source

pub fn lambda_i(self, lambda_i: f64) -> Self

Set intrinsic regularization parameter

Source

pub fn kernel(self, kernel: String) -> Self

Set the kernel function

Source

pub fn gamma(self, gamma: f64) -> Self

Set gamma parameter for RBF kernel

Source

pub fn degree(self, degree: usize) -> Self

Set degree for polynomial kernel

Source

pub fn graph_kernel(self, graph_kernel: String) -> Self

Set graph kernel for manifold construction

Source

pub fn n_neighbors(self, n_neighbors: usize) -> Self

Set number of neighbors for graph construction

Source

pub fn max_iter(self, max_iter: usize) -> Self

Set maximum iterations

Source

pub fn tol(self, tol: f64) -> Self

Set convergence tolerance

Trait Implementations§

Source§

impl<S: Clone> Clone for ManifoldRegularization<S>

Source§

fn clone(&self) -> ManifoldRegularization<S>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<S: Debug> Debug for ManifoldRegularization<S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ManifoldRegularization<Untrained>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Estimator for ManifoldRegularization<Untrained>

Source§

type Config = ()

Configuration type for the estimator
Source§

type Error = SklearsError

Error type for the estimator
Source§

type Float = f64

The numeric type used by this estimator
Source§

fn config(&self) -> &Self::Config

Get estimator configuration
Source§

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>

Check if estimator is compatible with given data dimensions
Source§

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>

Source§

type Fitted = ManifoldRegularization<ManifoldRegularizationTrained>

The fitted model type
Source§

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,

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>

Source§

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>

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> StableApi for T
where T: Estimator,

Source§

const STABLE_SINCE: &'static str = "0.1.0"

API version this type was stabilized in
Source§

const HAS_EXPERIMENTAL_FEATURES: bool = false

Whether this API has any experimental features
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V