Resources Hub

All tools, videos, and learning materials from every session — deduplicated and organized.

Hands-On

Session 1 Notebook — Your First Predictive Model (Telco Churn)

The notebook we build in class: load the Telco data, explore churn rates by contract, split, fit a logistic regression, and read the confusion matrix. Runs free in your browser — no installation.

Open in Colab
Play

The Overfitting Explorer — Bias, Variance, and Noise

Drag the model-complexity slider and watch training error fall while test error turns back up. Add noise, resample the data, and see why a model that fits everything predicts nothing.

Open the explorer
Slides

Session 1 Slides — From Data to Decisions

The deck from class: the analytics map, the prediction lifecycle, the Telco data, the twelve-line model, and why accuracy lies. Arrow keys to navigate, F for fullscreen.

Open slides
Data

Telco Customer Churn — the dataset

IBM's sample telecom dataset: 7,043 customers, 20 features, 26.5% churn. Hosted in the course repository so every notebook can load it from a URL with no login.

View the data
Interactive

MLU-Explain — The Bias–Variance Tradeoff

Amazon Machine Learning University's interactive essay: drag the model complexity and watch bias and variance trade places. The companion to our Overfitting Explorer, with the math when you want it.

Open the explainer
Interactive

MLU-Explain — Train, Test, and Validation Sets

Why we hold data out, what the three splits are for, and the mistake of tuning on the test set — as a scrollable visual story.

Open the explainer
Reading

ISLP, Chapter 2 — Statistical Learning

The free textbook chapter that defines the whole field in 40 pages: what we mean by 'learning', prediction versus inference, the bias–variance trade-off, and why a test set is not optional.

Read Chapter 2 (free PDF)
Reading

Géron, Hands-On ML (3rd ed.), Chapter 1 — The Machine Learning Landscape

The best-selling practitioner's book, chapter 1: types of learning, the main challenges (bad data, overfitting, underfitting), and testing and validating. All notebooks are free on GitHub.

Open the notebooks
Story

Story: How Netflix Turned Prediction Into $1B a Year

Netflix estimates its recommendation system saves over $1 billion a year in reduced churn. The whole business case for predictive analytics in one sentence — and the churn problem you just modeled, at scale.

Read the research page
Video

StatQuest — Machine Learning Fundamentals: Bias and Variance

Seven minutes, one picture you will never forget. Watch before Session 2 if the overfitting explorer felt like magic.

Watch on YouTube
Refresher

Refresher: Introducing scikit-learn (ISOM 730 notebook)

Prof. Arslan's earlier notebook on the scikit-learn estimator API — choose a model, set hyperparameters, arrange X and y, fit, predict. If tonight's twelve lines went fast, this is the slow version. Hosted in the course repo — opens in Colab with one click.

Open in Colab
Refresher

Refresher: Müller & Guido, Ch. 2 — Supervised Learning (official notebook)

The gentlest complete tour of the classifiers you will meet all semester, each with its decision boundary drawn. Older scikit-learn, timeless ideas; the header explains what has changed.

Open in Colab
Review

Python foundations — the two decks from class (variables & expressions, conditionals)

What we covered from Python for Everybody chapters 2 and 3, what you should now be able to do, each idea on the churn problem, and the slides embedded. Lab 0 (the self-checking Python Foundations Check) opens in Session 2.

Explore now
Hands-On

Session 2 Notebook — Data Wrangling & EDA (Olist + Telco)

The notebook we build in class: load Olist via kagglehub (or the no-login Telco fallback), validate every merge, aggregate items to the order grain, pull datetime features, interrogate missingness, and reproduce the call-duration leak on Bank Marketing.

Open in Colab
In Class

Session 2 Class Notebook — What We Typed Together

The live notebook from our meeting, cell for cell: comparisons and if/elif, try/except on a bad int(), a first function, while and for loops, the largest-so-far pattern, then pandas on the Titanic passenger list — head, dtypes, shape, column selection, means, isnull().sum(), and filtering rows. Outputs cleared so you get them by running. Four questions at the end.

Open in Colab
Explorer

The Leakage Time Machine — when did you know that?

Drag the moment a prediction is made and watch which columns exist yet, how good a real model looks, and whether there is still a decision left to make — on a bank's phone campaign (AUC 0.73 → 0.93 once the call length leaks in) and on the hotel bookings from the competition. Tonight's one question, made draggable.

Explore now
Lab 0

Lab 0 — Python Foundations Check (Colab)

