# Applied Machine Learning syllabus

## Who this is for

You can write and test small Python functions, inspect a pandas DataFrame, join data without accidental row multiplication, read a distribution, and explain why a sample estimate is uncertain. You do not need calculus, linear algebra proofs or neural-network experience. Before starting, be able to load CSVs, select columns, handle missing values explicitly, distinguish a rate from a count, and compute a mean absolute error by hand.

If a join changes the intended row unit, revisit the SQL course's grain and join lessons. If pandas indexing or functions are unfamiliar, revisit Python's pandas and testing lessons. If you are tempted to call an association causal or a validation score certain, revisit Statistics with Data Storytelling's sampling, uncertainty, regression and communication lessons. This course applies those ideas rather than reteaching them wholesale.

## What you will be able to do

Define a prediction-time contract; separate future labels from available inputs; select an honest holdout strategy; fit preprocessing inside training folds; compare a baseline with linear and tree models; calculate and interpret regression/classification metrics; tune on development data; calibrate and choose a threshold with distinct data roles; investigate errors without claiming causation; and write a reproducible evaluation/handoff with a defensible go/no-go decision.

## Ordered route

| Lesson | Focus | Runnable companion | Evidence you produce |
|---|---|---|---|
| 1 | Problem, prediction time and baseline | 01_contract.py | Prediction contract |
| 2 | Target, provenance and leakage | 02_provenance.py | Feature allowlist and audit |
| 3 | Temporal, group and random splits | 03_splits.py | Availability-aware split diagram |
| 4 | Train-fitted preprocessing | 04_preprocessing.py | Median/category trace |
| 5 | Regression and sensible models | 05_regression.py | Baseline/residual comparison |
| 6 | Classification and imbalance | 06_classification.py | Confusion matrix and metric explanation |
| 7 | Cross-validation and tuning | 07_validation.py | Bounded search record |
| 8 | Calibration and threshold policy | 08_calibration.py | Cost/capacity decision |
| 9 | Errors and interpretation limits | 09_errors.py | Supported investigation |
| 10 | Reproducibility and operations | 10_handoff.py | Handoff and monitoring plan |
| 11 | Integrated worked case | courseml.run_all | Pre-test freeze and evidence trail |
| 12 | Independent capstone | exercises/capstone.py | Model, report and oral defense |

Each lesson contains a worked explanation, independent practice and exit checks. Attempt all 36 exercises and 24 exit checks before consulting the separate solutions. Four code functions and one pipeline/policy starter give you learner-owned implementation work in addition to written reasoning. See `ASSESSMENT.md` for the staged capstone and 100-point rubric.

## Suggested pace and completion

Plan roughly 30–42 hours: 14–18 hours for concepts and traces, 8–12 for code and practice, and 8–12 for the capstone. These are editorial estimates, not measured beginner-pilot results. A slower pace is reasonable if Python or statistics prerequisites need refreshing. A suggested six-week route is two lessons per week with an additional capstone block. Do not skip the split or leakage lessons to reach a model earlier.

A proposed completion standard is at least 80/100 on the capstone, correct exit-check explanations, and no unresolved critical leakage or test-use violation. This is a course-design rule, not a validated pass mark or certificate. Technical tests support review; they cannot establish that your framing is appropriate or your system is ready to use.

## Scope and next course

Core models are constant baselines, regularized linear/logistic models and small random forests. Other families are compared conceptually where useful. Clustering is intentionally outside this supervised-prediction scope. The course does not cover deep neural networks, distributed training, causal identification, high-stakes personal scoring or production deployment.

Before Deep Learning Foundations, carry forward these habits: split before fitting; learn preprocessing only from training; state a baseline and primary metric; select on validation; keep test data for the final reveal; interpret errors and uncertainty; and record seeds, versions and limitations. The next course changes the model machinery, not the need for these safeguards.
