🚧 This site is a work in progress β€” some sections are still being polished.
Ethan Shapiro
← All projects

League of Legends Post-Draft Win Predictor

A credible win-probability signal, scoped to where it's real.

PyTorchTransformersRiot APIFeature Engineering

SITUATION

Champion select is widely believed to shape who wins a League of Legends match, but most public β€œdraft predictor” tools claim to forecast the winner before the draft even happens β€” a much harder, noisier problem than the accuracy numbers they report can actually support.

TASK

Build a model that predicts the match winner immediately after champion select locks in β€” not before β€” using real ranked-match data, and be explicit about that framing so the accuracy number means what it claims to mean.

THE DATA

Champion-selection data from the Riot API captures rank, player, and pick information, but the signal that actually differentiates outcomes isn't the picks themselves β€” it's what differentiates two players on the same champion across rank tiers, which has to be engineered as a feature rather than read off the raw data.

ACTION

Used the Riot API to collect match data, engineered features from rank, player, and champion-selection differences, and trained a transformer-based model to predict the winner immediately after champion select, reaching 57.34% accuracy.

TRADE-OFFS

Scoped the prediction strictly to post-draft: 57.34% accuracy is a strong, credible result for a prediction made after champion select locks in, but the same number framed as a pre-draft claim would be much weaker and less credible. Keeping the framing honest mattered more than a punchier-sounding but overstated headline.

DESIGN DECISIONS

Post-draft, not pre-draft

The model always predicts after champion select locks in. Framing the same 57.34% accuracy as a pre-draft prediction would overstate what the underlying signal can actually support β€” the honest framing is a deliberate choice, not a limitation to hide.

One model output, two uses

The same win-probability output doubles as a matchmaking-quality signal β€” how balanced a given lobby is right after lock-in β€” rather than only being read as a pure win/loss prediction.

DEPLOYMENT

A data and modeling pipeline (Riot API β†’ feature engineering β†’ transformer training) rather than a hosted service β€” built to validate the modeling approach and framing, not as a deployed product.

RESULT

A post-draft win-probability signal accurate enough (57.34%) to be credible on its own terms, and honest about the boundary of what it can claim β€” a smaller, truer result instead of a bigger, unsupported one.