Thirteen short exercises on the four Python chapters from Sessions 1–2, each with a check cell that prints ✓ or tells you what is off. Due Mon Oct 5, 11:59 PM; completion credit under Participation & in-class labs.

Explore now
Hands-On

The Churn Detective — a self-checking case file (HW1 companion)

Seven case files on the Telco data, one per part of Homework 1: the tampered TotalCharges column, groupby interrogations, engineered clues, the sign-up-day time machine, a model that beats the baseline, and framing your own prediction problem. Guess before you run, then a check cell prints ✓. 60–90 minutes; ends with a scorecard.

Open in Colab
Data

Olist Brazilian E-Commerce — the dataset

Roughly 100,000 real orders from a Brazilian marketplace, 2016–2018, in eight linked tables with a published schema diagram. Requires a free Kaggle account (two minutes to create with your suffolk.edu email); the notebook has a no-login fallback on Telco if you would rather not.

Open on Kaggle
Reading

pandas User Guide — Merge, Join, Concatenate and Compare

The official reference for merge(), including the validate argument that turns a silent row explosion into a loud error. Read the 'Checking for duplicate keys' section twice.

Read the guide
Reading

Python for Data Analysis, 3rd ed. — Ch. 7 Data Cleaning & Ch. 8 Wrangling

Wes McKinney wrote pandas; this is his free online book. Chapters 7 and 8 are the definitive treatment of missing data, joins, reshaping, and groupby.

Read online (free)
Story

Story: The Pneumonia Model That Learned Asthma Was Safe

Caruana et al. (KDD 2015): a model trained on hospital data concluded asthma patients had a lower risk of dying from pneumonia — because asthma patients were rushed to intensive care. The data was right, the model was right, and deploying it would have killed people. The classic story of a signal that is really a leak.

Read the paper
Reading

scikit-learn — Common Pitfalls: Data Leakage

The library's own page on leakage during preprocessing and how Pipelines prevent it. The bridge from tonight's warning to next week's fix.

Read the page
Go Deeper

Kaggle Learn — Data Leakage (Intermediate ML)

A short, free tutorial with two worked examples of target leakage and train-test contamination. Twenty minutes, and you will never look at a suspiciously high score the same way.

Open the tutorial
Refresher

Refresher: Exploratory Data Analysis with pandas (ISOM 730 notebook)

Prof. Arslan's earlier notebook on matplotlib and seaborn — histograms, pair plots, bar plots. If tonight's charts went fast, this is the slow version. Hosted in the course repo — opens in Colab with one click.

Open in Colab
Hands-On

Session 3 Notebook — Leak-Proof Feature Pipelines

The wrong way and the right way side by side, then the full ColumnTransformer + Pipeline on Bank Marketing, target encoding, and engineered Telco features with before/after AUC.

Open in Colab
In Class

Session 3 Class Notebook — What We Type Together

Tonight's live notebook: pandas continued from where Session 2 stopped — describe, value_counts, sorting, loc/iloc, new columns, missing values, groupby — on Titanic first, then the same moves on Telco through to who to call first.

Open in Colab
Reading

scikit-learn User Guide — Preprocessing Data

The reference for every transformer we use tonight: StandardScaler, OneHotEncoder, OrdinalEncoder, TargetEncoder, and the imputers. Bookmark it.

Open the guide
Reading

Inria scikit-learn MOOC — Handling Categorical Data & Pipelines

The course taught by scikit-learn's own developers. The 'Predictive modeling pipeline' module is the best free walkthrough of ColumnTransformer that exists.

Open the MOOC
Go Deeper

Kaggle Learn — Feature Engineering

Four short lessons: mutual information, creating features, k-means features, and target encoding. Ninety minutes, free, with exercises.

Start the course
Tool

skrub — Machine Learning With Dataframes

TableVectorizer picks an encoder for every column automatically; the Cleaner handles dates and dirty strings. The 2025 answer to 'I have a table, give me features.'

See the docs
Story

Story: Why Call Duration Is the Most Famous Leak in ML

The Bank Marketing dataset's own documentation warns that 'duration' should be discarded for a realistic model — the outcome is known once the call ends. A leak so well known it comes with a label.

Read the dataset notes
Video

StatQuest — One-Hot Encoding & Feature Scaling

Search the StatQuest index for 'one-hot' and 'standardization'. Ten minutes each, and the pictures stick.

Open the index
Hands-On

Session 4 Notebook — Classification on Credit-Card Default

