Learn with Phoebe ยท Data Science

Learn ML Epistemology with Phoebe

Thornbury's triage model scores 0.949 on patients it never trained on. A year later the hospital group reorganises its wards and the same model, unchanged and never retrained, scores 0.765. Nothing in the pipeline was wrong: the split was honest, the metric was sensible, the number reproduced. What failed was an assumption nobody had written down. This is a course about the question underneath every accuracy figure, which is what licenses the belief that a model will work on data it has not seen. Six leader sessions on reading a claim, ten practitioner sessions on testing one, and two benches that train real networks in your browser so the arguments can be checked rather than repeated.

16sessions, two tracks
20models differing only by a seed
294papers found with leakage
2benches that train in the page
45min per session

Leader track ๐Ÿงพ ยท six sessions, no code

For whoever approves the deployment. What a score claims, why two equally good models are not the same model, what a benchmark licenses, how to treat evidence you did not produce, and the question to ask before your name goes on it.

Practitioner track โš–๏ธ ยท ten sessions, hands on

For the people who produce the evidence. The split, the shortcut, the seed sweep, stress tests, selection, test-set size, benchmarks, leakage at field scale, a finding that died on its second data draw, and a capstone bench.

โœ‚๏ธ Practitioner session 1 ยท start here

The assumption under the split

What a random split buys, and the three deployments where it is a lie about the world.

โ–ถ Start here
๐Ÿ”€ Practitioner session 2

The shortcut

A feature that predicts without causing. Flip it on every patient and count how many predictions move.

๐ŸŒฑ Practitioner session 3

Twenty seeds, one pipeline

Change nothing but the seed. Held-out spread 0.003 to 0.019; shifted spread 0.034 to 0.051.

๐Ÿงช Practitioner session 4

Stress tests

Designing the shifted set, and what a stress test can and cannot establish.

๐Ÿ”Ž Practitioner session 5

Selecting on a set

The reported number climbs to 0.9569 while the honest number sits at 0.9497. The gap is the optimism.

๐Ÿ“ Practitioner session 6

How big does a test set need to be

Selection optimism 0.0091 at n=200 and 0.0030 at n=2000. At n=100 the estimate is too noisy to rank itself.

๐Ÿ“– Practitioner session 7

Reading a benchmark

What transfers from a published ranking to your problem, which is less than it appears.

๐Ÿ•ณ๏ธ Practitioner session 8

Leakage at the scale of a field

Eight types, 17 disciplines, 294 papers. A structural failure, not a careless one.

๐Ÿ’ฅ Practitioner session 9

The finding that did not survive

A correlation of -0.89 that looked like the headline, until the fourth data draw returned +0.09.

โš–๏ธ Practitioner session 10

The credibility bench

Both benches live. Train them yourself, then write the falsifier before you look.

Foundations Working depth Advanced Hardest

The whole thing on one page

Every idea in the course and the session that owns it. Click any node to jump there.

Three ways through

Everyone starts at session 1 of their track. These are the shortest useful routes if you cannot take all sixteen.

I approve the deployments What a score claimsโ†’ Which model shippedโ†’ The falsifier
I produce the evidence The shortcutโ†’ Twenty seedsโ†’ Selectionโ†’ The bench
I read other people's results Benchmarksโ†’ A literatureโ†’ What transfersโ†’ Leakage

What is real here

Both benches train networks when you click. Nothing is a stored result.

The patientsGenerated from relationships written out in assets/ep-live.js: two signals cause deterioration, one ward does not
Every modelThree inputs, twelve tanh hidden units, trained by stochastic gradient descent in the page
Every accuracyCounted on data the model did not train on. Nothing is hard-coded
The finding that diedA correlation of -0.89 looked like the headline until the fourth draw returned +0.09. Session 9 keeps the record