Add your description here
Project description
:chess_pawn: EloGrad
Extended Elo model implementation.
EloGrad leverages the framing of the
Elo rating system
as logistic regression with stochastic gradient descent
(see this blog for a nice walkthrough)
to offer a collection of extensions to the rating system.
All models are scikit-learn
compatible.
:book: Installation
You can install elo-grad
with:
pip install elo-grad
:stopwatch: Quick Start
Detailed example notebooks are provided in the examples/
directory.
To install any extra dependencies required to run the notebooks install with:
pip install elo-grad[examples]
:clipboard: Minimal Example
from elo_grad import EloEstimator
# Input DataFrame with sorted index of Unix timestamps
# and columns entity_1 | entity_2 | score
# where score = 1 if player_1 won and score = 0 if
# player_2 won.
df = ...
estimator = EloEstimator(
k_factor=20,
default_init_rating=1200,
entity_cols=("player_1", "player_2"),
score_col="result",
)
# Get expected scores
expected_scores = estimator.predict_proba(df)
# Get final ratings (of form (Unix timestamp, rating))
ratings = estimator.model.ratings
:compass: Roadmap
In rough order, things we want to add are:
- Proper documentation
- Support for additional features, e.g. home advantage
- Regularization (L1 & L2)
- Support for Polars
- Head-to-head ratings
- Other optimizers, e.g. momentum
- Poisson model support
- Support for draws
- Extend plotting support, e.g. plotly
:blue_book: References
- Elo rating system: https://en.wikipedia.org/wiki/Elo_rating_system
- Elo rating system as logistic regression with stochastic gradient descent: https://stmorse.github.io/journal/Elo.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
elo_grad-0.2.4.tar.gz
(200.4 kB
view details)
Built Distribution
elo_grad-0.2.4-py3-none-any.whl
(10.3 kB
view details)
File details
Details for the file elo_grad-0.2.4.tar.gz
.
File metadata
- Download URL: elo_grad-0.2.4.tar.gz
- Upload date:
- Size: 200.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.4.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f729a86d0aab41509c8565f53eb0465fee87793d01649ef7dbf8e82721124fd0 |
|
MD5 | 0976b9f22ada375710ba57ae1aa4bf33 |
|
BLAKE2b-256 | 3cdb808e689f29e607e4cda4ba980e39c6596cc5fdd503e660ad4f23ec8162a5 |
File details
Details for the file elo_grad-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: elo_grad-0.2.4-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.4.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80545351b2e4e9621b37484048f27ed07293f12f15a501b77e9bf5ff91d05228 |
|
MD5 | d534c1b52261b529469fa42d4099985b |
|
BLAKE2b-256 | cddd01b9172ab9a4283f43bd51345c756aaabd7d24b9aed8d889174dd4237e7d |