Logistic regression with odds ratios, kNN and Naive Bayes with decision-boundary plots, the confusion matrix by hand, classification_report, ROC and PR curves, and class_weight='balanced'.

Open in Colab
Play

The Threshold & Profit Explorer — Preview

Next week's explorer, available now: drag the threshold across the two score distributions and watch precision, recall, and the confusion matrix move. Ignore the profit panel until Session 5 — or don't.

Open the explorer
Interactive

MLU-Explain — Logistic Regression

The sigmoid, log-odds, and the decision boundary, interactively. Pairs with tonight's odds-ratio reading.

Open the explainer
Interactive

MLU-Explain — ROC & AUC

Slide the threshold and watch the point walk along the ROC curve. The cleanest explanation of what AUC is (and is not) on the web.

Open the explainer
Interactive

MLU-Explain — Precision & Recall

Precision, recall, F1 and the confusion matrix with a live example — the vocabulary of Session 4 in one scroll.

Open the explainer
Reading

scikit-learn User Guide — Classification Metrics

Every metric from tonight with its formula: precision, recall, F1, ROC-AUC, average precision, and the confusion matrix. The section on multiclass averaging will save you later.

Open the guide
Data

Default of Credit Card Clients — the dataset

Yeh & Lien's 2009 dataset from a Taiwanese bank: 30,000 clients, April–September 2005. The documentation explains the payment-status codes (−1 = paid duly, 1 = one month late …) that make the strongest features.

Read the documentation
Story

Story: AI Credit Models — More Approvals at the Same Risk (vendor-reported)

Lenders using ML underwriting report approving materially more applicants at constant default rates — Upstart has claimed ~43% more approvals at the same loss rate. Vendor numbers, so read them as claims; the mechanism (better ranking than a scorecard) is exactly tonight's AUC.

Read the claims
Video

StatQuest — Logistic Regression & ROC/AUC, Clearly Explained

Search the index for 'Logistic Regression' and 'ROC and AUC'. The ROC video in particular is the best 16 minutes you can spend before next week. Also embedded on this page.

Watch on YouTube
Refresher

Refresher: Naive Bayes Classification (ISOM 730 notebook)

Prof. Arslan's earlier notebook on Gaussian and multinomial Naive Bayes, including the text-classification example. Pairs with the SVM refresher if you want a fourth boundary shape. Hosted in the course repo — opens in Colab with one click.

Open in Colab
Refresher

Refresher: Müller & Guido, Ch. 5 — Metrics, Confusion Matrices, ROC (official notebook)

The book chapter on evaluation: precision, recall, F1, ROC and AUC, with the imbalanced-class discussion. A slower second pass over tonight.

Open in Colab
Hands-On

Session 5 Notebook — From Scores to Decisions

The cost matrix, the profit curve, TunedThresholdClassifierCV with a dollar scorer, calibration curves and CalibratedClassifierCV, lift and gain charts, and top-k targeting under a budget — all on Telco.

Open in Colab
Hands-On

Competition Starter Notebook — a leak-free submission in ten minutes

Loads the Kaggle files, builds the Session 3 pipeline, cross-validates (≈ 0.89 AUC), and writes submission.csv. It reproduces the logistic baseline on the leaderboard exactly; everything after that is yours.

Open in Colab
Advanced

Advanced Track — Uplift Modeling: Who Is Worth Persuading?

Optional companion notebook: a simulated randomized pilot, a churn model vs. a T-learner uplift model, the uplift curve, and why targeting the riskiest customers sends offers to lost causes. Pure scikit-learn, with an optional CausalML cell.

Open in Colab
Interactive

Google PAIR — Uncertainty & Calibration

An explorable from Google's People + AI Research team: what it means for a model's 70% to mean 70%, and how calibration is measured and fixed.

Open the explainer
Reading

Google ML Crash Course — Thresholds and the Confusion Matrix

Google's 2024-rebuilt crash course on choosing a classification threshold — short, with an interactive exercise.

Read the lesson
Go Deeper

scikit-learn — Comparison of Calibration of Classifiers

The canonical figure: logistic regression on the diagonal, random forest and naive Bayes bowed off it. Runnable example.

Open the example
Advanced

scikit-uplift & the Criteo Uplift Dataset

If the advanced uplift notebook hooked you: a scikit-learn-style uplift library with tutorials, and the 25-million-row Criteo dataset (ailab.criteo.com) for a real project.

Open the docs
Reading

