Skip to main content

StandardizationInfo

Struct StandardizationInfo 

Source
pub struct StandardizationInfo {
    pub x_mean: Vec<f64>,
    pub x_scale: Vec<f64>,
    pub column_squared_norms: Vec<f64>,
    pub y_mean: f64,
    pub y_scale: Option<f64>,
    pub y_scale_before_sqrt_weights_normalized: Option<f64>,
    pub intercept: bool,
    pub standardized_x: bool,
    pub standardized_y: bool,
}
Expand description

Information stored during standardization, used to unstandardize coefficients.

This struct captures all the information needed to transform coefficients from the standardized space back to the original data scale.

§Fields

  • x_mean - Mean of each predictor column (length p)
  • x_scale - Scale factor for each predictor column (length p)
  • y_mean - Mean of response variable
  • y_scale - Scale factor for response (optional, used for lambda path)
  • intercept - Whether an intercept term was included
  • standardized_x - Whether X was standardized
  • standardized_y - Whether y was standardized

§Example

let info = StandardizationInfo {
    x_mean: vec![0.0, 5.0],
    x_scale: vec![1.0, 2.0],
    column_squared_norms: vec![1.0, 1.0],
    y_mean: 10.0,
    y_scale: Some(3.0),
    y_scale_before_sqrt_weights_normalized: Some(3.0),
    intercept: true,
    standardized_x: true,
    standardized_y: false,
};

assert_eq!(info.x_mean.len(), 2);
assert!(info.intercept);

Fields§

§x_mean: Vec<f64>

Mean of each predictor column

§x_scale: Vec<f64>

Scale factor for each predictor column

§column_squared_norms: Vec<f64>

Squared norm of each predictor column after standardization. This is used in the coordinate descent update denominator.

  • With intercept and standardize: column_squared_norms[j] = 1.0 (unit norm after centering)
  • Without intercept and standardize: column_squared_norms[j] = 1.0 + x_squared_mean/x_centered_variance (glmnet formula)
  • Without standardize: column_squared_norms[j] = ||x_j||^2 (actual squared norm)
§y_mean: f64

Mean of response variable

§y_scale: Option<f64>

Scale factor for response (for lambda path construction) This is the norm AFTER sqrt_weights_normalized transformation and centering: sqrt(sum((sqrt_weights_normalized*(y-ym))^2))

§y_scale_before_sqrt_weights_normalized: Option<f64>

Scale factor for response BEFORE sqrt_weights_normalized transformation: sqrt(sum((y-ym)^2)) This is used for lambda scaling between original and standardized data

§intercept: bool

Whether an intercept was included

§standardized_x: bool

Whether X was standardized

§standardized_y: bool

Whether y was standardized

Trait Implementations§

Source§

impl Clone for StandardizationInfo

Source§

fn clone(&self) -> StandardizationInfo

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 StandardizationInfo

Source§

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

Formats the value using the given formatter. 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.