Beginner
From “what is a model?” to your first trained classifier.
What is machine learning?
Programs whose rules are fitted to data rather than written by hand, the train and predict loop, the vocabulary you will use for the rest of the track, and when machine learning is the wrong tool
Data is the model: datasets, splits and leakage
Build a small synthetic dataset with pandas, split it into train, validation and test sets, then plant a leaky feature and watch the validation score lie
Linear and logistic regression from scratch
Least squares solved in closed form with numpy, then logistic regression fitted by gradient descent with the sigmoid and log loss, both checked against scikit-learn
The training loop: loss, gradients, learning rate
The four-step loop that trains almost every model, the gradient checked by hand and by finite differences, and a learning-rate sweep that shows slow, right and divergent on one chart
Decision trees and gradient boosting
How a decision tree chooses its splits, what depth does to training and held-out accuracy, how gradient boosting stacks small trees into a strong model, and why feature importance needs care
Evaluation that does not lie
Why accuracy misleads on imbalanced data, what precision, recall, F1 and ROC-AUC measure, how stratified cross-validation and a dummy baseline keep you honest, and how a bootstrap puts an interval on a score
Your first neural network in PyTorch
Tensors, autograd, nn.Module and the training loop, applied to a small multilayer perceptron that reads 8x8 digit images on a laptop CPU in a few seconds
Embeddings and similarity search
What an embedding vector is, cosine similarity worked by hand, a 22 M parameter sentence encoder run locally on twenty sentences, nearest-neighbour search with numpy, and why it beats a keyword index on meaning
Using an LLM well: prompts, structure and limits
What tokens and a context window are, how system and user messages differ, how to ask for JSON and validate it, few-shot examples, and the limits every model shares, with code for a local model and a hosted API
From notebook to service: packaging, a FastAPI endpoint, a smoke test
Train a small scikit-learn pipeline, save it with joblib, wrap it in a FastAPI endpoint with validated inputs, test the endpoint in-process without a server, and lay the project out so someone else can run it