scikit-learn User Guide — Tuning the Decision Threshold

TunedThresholdClassifierCV and FixedThresholdClassifier, with the cost-sensitive learning example that mirrors tonight's lab.

Open the guide
Reading

scikit-learn User Guide — Probability Calibration

Calibration curves, CalibratedClassifierCV, isotonic vs. sigmoid, and the famous figure showing which model families are naturally calibrated and which are not.

Open the guide
Story

Story: Stripe Radar — Fraud Decisions at 100ms

Stripe reports its Radar models cut fraud by roughly a third for the average business. Every one of those decisions is a threshold on a probability, tuned against the cost of a blocked good customer versus a fraudulent charge — tonight's arithmetic at planetary scale.

Read about Radar
Story

Story: Wayfair's Uplift Models — Targeting the Persuadables

Why a churn score is not a targeting score: Wayfair explains the four customer types (persuadables, sure things, lost causes, sleeping dogs) and why you should only pay to reach the first.

Read the explainer
Competition

Kaggle — The ISOM 835 Midterm Model Competition

The invitation link is posted on Canvas. Join with your suffolk.edu Kaggle account, form a team of 2–3, download train.csv and test.csv from the Data tab, and read the rules — the leak columns are gone, but agent, company, and country deserve thought. Five submissions per day; leaderboard closes Mon Nov 9, 4:30 PM.

Join via Canvas link
Go Deeper

Provost & Fawcett — Data Science for Business, Chapters 7–8

The expected-value framework, profit curves, lift and cumulative response charts — the chapters this session is built on. Not free, but the single best business treatment of tonight's ideas.

See the book
Hands-On

Session 6 Notebook — Regression on Ames Housing

One-feature line, full pipeline with log target, RidgeCV / LassoCV / ElasticNetCV with coefficient paths, residual diagnostics, and every metric on the menu in dollars.

Open in Colab
Interactive

MLU-Explain — Linear Regression

Least squares as a picture: drag points, watch the line and the residuals move, and see what R² actually measures.

Open the explainer
Interactive

Setosa — Ordinary Least Squares, Explained Visually

Drag the data and watch the squared errors — literally drawn as squares — shrink as the line finds its place.

Open the explainer
Go Deeper

Kaggle — House Prices: Advanced Regression Techniques

The Ames data as a permanent Kaggle competition. Submit your HW3 predictions and see where a well-built linear model lands on the leaderboard — a warm-up for the midterm competition.

Open the competition
Reading

scikit-learn User Guide — Linear Models

OLS, Ridge, Lasso, ElasticNet, and their CV variants, with the cost functions written out. The place to check what alpha actually multiplies.

Open the guide
Story

Story: Zillow's $500M Lesson in Prediction Error

In 2021 Zillow shut its home-flipping unit after its pricing models overpaid at scale, writing down more than $500 million. The residual plot nobody looked at — and a reminder that a point prediction without an error bar is a bet.

Read the story
Video

StatQuest — Ridge, Lasso & Elastic Net Regression

Search the index for 'Ridge', 'Lasso', and 'Elastic Net' — three short videos that make the penalty geometry obvious. Also embedded on this page.

Watch on YouTube
Refresher

Refresher: Linear Regression, Basis Functions, Ridge & Lasso (ISOM 730 notebook)

Prof. Arslan's earlier notebook: simple regression, polynomial basis functions, and the ridge/lasso intuition on a small example. The slow version of tonight's middle hour. Hosted in the course repo — opens in Colab with one click.

Open in Colab
Hands-On

Session 7 Notebook — Trees & Random Forests on Hotel Bookings

plot_tree, the depth validation curve, bagging vs. random forest, out-of-bag score, impurity vs. permutation importance (with the ID-column trap), and partial dependence plots.

Open in Colab
Data

Hotel Booking Demand — the dataset

Antonio, de Almeida & Nunes (2019). The course file holds the competition's 83,573 training bookings, 32 columns, 37% canceled — hosted in the repo for no-login loading. The 35,817 hidden test bookings exist only on Kaggle, so anything you learn from the course file is fair game.

View the data
Interactive

MLU-Explain — Decision Trees

Watch a tree grow split by split on a live dataset, with impurity shown at every node.

Open the explainer
Interactive

MLU-Explain — Random Forest

Bootstrap samples, feature subsets, and the vote — animated. Why hundreds of noisy trees beat one careful one.

Open the explainer
Interactive

R2D3 — A Visual Introduction to Machine Learning

