- Jupyter Notebook 73.2%
- Python 22.9%
- HTML 1.5%
- CSS 1.3%
- JavaScript 1.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| hugo_output | ||
| counter.py | ||
| naive_trueskill.py | ||
| naive_trueskill.yaml | ||
| rating_downloader.ipynb | ||
| README.md | ||
| releases_downloader_for_true_dl.ipynb | ||
| requirements.txt | ||
| test_stand.py | ||
Основной репозиторий этого проекта — https://code.pecheny.me/pecheny/rating_test_stand, пожалуйста, создавайте issues там.
Тестовый стенд сайта рейтинга
Тестовый стенд предназначен для тестирования и сравнения различных формул рейтинга. Стенд рассчитывает рейтинг за заданные даты по вашей формуле, создаёт excel-таблички с рейтингами команд и сравнивает результаты со стандартной формулой сайта рейтинга. На данный момент для примера в качестве формулы для сравнения имплементирован наивный классический trueskill, который ничего не знает о составах команд. В качестве метрики — сравнение коэффициентов корреляции у тестируемой формулы со стандартной формулой сайта рейтинга на последних N турнирах.
Что нужно для работы
Поставьте необходимые пакеты: pip install -r requirements.txt
Скачайте данные для работы: ZIP-архив с json-ами (59 Мб), pickle (338 Мб). Данные в архиве и pickle идентичны, так что можете брать любой. JSON-ы проще читать и править руками при необходимости, pickle быстрее грузится питоном.
Пример запуска
python test_stand.py -pp ~/rating_test_stand_data/tournaments.pkl -m naive_trueskill.py -c naive_trueskill.yaml
-pp — путь к файлу pickle (вместо этого можно использовать -d и дать путь к папке с JSON-ами)
-m — модуль, в котором реализована формула. Название формулы пишется в модуле в переменной CLASSNAME
-c — путь к файлу конфигурации в YAML
Пример файла конфигурации с комментариями
start_date: 2018-03-08 # дата, от которой начинается расчёт
end_date: 2018-08-23 # дата, на которой заканчивается расчёт
step_days: 7 # шаг расчёта рейтинга (первый релиз считается в день start_date + step_days)
top_n_teams: 1000 # cколько топовых команд выводить в каждой эксельке
games_threshold: 10 # сколько минимум игр должно быть у команды, чтобы она была выведена в рейтинге
base_threshold: 365 # сколько дней назад у команды должен быть в последний раз определён БС для участия в рейтинге
benchmark_size: 30 # сколько последних турниров использовать в бенчмарке
benchmark_count: 1 # сколько раз посчитать бенчмарк
output: "output" # путь к выходной папке для экселек
hugo_output: "hugo_output" # путь к выходной папке для сгенерированных сорцов hugo (https://gohugo.io)
benchmarks: ["pearsonr", "ndcg"] # что использовать в качестве бенчмарка (сейчас доступны коэффициент корреляции Пирсона, как на сайте рейтинга, и NDCG)