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 variabley_scale- Scale factor for response (optional, used for lambda path)intercept- Whether an intercept term was includedstandardized_x- Whether X was standardizedstandardized_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: f64Mean 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: boolWhether an intercept was included
standardized_x: boolWhether X was standardized
standardized_y: boolWhether y was standardized
Trait Implementations§
Source§impl Clone for StandardizationInfo
impl Clone for StandardizationInfo
Source§fn clone(&self) -> StandardizationInfo
fn clone(&self) -> StandardizationInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more