The most beautiful explanation of a decision tree ever made: San Francisco vs. New York homes, split by split, as you scroll. Part 2 covers bias and variance. Ten minutes; show it to someone who has never heard of ML.

Scroll the story
Reading

scikit-learn User Guide — Permutation Feature Importance

Why impurity importance misleads and how permutation importance fixes it — with the exact random-column example we reproduce in class.

Open the guide
Story

Story: Booking.com — 150+ Models and the Cancellation Problem

Bernardi, Mavridis & Estevez (KDD 2019): what Booking.com learned deploying 150 production models, including that offline gains often don't translate to business value. Required reading for anyone who thinks the leaderboard is the goal.

Read the paper page
Video

StatQuest — Decision Trees & Random Forests

Search the index for 'Decision and Classification Trees' and 'Random Forests Part 1'. The Gini walk-through is the clearest on the internet. Also embedded on this page.

Watch on YouTube
Refresher

Refresher: Decision Trees & Random Forests (ISOM 730 notebook)

Prof. Arslan's earlier notebook: a tree on synthetic blobs, the overfitting picture, bagging with 100 trees, and random-forest regression. The intuition, at a gentler pace. Hosted in the course repo — opens in Colab with one click.

Open in Colab
Hands-On

Session 8 Notebook — Gradient Boosting & the Tabular Frontier

Residual-fitting animation, HistGradientBoosting vs. LightGBM vs. XGBoost on hotel bookings, early-stopping curves, the four knobs, and an optional TabICL cell for the foundation-model comparison.

Open in Colab
Play

The Gradient Boosting Explorer

Watch residuals shrink tree by tree. Drag the learning rate and tree depth, step through the ensemble, and see validation loss turn back up when you keep going — early stopping as a picture.

Open the explorer
Reading

explained.ai — How to Explain Gradient Boosting (Parr & Howard)

The best long-form explanation of boosting on the web: residual fitting with pictures, then the gradient-descent view, by the authors of the fast.ai ML course.

Read the essay
Interactive

Gradient Boosting Interactive Playground

Change the learning rate, depth, and number of trees on a 2-D classification problem and watch the decision surface sharpen — a second angle on our Boosting Explorer.

Open the explainer
Interactive

MLU-Explain — Double Descent

Why very large models can generalize after they overfit — the phenomenon behind foundation models, explained visually. Frontier reading for the TabPFN discussion.

Open the explainer
Reading

scikit-learn User Guide — Histogram-Based Gradient Boosting

Categorical support, missing values, early stopping, and monotonic constraints — the section that makes HistGradientBoosting the right first boosting model in 2026.

Open the guide
Reading

Grinsztajn, Oyallon & Varoquaux (2022) — Why Do Tree-Based Models Still Outperform Deep Learning on Tabular Data?

The benchmark paper that settled the argument for three years: on 45 tabular datasets, tuned tree ensembles beat neural networks, and the paper explains why (uninformative features, irregular functions, rotation invariance).

Read the abstract
Frontier

TabPFN-2.5 (Nov 2025) — Advancing the State of the Art in Tabular Foundation Models

Up to 50k rows and 2k features; reports a 100% win rate against default XGBoost on classification datasets up to 10k rows and parity with AutoGluon's four-hour ensembles. The paper that made 'zero-shot tabular' a serious option.

Read the paper
Tool

TabICL (Inria) — Open-Source Tabular Foundation Model

pip install tabicl. scikit-learn-compatible, scales to ~500k rows, fully open source, and competitive with tuned gradient boosting on most of TabArena. The one we run in class.

Open the repo
Reference

TabArena — the Living Tabular Benchmark

A continuously updated leaderboard of GBDTs, neural nets, foundation models, and AutoML on curated tabular datasets. Check it before choosing a model — and read the licensing column.

Open the leaderboard
Go Deeper

XGBoost Documentation — Introduction to Boosted Trees

The clearest short derivation of gradient boosting with trees, from the library's own docs. Read it once and the objective function stops being scary.

Read the tutorial
Video

StatQuest — Gradient Boost Parts 1–4 & XGBoost

Search the index for 'Gradient Boost'. Part 1 (regression main ideas) and Part 3 (classification) are the ones to watch before Milestone 3 of your project. Also embedded on this page.

Watch on YouTube
Hands-On

Session 9 Notebook — Tuning, Explaining & Uncertainty

