Week 17-18 : Advanced ML & Course Review (Days 113-126)
Introduction
Most course notebooks stop at a trained model on disk. Production teams need something else: repeatable experiments, tracked runs, persisted artifacts, and lesson code that does not fork into fifteen copies. This project unifies Days 113–126 into one stack—a shared Python core, a FastAPI service with separate Learning and Product APIs, a React dashboard, and Postgres-backed experiment metadata with background Optuna tuning.
You will walk away knowing how to compose gradient-boosting lessons into a single engine, expose them through two API surfaces, and run hyperparameter search without blocking HTTP or corrupting your database schema.
System Overview
The system splits into four bands:
React dashboard (Nginx, port 3000) — experiment workbench, learning demos, live run polling.
FastAPI backend (port 8000) —
/api/v1/week1718/learn/*for curriculum demos;/api/v1/ml/*for experiments, runs, artifacts, and studies.week1718_pythoncore — synthetic fraud data, scratch GBM, XGBoost/LightGBM trainers, bias–variance diagnostics, Optuna objectives, inference benchmarks.Persistence — Postgres (async SQLAlchemy + Alembic) for product metadata; dedicated SQLite file for Optuna RDB; Docker volume for joblib models.
Day 113’s scratch booster lives in the learning route. Day 114’s library comparison powers /learn/day114. Days 115–116 inform diagnostics and search configuration inside optuna_tuning.py. Days 117–126 drive the product flow: baseline run → async tune job → artifact write → study reference row.



