Moderator: Andres Valverde
Jos? Carlos wrote:Hi,
I have a question for the probability experts here.
The way I use ELOStat is like this:
1. suppose I have a rating list where programs ratings are more or less stable.
2. I want to try a new program.
3. I guess it's rating belongs to positions 50-60
4. I match the program in a gaunlet fashion against those 11 programs, with white and black
5. After 22 games, the rating is below expected, and it gets position 71 in the list
6. Then I match it against programs in the 65-75 band
7. Repeat this process until the rating gets stable
The underlying idea is: try to make opponent mean rating ~ my rating.
Is this technique sound from a probabilistic point of view? Does it make more sense to match every program agains the entire pool?
Yes, I have read your message. Thanks for your suggestions.Ulysses Omycron wrote:I hope you have read my suggestions on the first page... They took awhile to write and... Well... If you already read them and they're not worth answering then I must just stop posting my "senseless" (Something like that said Volker).
Note: I will try BayesELO once it gets a GUI (Or instructions of how to use it), but I'm sure it's going to be good (If I sounded melodramatic somewhere, I was just joking of course 8-) ).
Thanks Tim for reporting this problem. It is a numerical problem that arises in the estimation of likelihood distributions when the number of games is high: the likelihood is so close to zero that it becomes equal to zero because floating point numbers cannot handle such small values.timfoden wrote:I tried it on my 14MB database of 40/5 games, and it had this result:
Jos? Carlos wrote:The underlying idea is: try to make opponent mean rating ~ my rating.
Is this technique sound from a probabilistic point of view? Does it make more sense to match every program agains the entire pool?
R?mi Coulom wrote:You will get a reliable rating more quickly if you play against opponents of similar strength, indeed. But it is also important to play against a variety of playing styles (because the Elo assumption that the strength of a program can be captured by a single number is wrong).
With the current number of freely available programs, it is not difficult to find many programs of similar strength. I usually prefer to play against many opponents, rather than play many games against the same opponent.
R?mi
Jos? Carlos wrote:Now let's suposse we have an unlimited number of available opponents covering all strength spectrum, with rating from +infinity to zero. Let us estimate the new program's strength in 2500.
We have to decide which 100 opponents to play against.
One obvious possibility is from 2451 to 2550, to get a mean of 2500.
Other possibility: 2401 to 2450 and 2551 to 2600; this way we don't play against oponents of the same strength, but we keep the average.
We can also choose 2301 to 2350 and 2651 to 2700.
I don't think these possibilities are equivalent, considering the shape of the probability curve. Then again, I've not enough mathematics background to make any calculations.
Joachim Rang wrote:Hi Remi,
very interesting program. I have problems using it ;-). Which parameters I have to specify to get a rating? When do you plan to change the treatment of unknown results (since I have lots of aborted games in my PGNs usually and they should be discarded).? Is there a readme?
regards Joachim
R?mi Coulom wrote:
If you whish to use the program to get a rating list, simply follow the example given: Open a console, cd to the directory where you have your PGN file, and run bayeselo.exe there, with the name of the PGN file on the command line. Then type "mm", "exactdist", "sort", and "players". You can redirect the output to a file with "players >file.txt".
R?mi
R?mi Coulom wrote:
- The variance of every rating can be easily calculated with the covariance matrix.
R?mi Coulom wrote:R?mi Coulom wrote:
- The variance of every rating can be easily calculated with the covariance matrix.
Well, the covariance matrix has to be diagonalized. I do not know diagonalization algorithms well. I have just taken a look at "Numerical Recipes", and they look a little complicated. So, implementing all this risks to take some time. Good opportunity to learn something interesting, at least.
R?mi
Dann Corbit wrote:Look here:
ftp://cap.connx.com/pub/chess-engines/n ... test_fpu.c
In particular, the routine rgaussi() found at the bottom of the file is very well done, and yet quite easy to read. Not at all like that bletcherous NR code.
R?mi Coulom wrote:Dann Corbit wrote:Look here:
ftp://cap.connx.com/pub/chess-engines/n ... test_fpu.c
In particular, the routine rgaussi() found at the bottom of the file is very well done, and yet quite easy to read. Not at all like that bletcherous NR code.
Hi Dann,
Thanks, but your code is for matrix inversion. Diagonalisation is completely different.
I had to lookup "bletcherous" in my dictionary, but did not find it there. Thanks to Google:
http://www.jargon.net/jargonfile/b/bletcherous.html
Nice to learn something everyday !
R?mi
Dann Corbit wrote:All three routines diagonalize the matrix in order to solve it.
Nobody actually inverts a matrix, since it is a waste of time.
Return to Programming and Technical Discussions
Users browsing this forum: No registered users and 36 guests