GroupKFold and TimeSeriesSplit demos, an Optuna study on the hotel GBM, SHAP waterfall and beeswarm, partial dependence with ICE, MAPIE conformal intervals and prediction sets, fairness slices, and a model-card template.

Open in Colab
Play

The Conformal Explorer

Set a coverage target, watch the calibration residuals size the band, then draw new cases a hundred times and check the promise. Underfit the model, shrink the calibration set, or shift the data to see what breaks it.

Open the explorer
Interactive

MLU-Explain — Cross-Validation

K-fold, animated: watch the folds rotate and the estimate stabilize.

Open the explainer
Reading

Angelopoulos & Bates — A Gentle Introduction to Conformal Prediction

The self-contained tutorial that made conformal prediction mainstream: the split-conformal recipe, coverage guarantees, and extensions to classification, time series, and distribution shift.

Read the paper
Interactive

Google PAIR — Measuring Fairness

An explorable on why equal accuracy can hide unequal error rates, and the trade-offs between fairness definitions. Do this before the fairness-slicing lab.

Open the explainer
Interactive

MLU-Explain — Equality of Odds

A fairness criterion you can drag: equalize true- and false-positive rates across groups and see what it costs.

Open the explainer
Go Deeper

Molnar — Interpretable Machine Learning (free book)

The reference for SHAP, partial dependence, ICE, permutation importance, and counterfactuals — with the honest caveats for each.

Read online
Tool

Fairlearn

Microsoft's open-source toolkit for assessing and mitigating fairness issues: MetricFrame for sliced metrics is the one-liner behind tonight's fairness section.

Open the docs
Reading

scikit-learn User Guide — Cross-Validation: Evaluating Estimator Performance

Every splitter with a picture: KFold, StratifiedKFold, GroupKFold, StratifiedGroupKFold, TimeSeriesSplit. The visualization section alone is worth the visit.

Open the guide
Reading

SHAP Documentation — An Introduction to Explainable AI With Shapley Values

The canonical walkthrough from the library's authors: what Shapley values are, why they are the fair attribution, and how to read every plot type we use tonight.

Read the introduction
Tool

MAPIE — Model-Agnostic Prediction Interval Estimator

scikit-learn-contrib's conformal prediction library. The 1.x API (SplitConformalRegressor, CrossConformalRegressor, SplitConformalClassifier) is what we use; the theory pages are short and readable.

Open the docs
Tool

Optuna — Hyperparameter Optimization Framework

Define an objective, call study.optimize, read study.best_params. The tutorial's first example is the ten lines we write in class.

Open the site
Go Deeper

Kaggle Learn — Machine Learning Explainability

Permutation importance, partial dependence, and SHAP values in four short lessons with exercises. The fastest path to fluency before Milestone 3.

Start the course
Story

Story: A Readmission Model Rebuilt for Equity at ZSFG

Zuckerberg San Francisco General replaced a vendor readmission model with an in-house gradient-boosted tree that includes social-determinants data — and reports lower readmissions and narrower equity gaps. Explanation, slicing, and monitoring in a real hospital.

Read the story
Reading

Mitchell et al. (2019) — Model Cards for Model Reporting

The paper that defined the one-page model card: intended use, factors, metrics, evaluation data, ethical considerations, caveats. Your final project includes one.

Read the paper
Hands-On

Session 10 Notebook — Segments, Structure & Anomalies

RFM from Online Retail II, k-means with elbow and silhouette, cluster profiles and names, agglomerative and DBSCAN, PCA loadings and UMAP, and Isolation Forest on a synthetic fraud stream.

Open in Colab
Play

The k-Means Explorer

Customers on a recency × frequency plane. Step the algorithm one assignment at a time, re-initialize, change k, and watch the elbow chart and the segment table update — including the case where k-means confidently finds clusters that aren't there.

Open the explorer
Data

Online Retail II — the dataset (UCI)

1,067,371 transactions from a UK-based online gift retailer, Dec 2009 – Dec 2011, with customer IDs, quantities, prices, and countries. Cancellations are the invoices starting with 'C'.

Open the dataset page
Interactive

Naftali Harris — Visualizing K-Means Clustering

Place centroids by hand and step the algorithm on several datasets, including the ones where k-means fails. The original explorer our K-Means Explorer is modeled on.

Open the explainer
Interactive

Naftali Harris — Visualizing DBSCAN Clustering

Density-based clustering step by step: watch core points, border points, and noise get labeled on smiley faces and moons.

Open the explainer
Interactive

Setosa — Principal Component Analysis, Explained Visually

