Generating ELO based on large PGN data

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
jshriver
Posts: 1371
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Generating ELO based on large PGN data

Post by jshriver »

I just finished a 2 month long deep tournament of 33 engines on a ARM64 8meg pi4.

When cute chess is done the table is kinda weird, is there anyway to take the pgn and have a known elo central point as an anchor?

Seems silly to show results with stockfish #1 wit 500 elo, and the lowest at -615 elo

Any tips?
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Generating ELO based on large PGN data

Post by MikeB »

jshriver wrote: Wed May 26, 2021 11:58 pm I just finished a 2 month long deep tournament of 33 engines on a ARM64 8meg pi4.

When cute chess is done the table is kinda weird, is there anyway to take the pgn and have a known elo central point as an anchor?

Seems silly to show results with stockfish #1 wit 500 elo, and the lowest at -615 elo

Any tips?
Very easy with Bayeselo and most other rating programs.
Example commands with bayeselo

Code: Select all

./bayeselo       //  start bayeselo
readpgn file.pgn //  com,amd to read pgn file
elo              //  switch to Elo mode
offset 3000      //  set your average Elo rating
confidence 0.95
mm 0 1           //  use this for games where colors are rotated  
ratings          //  obtain ratings/results
los              //  obtain los
Official site by author : https://www.remi-coulom.fr/Bayesian-Elo/

my fork with modifed output below:
https://github.com/MichaelB7/bayeselo
that outputs this when combined with a shell script

Code: Select all

#########################################################################################################
###                                              Summary                                              ###
#########################################################################################################

PGN File: c:/cluster.mfb/pgn/05260141.pgn
Time Control: Time Control-> base+inc: 30+0.300
Games: 5000
Threads: 1
Hash: 16

Current date : time (EDST)
Date: 05/26/21 : 05:42:49

Projected-> Time: 3h:53m:23s
     Run -> Time: 4h:1m:36s

5000 game(s) loaded
Rank Name              Rating   Δ     +    -     #     Σ    Σ%     W    L    D   W%    =%   OppR
---------------------------------------------------------------------------------------------------------

   1 Stockfish-260521   3500   0.0    6    6  5000 2501.5  50.0 1125 1122 2753  22.5  55.1  3500
   2 Honey-v13.2-SE     3500   0.3    6    6  5000 2498.5  50.0 1122 1125 2753  22.4  55.1  3500
---------------------------------------------------------------------------------------------------------

  Δ = delta from the next higher rated opponent
  # = number of games played
  Σ = total score, 1 point for win, 1/2 point for draw

LOS:
                  St Ho
Stockfish-260521     53
Honey-v13.2-SE    46

#########################################################################################################
###                                                End                                                ###
#########################################################################################################
Image
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Generating ELO based on large PGN data

Post by mvanthoor »

Another (easier) option is Ordo:

https://github.com/michiguel/Ordo/releases

If you have engines in there that have a CCRL-rating, you can anchor a few of them. I'd suggest anchoring the list using the CCRL-rating of the strongest engine, the weakest, and one in the middle of your list. Put the anchors in a file in this format:

"Engine Name 1.0",1850
"Another One 2.1.5",2150

Call it "anchors.txt" for example. Put the games, the anchors file, and Ordo in the same folder.

Then call Ordo:

ordo -m anchors.txt -p games.pgn

And that's it.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL