Skip to main content

ElasticNetOptions

Struct ElasticNetOptions 

Source
pub struct ElasticNetOptions {
    pub lambda: f64,
    pub alpha: f64,
    pub intercept: bool,
    pub standardize: bool,
    pub max_iter: usize,
    pub tol: f64,
    pub penalty_factor: Option<Vec<f64>>,
    pub warm_start: Option<Vec<f64>>,
    pub weights: Option<Vec<f64>>,
    pub coefficient_bounds: Option<Vec<(f64, f64)>>,
}
Expand description

Options for elastic net fitting.

Configuration options for elastic net regression, which combines L1 and L2 penalties.

§Fields

  • lambda - Regularization strength (≥ 0, higher = more regularization)
  • alpha - Mixing parameter (0 = Ridge, 1 = Lasso, 0.5 = equal mix)
  • intercept - Whether to include an intercept term
  • standardize - Whether to standardize predictors to unit variance
  • max_iter - Maximum coordinate descent iterations
  • tol - Convergence tolerance on coefficient changes
  • penalty_factor - Optional per-feature penalty multipliers
  • warm_start - Optional initial coefficient values for warm starts
  • weights - Optional observation weights
  • coefficient_bounds - Optional (lower, upper) bounds for each coefficient

§Example

let options = ElasticNetOptions {
    lambda: 0.1,
    alpha: 0.5,  // Equal mix of L1 and L2
    intercept: true,
    standardize: true,
    ..Default::default()
};

Fields§

§lambda: f64

Regularization strength (lambda >= 0)

§alpha: f64

Elastic net mixing parameter (0 <= alpha <= 1). alpha=1 is Lasso, alpha=0 is Ridge.

§intercept: bool

Whether to include an intercept term

§standardize: bool

Whether to standardize predictors

§max_iter: usize

Maximum coordinate descent iterations

§tol: f64

Convergence tolerance on coefficient changes

§penalty_factor: Option<Vec<f64>>

Per-feature penalty factors (optional). If None, all features have penalty factor 1.0.

§warm_start: Option<Vec<f64>>

Initial coefficients for warm start (optional). If provided, optimization starts from these values instead of zero. Used for efficient pathwise coordinate descent.

§weights: Option<Vec<f64>>

Observation weights (optional). If provided, must have length equal to the number of observations. Weights are normalized to sum to 1 internally.

§coefficient_bounds: Option<Vec<(f64, f64)>>

Coefficient bounds: (lower, upper) for each predictor. If None, uses (-inf, +inf) for all coefficients (no bounds).

The bounds vector length must equal the number of predictors (excluding intercept). For each predictor, the coefficient will be clamped to [lower, upper] after each coordinate descent update.

§Examples

  • Non-negative least squares: Some(vec![(0.0, f64::INFINITY); p])
  • Upper bound only: Some(vec![(-f64::INFINITY, 10.0); p])
  • Both bounds: Some(vec![(-5.0, 5.0); p])

§Notes

  • Bounds are applied to coefficients on the ORIGINAL scale, not standardized scale
  • The intercept is never bounded
  • Each pair must satisfy lower <= upper

Trait Implementations§

Source§

impl Clone for ElasticNetOptions

Source§

fn clone(&self) -> ElasticNetOptions

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 Debug for ElasticNetOptions

Source§

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

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

impl Default for ElasticNetOptions

Source§

fn default() -> Self

Returns the “default value” for a type. 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> 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> 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.