Skip to main content

LinearLeafModel

Struct LinearLeafModel 

Source
pub struct LinearLeafModel { /* private fields */ }
Available on crate feature alloc only.
Expand description

Online ridge regression leaf model with AdaGrad optimization.

Learns a linear function w . x + b using Newton-scaled gradient descent with per-weight AdaGrad accumulators for adaptive learning rates. Features at different scales converge at their natural rates without manual tuning.

Weights are lazily initialized on the first update call so the model adapts to whatever dimensionality arrives.

Optional exponential weight decay (decay) gives the model a finite memory horizon for non-stationary streams.

Implementations§

Source§

impl LinearLeafModel

Source

pub fn new(learning_rate: f64, decay: Option<f64>, use_adagrad: bool) -> Self

Create a new linear leaf model with the given base learning rate, optional exponential decay factor, and AdaGrad toggle.

When decay is Some(d) with d in (0, 1), weights are multiplied by d before each update, giving the model a memory half-life of ln(2) / ln(1/d) samples.

When use_adagrad is true, per-weight squared gradient accumulators give each feature its own adaptive learning rate. When false, all weights share a single Newton-scaled learning rate (plain SGD).

Trait Implementations§

Source§

impl LeafModel for LinearLeafModel

Source§

fn predict(&self, features: &[f64]) -> f64

Produce a prediction given input features.
Source§

fn update(&mut self, features: &[f64], gradient: f64, hessian: f64, lambda: f64)

Update model parameters given a gradient, hessian, and regularization lambda.
Source§

fn clone_fresh(&self) -> Box<dyn LeafModel>

Create a fresh (zeroed / re-initialized) clone of this model’s architecture.
Source§

fn clone_warm(&self) -> Box<dyn LeafModel>

Create a warm clone preserving learned weights but resetting optimizer state. Read more

Auto Trait Implementations§

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> 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, 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.