Rotate a 2-D and a 3-D cloud and watch the principal components find the directions of greatest variance.

Open the explainer
Reading

scikit-learn User Guide — Clustering

The comparison table at the top — which algorithm for which shape, scale, and use case — is the single most useful page in the clustering literature.

Open the guide
Go Deeper

scikit-learn User Guide — Novelty and Outlier Detection

Isolation Forest, Local Outlier Factor, One-Class SVM, and the elliptic envelope compared on the same toy data. Read it before you pick a method for a real fraud problem.

Open the guide
Story

Story: Mastercard Decision Intelligence — Scoring 150 Billion Transactions

Industry reporting on Mastercard's real-time fraud scoring: higher detection and materially fewer false declines, each decision in under 50 milliseconds. Anomaly scores plus supervised models plus a threshold the business chose — tonight and Session 6 combined.

Read the report
Video

StatQuest — K-means Clustering & PCA Main Ideas

Search the index for 'K-means' and 'PCA main ideas'. Eight and five minutes respectively. Also embedded on this page.

Watch on YouTube
Refresher

Refresher: Principal Component Analysis (ISOM 730 notebook)

Prof. Arslan's earlier notebook: PCA on digits and faces, choosing the number of components, and PCA as noise filtering. The picture-heavy version of tonight's PCA segment. Hosted in the course repo — opens in Colab with one click.

Open in Colab
Hands-On

Session 11 Notebook — Forecasting Bike Demand

Random vs. time-ordered splits, seasonal-naive and StatsForecast baselines, lag/rolling/calendar features with HistGradientBoostingRegressor and TimeSeriesSplit, MAE by hour of day, and an optional Chronos-2 zero-shot cell.

Open in Colab
Data

Bike Sharing Dataset — UCI

Fanaee-T & Gama (2013): hourly and daily rental counts from Capital Bikeshare, 2011–2012, with weather and calendar variables. hour.csv is the file we use.

Open the dataset page
Go Deeper

Kaggle Learn — Time Series

Six lessons: trend, seasonality, lags, hybrid models, and forecasting with ML — with exercises on a store-sales dataset. The best free companion to tonight.

Start the course
Reading

Hyndman & Athanasopoulos — Forecasting: Principles and Practice (3rd ed.)

The free, definitive forecasting textbook. Chapters 5 (toolbox: benchmarks, residuals, evaluation) and 13.6 (forecasting with ML) are tonight; it uses R, but the ideas are language-free.

Read online (free)
Tool

Nixtla — StatsForecast & mlforecast

StatsForecast for AutoARIMA/ETS/Theta at scale, mlforecast for lag features and gradient boosting across many series with recursive forecasting built in. The free industrial stack.

Open the repo
Frontier

Chronos-2 — From Univariate to Universal Forecasting (Amazon, Oct 2025)

The foundation model that forecasts zero-shot with covariates and multivariate inputs, leading the GIFT-Eval and fev-bench leaderboards at release. Apache-2.0 weights on Hugging Face.

Read the paper
Tool

Chronos on GitHub — Pretrained Models for Time Series

pip install chronos-forecasting; three lines to a zero-shot forecast. The README's quick-start is the optional cell in tonight's notebook.

Open the repo
Story

Story: How DoorDash Forecasts Holiday Demand With a Cascade of GBMs

A 2025 engineering post on predicting the hardest days of the year: gradient-boosted models with holiday multipliers layered on top. Lag features, calendar effects, and business overrides in production.

Read the post
Go Deeper

Kaggle — Store Sales: Time Series Forecasting (Favorita)

A permanent competition on Ecuadorian grocery sales with promotions, oil prices, and holidays — the natural next dataset after bikes, and a strong final-project candidate.

Open the competition
Hands-On

Session 12 Notebook — Neural Nets, Embeddings & LLMs as Features

MLPClassifier vs. boosting on Telco, TF-IDF vs. sentence embeddings on Amazon reviews, an optional zero-shot Claude cell, embeddings appended to a tabular model, and a checklist for verifying AI-generated notebooks.

Open in Colab
Video

3Blue1Brown — Neural Networks (video series)

The best visual explanation of what a neural network computes and how gradient descent trains it. Watch the first two before class; the transformer episodes explain what powers the embedding models.

Open the playlist
Tool

Sentence-Transformers Documentation

SentenceTransformer('all-MiniLM-L6-v2').encode(texts) — one line from text to a 384-dimensional meaning vector. The pretrained models page lists the speed/quality trade-offs.

