A python implementation of the whole-history-rating algorythm by Rémi Coulom
Project description
# whole_history_rating
a python convertion from the ruby implementation of Rémi Coulom's Whole-History Rating (WHR) algorithm.
the original code can be found [here](https://github.com/goshrine/whole_history_rating)
Installation
------------
pip install whole_history_rating
Usage
-----
from whr import whole_history_rating
whr = whole_history_rating.Base()
# Base.create_game() arguments: black player name, white player name, winner, day number, handicap
# Handicap should generally be less than 500 elo
whr.create_game("shusaku", "shusai", "B", 1, 0)
whr.create_game("shusaku", "shusai", "W", 2, 0)
whr.create_game("shusaku", "shusai", "W", 3, 0)
# Iterate the WHR algorithm towards convergence with more players/games, more iterations are needed.
whr.iterate(50)
# Or let the module iterate until the elo is stable (precision by default 10E-3) with a time limit of 10 seconds by default
whr.auto_iterate(time_limit = 10, precision = 10E-3)
# Results are stored in one triplet for each day: [day_number, elo_rating, uncertainty]
whr.ratings_for_player("shusaku") =>
[[1, -43, 84],
[2, -45, 84],
[3, -45, 84]]
whr.ratings_for_player("shusai") =>
[[1, 43, 84],
[2, 45, 84],
[3, 45, 84]]
# You can print or get all ratings ordered
whr.print_ordered_ratings()
whr.get_ordered_ratings()
# You can get a prediction for a future game between two players (even non existing players)
# Base.probability_future_match() arguments: black player name, white player name, handicap
whr.probability_future_match("shusaku", "shusai",0) =>
win probability: shusaku:37.24%; shusai:62.76%
# You can load several games all together using a file or a list of string representing the game
# all elements in list must be like: "black_name white_name winner time_step handicap extras"
# you can exclude handicap (default=0) and extras (default={})
whr.load_games(["shusaku shusai B 1 0", "shusaku shusai W 2", "shusaku shusai W 3 0"])
whr.load_games(["firstname1 name1, firstname2 name2, W, 1"], separator=",")
# You can save and load a base (you don't have to redo all iterations)
whr.save_base(path)
whr2 = whole_history_rating.Base.load_base(path)
a python convertion from the ruby implementation of Rémi Coulom's Whole-History Rating (WHR) algorithm.
the original code can be found [here](https://github.com/goshrine/whole_history_rating)
Installation
------------
pip install whole_history_rating
Usage
-----
from whr import whole_history_rating
whr = whole_history_rating.Base()
# Base.create_game() arguments: black player name, white player name, winner, day number, handicap
# Handicap should generally be less than 500 elo
whr.create_game("shusaku", "shusai", "B", 1, 0)
whr.create_game("shusaku", "shusai", "W", 2, 0)
whr.create_game("shusaku", "shusai", "W", 3, 0)
# Iterate the WHR algorithm towards convergence with more players/games, more iterations are needed.
whr.iterate(50)
# Or let the module iterate until the elo is stable (precision by default 10E-3) with a time limit of 10 seconds by default
whr.auto_iterate(time_limit = 10, precision = 10E-3)
# Results are stored in one triplet for each day: [day_number, elo_rating, uncertainty]
whr.ratings_for_player("shusaku") =>
[[1, -43, 84],
[2, -45, 84],
[3, -45, 84]]
whr.ratings_for_player("shusai") =>
[[1, 43, 84],
[2, 45, 84],
[3, 45, 84]]
# You can print or get all ratings ordered
whr.print_ordered_ratings()
whr.get_ordered_ratings()
# You can get a prediction for a future game between two players (even non existing players)
# Base.probability_future_match() arguments: black player name, white player name, handicap
whr.probability_future_match("shusaku", "shusai",0) =>
win probability: shusaku:37.24%; shusai:62.76%
# You can load several games all together using a file or a list of string representing the game
# all elements in list must be like: "black_name white_name winner time_step handicap extras"
# you can exclude handicap (default=0) and extras (default={})
whr.load_games(["shusaku shusai B 1 0", "shusaku shusai W 2", "shusaku shusai W 3 0"])
whr.load_games(["firstname1 name1, firstname2 name2, W, 1"], separator=",")
# You can save and load a base (you don't have to redo all iterations)
whr.save_base(path)
whr2 = whole_history_rating.Base.load_base(path)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whole_history_rating-1.3.3.tar.gz.
File metadata
- Download URL: whole_history_rating-1.3.3.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee564053abfc8cd680f2d95ded0567b96467723419353dff99b4dffb14e40657
|
|
| MD5 |
556ee0da9e0a3ef956d32c3c4b0531ae
|
|
| BLAKE2b-256 |
617a8aee2daaff740bd477f30eb1c2544d9e58d39dd6904540c5646cb721a9ba
|
File details
Details for the file whole_history_rating-1.3.3-py3-none-any.whl.
File metadata
- Download URL: whole_history_rating-1.3.3-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df05a13ea65dbb0a72af930462c084c705c06612fc24e82bcf146d454948aa90
|
|
| MD5 |
b067496bfd9edfc9ba9aece6c3c063f0
|
|
| BLAKE2b-256 |
9a3ddba50341da4fe058aa4411c7a2209e3920a019fe1a70d3d103ce5451fff3
|