Skip to main content

ridge_fit

Function ridge_fit 

Source
pub fn ridge_fit(
    x: &Matrix,
    y: &[f64],
    options: &RidgeFitOptions,
) -> Result<RidgeFit>
Expand description

Fits ridge regression for a single lambda value.

Ridge regression adds an L2 penalty to the coefficients, which helps with multicollinearity and overfitting. The intercept is never penalized.

§Arguments

  • x - Design matrix (n rows × p columns including intercept)
  • y - Response variable (n observations)
  • options - Configuration options for ridge regression

§Returns

A RidgeFit containing coefficients, fitted values, residuals, and metrics.

§Example

let y = vec![2.0, 4.0, 6.0, 8.0];
let x = Matrix::new(4, 2, vec![1.0, 1.0, 1.0, 2.0, 1.0, 3.0, 1.0, 4.0]);

let options = RidgeFitOptions {
    lambda: 0.1,
    intercept: true,
    standardize: false,
    ..Default::default()
};

let fit = ridge_fit(&x, &y, &options).unwrap();
assert!(fit.coefficients.len() == 1); // One slope coefficient
assert!(fit.r_squared > 0.9); // Good fit for linear data