Open the docs
Data

Amazon Polarity — the dataset (Hugging Face)

3.6 million Amazon reviews labeled positive/negative. We use a 5,000-review slice; the datasets library streams it with no login.

Open the dataset card
Interactive

TensorFlow Playground

Train a small neural network in your browser: add layers and neurons, change the activation, and watch the decision boundary bend. Ten minutes here and "hidden layer" stops being abstract.

Open the explainer
Interactive

MLU-Explain — Neural Networks

Forward pass, loss, backpropagation — as an interactive essay you can scroll through before class.

Open the explainer
Video

Kozyrkov — Making Friends with Machine Learning (full course)

Google's former Chief Decision Scientist's beloved conceptual course, free on YouTube: what ML is for, how projects fail, and how to think like a decision-maker. Six hours; watch the first hour before the project.

Watch on YouTube
Reading

Grinsztajn et al. (2022) & LLMTabBench (2026) — When Not to Use Deep Learning

LLMTabBench: LLMs are competitive zero-shot on low-data binary tasks but degrade past a complexity threshold, and few-shot examples can hurt. Pair with the 2022 tree-vs-NN benchmark for the full picture.

Read the abstract
Reading

LLM Embeddings as Features for Tabular Models (2024–25 evidence)

Embedding text fields and feeding them to XGBoost/CatBoost helps most on small, imbalanced, or text-rich datasets, and embedding-derived features often rank high in importance. The pattern we implement in class.

Read the paper
Tool

Google Colab — Data Science Agent

Upload a CSV, describe the goal, get a full notebook. Free in Colab. We use it live and then audit what it produced — the exercise that defines the AI-assisted analyst.

Read the announcement
Go Deeper

Claude Code for Data Scientists — Getting Started

A practical walkthrough of using an agentic coding assistant on notebooks and data pipelines, including the verification habits that keep it honest.

Read the guide
Go Deeper

Géron — Hands-On ML With Scikit-Learn & PyTorch (notebooks)

The PyTorch edition of the practitioner's classic. Chapters 10–11 (introduction to neural networks, training deep nets) are the natural continuation if you want to go deeper than MLPClassifier.

Open the notebooks
Hands-On

Session 13 Notebook — Ship It

joblib persistence and reload, a ten-line MLflow run, a Gradio demo of the churn pipeline, an Evidently drift report on a shifted sample, and the launch checklist.

Open in Colab
Project

Final Project Brief — Your Prediction Story

The five beats, the deliverables, the memo structure, the rubric, and the FAQ. Re-read the rubric before you finalize your slides.

Open the brief
Reading

Google — Rules of Machine Learning

Forty-three rules from Google engineers on shipping ML. Rule #1: don't be afraid to launch a product without machine learning. Read before you present.

Read the rules
Go Deeper

Stanford CS 329S — Machine Learning Systems Design (Chip Huyen)

The course notes on data pipelines, deployment, monitoring, and drift that Session 13 compresses into forty-five minutes — free, for when you ship for real.

Open the course
Reading

scikit-learn User Guide — Model Persistence

joblib vs. pickle vs. skops vs. ONNX, the security caveats, and why you record the scikit-learn version alongside the file.

Open the guide
Tool

MLflow — Tracking Quickstart

Log parameters, metrics, and a model in one run; compare runs in the UI. The experiment log that replaces file names ending in _final_v3.

Open the quickstart
Tool

Gradio — Quickstart

gr.Interface(fn, inputs, outputs).launch(share=True) — a shareable web demo of any Python function, from Colab, in a minute.

Open the quickstart
Tool

Evidently — Data Drift Reports

Open-source monitoring: compare a reference dataset to current data, get per-column drift tests and a shareable HTML report. The first thing to schedule after launch.

Open the docs
Reading

EU AI Act — Omnibus Changes and Deferred High-Risk Deadlines (2026)

A law-firm summary of where the AI Act stands after the 2026 Digital Omnibus: the AI-literacy duty already in force, transparency duties from Aug 2026, and Annex III high-risk obligations (credit scoring, hiring, insurance) deferred to Dec 2, 2027.

Read the summary
Reading

Colorado SB 26-189 — Automated Decisions in Consequential Settings

Signed May 2026, effective Jan 1, 2027: disclosure, adverse-outcome explanation within 30 days, and human-review rights for automated decisions in employment and similar contexts. The shape of US regulation to come.

Read the bill page