Lab: Model Training
Train ML models with gradient descent and evaluate performance.
Objectives
- Implement linear regression
- Train on synthetic datasets
- Calculate evaluation metrics
Demo Code
See demos/course3/week3/model-training/
Lab Exercise
See labs/course3/week3/lab_3_4_automl.py
Key Implementation
#![allow(unused)] fn main() { impl LinearRegression { pub fn fit(&mut self, features: &[Vec<f64>], labels: &[f64]) { for _ in 0..self.n_iterations { let mut weight_gradients = vec![0.0; self.weights.len()]; let mut bias_gradient = 0.0; for (x, &y) in features.iter().zip(labels.iter()) { let pred = self.predict_single(x); let error = pred - y; for (j, &xj) in x.iter().enumerate() { weight_gradients[j] += error * xj; } bias_gradient += error; } // Update weights for (w, grad) in self.weights.iter_mut().zip(&weight_gradients) { *w -= self.learning_rate * grad / n_samples; } self.bias -= self.learning_rate * bias_gradient / n_samples; } } } }