The Chess Variant Pages
Custom Search




[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Later Reverse Order EarlierEarliest
This item is an unknown type!
It belongs to categories: Orthodox chess, 
It was last modified on: 2015-04-10
 Author: Fergus  Duniho. Game Courier Ratings. Calculates ratings for players from Game Courier logs. Experimental.[All Comments] [Add Comment or Rating]
Kevin Pacey wrote on 2019-06-22 UTC

I like that the default Status Filter for the Ratings page has been changed (by Ben) to Only Rated Games (rather than All Public Games). I think this is the way it should always have been, though I never got around to making a post suggesting such a change.


Kevin Pacey wrote on 2019-06-18 UTC

I can get the Ratings for just standard Chess now. I was using the wildcard (%) before when using the filter on the GC Ratings Page itself, and that caused the problem of too many games & players showing up. Before now I had no idea of the significance of the (%) symbol, fwiw.


Ben Reiniger wrote on 2019-06-18 UTC

I've fixed the header menu to point Ratings and Logs of a game to the correct locations.

The script here used `gamewcp` ("wild-card pattern", I assume), but at least some links are using `game` as request variables.  For now, rather than track down all usages, I've just allowed `game` to override `gamewcp`.

I've also changed the default Status Filter to Only Rated Games.

(This is in response to a few messages here.)

Also, @Kevin, I still can't recreate the problem with including all logs.  Using the game filter Chess shows only a few games per person, with Carlos at the high 40 and a few others in the teens.  Are you removing the wildcard (`%`)?


Fergus Duniho wrote on 2018-04-29 UTC

One more change I've made is that I have stopped it from rewriting the log and updating the database whenever the status is "Game Drawn." Instead of doing so with the condition $status == "Drawn game.", it uses the condition (!empty($winner) && ($status == "Drawn game.")).


Fergus Duniho wrote on 2018-04-29 UTC

Things are partially fixed now. When it writes the log and updates the database, it will now use the last timestamp in the timeline for the endtime, assuming there is a timeline. Otherwise, it uses the present time. Apparently, it keeps a timeline only if time controls are in use. I may want to change that.

The other problem is that write_log.php is being called too often. I have to look into each instance where it is being called incorrectly and fix that. The difficulty in fixing this is that, thanks to the complexity of the script, I have lost sight of everything that is going on. I made updates to Game Courier to update the logs and database for finished games when any data is incorrect, but there are still bugs in that.


Greg Strong wrote on 2018-04-29 UTC

Now that I think about it, I think this is because it was, until very recently, any time you viewed a finished game log, it decided that the game just finished and reset the date.

Hopefully we can fix that - I'd hate for the GC history to be permenantly messed up.  My thought is - if the update that was happening only changed the database record, but not the text file of the log itself, perhaps we can take the modification timestamps of the files and use that to update the finished time in the database.

 

Fergus Duniho wrote on 2018-04-28 UTC

I checked the logs page and counted 50 games he allegedly finished within the past 365 days, but the years in the log titles were all old. I'll have to look into that.


Greg Strong wrote on 2018-04-28 UTC

Thanks for the explanation and doing these expirements.  Since aging out games just adds draws and draws affect the scores not only for the player but for other players as well, I agree that this is undesirable.  I don't fully understand H. G.'s approach but it may have provided better results since it alters the number of games as well.  But this would be a more dramatic change and given your complex two-pass system it might well have undesirable effects also.  In any event, I'm certainly not going to ask that you put any more time into it.

Regarding the age filter, though, I think this might not be working as expected.  I ran the calculation for the last 365 days and it shows David Paulowich playing 44 games but he hasn't been active here in years.

P. S.  I sent you an email regarding the abstract piece set.

 

Fergus Duniho wrote on 2018-04-28 UTC

As a further experiment, I created three more ratings scripts with additional data:

100 additional wins by fergus against mageofmaple

100 half wins by fergus against mageofmaple

100 quarter wins by fergus against mageofmaple

Note that 100 half wins is the equivalent of 50 wins, and 100 quarter wins is the equivalent of 25 wins. My rating for 100 full wins is 1722, for 100 half wins is 1733, and for 100 quarter wins is 1728. These are all above my actual rating of 1715, which is to be expected. But since I expected the rating for 100 wins to be highest, I rechecked my code and the results, but nothing was amiss. Greg's rating for 100 full losses is 1437, for 100 half losses is 1452, and for 100 quarter losses is 1459. This does follow the expected pattern of being lower for greater losses. Also, they are all lower than his actual rating of 1476, which is also to be expected.

Let's now compare these ratings to those from the 100 draws experiment. My rating there was 1675, and Greg's was 1494. If we take the 100 wins experiment as describing an unmodified set of scores, and we take the others as attempts to reduce the weight of old scores, this seems to be the least fair of all. But let me try another experiment. In this experiment, I will change 100 wins for me into 75 for me and 25 for Greg. In this one, my rating is 1699, and Greg's is 1465. In this experiment, my rating dropped further than it did in the one-sided experiments, and Greg's rose more than it did in the one-sided ones.

It seems fairer to just reduce points than it does to adjust both sides. This reduces the significance of wins without giving a loser any false wins. But by what factor to reduce the wins of a certain age is still a matter of arbitrary decision. I know of no objective reason to favor one way over another. Furthermore, reducing older wins has the same kind of effect as not counting wins older than a certain age. It just does it in a more complicated and less transparent way than filtering out games below a certain date. So, I see no reason to add the ability to reduce the values of older wins.


Fergus Duniho wrote on 2018-04-27 UTC

Yes, it would change a lot. 100 draws is mathematically equivalent to each of us winning 50 games against the other. As an experiment, I wrote a modified script that added 100 extra draws between us. My rating dropped from 1715 to 1675, your rating rose from 1477 to 1494, and many other ratings changed by smaller amounts.

Here is what is going on. First, it made our scores against each other more even, so that the maximum change to our ratings from our games together would be less than what it actually is. However, the greater number of games between us would also increase the portion of the maximum change that would actually be made to our ratings. The bottomline is that this caused us to come out with different ratings when our games factored into the calculation, and this continued to have an effect on every subsequent pair of opponents that included one of us. Since ratings are calculated twice, the second time being in the reverse order of the first time, this affected calculations for every opponent either one of us had. As it affected the ratings of other opponents, it affected the ratings calculated from comparing pairs of opponents that did not include either of us. So, the changes this had for our ratings had a chaotic butterfly effect on the ratings of many other players.

Besides this, it added to the number of games we each played, which made our ratings more stable than they would otherwise be. This also affected the calculation of our ratings with other opponents, and this too had a chaotic butterfly effect through the whole network that includes both of us. This is the yellow colored network, which includes most people who have played on Game Courier. The ratings for people in other networks were unaffected.


Greg Strong wrote on 2018-04-27 UTC

Perhaps I don't understand so let me pose a question.  Would there be any difference in ratings between these two scenarios:  (A) run the ratings now as is, and (B) run the ratings with everything the same except that you and I have played an additional 100 games against each other, but all 100 of them were draws?  Would the additional draws change anything?


Fergus Duniho wrote on 2018-04-27 UTC

Also, I'm not incompetent at math. I have gotten an A in every math class I ever took. If you do happen to be right, you should consider the possibility that you have not explained your idea very well.


Fergus Duniho wrote on 2018-04-27 UTC

Saying you're right doesn't make you right, and insulting me does nothing to persuade me to agree with you.


H. G. Muller wrote on 2018-04-27 UTC

> I do not believe that H. G.'s proposal ...

Well, then you are simply wrong. Math is something that you prove true or false, and not something subject to beliefs. Bad idea to put someone incompetent in math in charge over such a complex issue as rating calculation...

Note that I am not really an interested party, as I never use Game Courier. I just want to put the record straight on what would be the correct way to attach different weights to the distant past.


Fergus Duniho wrote on 2018-04-27 UTC

A dictatorial decree tells other people what to do. I simply spoke about what I will not be doing. A veto is the exercise of executive authority to reject a piece of legislation. I was exercising my privilege as the creator and programmer of this script to not make changes to it I'm not interested in making.

Our discussion of this involved you proposing the idea, me giving my reasons for rejecting it, and you agreeing with one of them. I expected that would end things, but other people continued to run with the idea. In the meantime, I never changed my mind about it being arbitrary, I do not believe that changing the values for win and loss would help, and I do not believe that H. G.'s proposal, which seems to involve reducing the value of a win without changing the value of a loss, would solve anything. Changing the value of one without changing the value of the other is unacceptable to me, and changing both in a way that makes the scores more drawish is also unacceptable to me. Since there is no other alternative, I don't see any way for it work. Besides that, the arbitrariness of it still doesn't sit well with me.


Greg Strong wrote on 2018-04-27 UTC

If you were going to just veto the notion by dictatorial decree, you could have said so at the beginning and spared us the pretence of discussion.

 

Fergus Duniho wrote on 2018-04-27 UTC

I'm not going to be weighting the scores.


H. G. Muller wrote on 2018-04-27 UTC

Well, the weighted scores would add up to the weighted number of games. A recent 1-0 plus an old 0-w adds up to 1+w games, so the player averages will be 1/(1+w) and w/(1+w). When your rating calculation requires the average opponent rating, you will have to weight that average in the same way, of course.


Fergus Duniho wrote on 2018-04-27 UTC

The scores are used to determine the number of games played between two players, because that is what they add up to.


Aurelian Florea wrote on 2018-04-27 UTC

I think HG's idea could work. It is along the lines of what I was thinking but somewhat better put. There should be a clearer rule though but fading away (never to 100%) of the results is a reasonable concept :)!


H. G. Muller wrote on 2018-04-27 UTC

I don't think there is any problem, weighting games with a {0, 1} result. You just add {0, w} to the score, and w to the number of games played. That 0 stays 0 is not a problem; the effect of the weighting comes in through the number of games. E.g. if you won a recent game (with weight 1) and lost an old one, your average will be 1/(1+w), which is greater than 0.5 if w<1, because the old loss is weighted less.


Fergus Duniho wrote on 2018-04-27 UTC

No, I will be sticking to the traditional values of 1 for a win and 0 for a loss.


Joe Joyce wrote on 2018-04-27 UTC

Stupid question: Could you rate wins as +2 and losses as -1, and would that help?


Greg Strong wrote on 2018-04-26 UTC

I don't see the first one being a problem as they would decrease in significance with age on a smooth curve.  The other concern is a problem though.  I agree increasing the value of losses up from zero is a bad idea.  This would only work if a win was +1 and a loss was -1.


Fergus Duniho wrote on 2018-04-26 UTC

I have two problems with discounting the results of older games. One is that the decision concerning what age to start reducing game results is arbitrary. The other is that the results for a game is zero points for a loss and one point for a win. While one point for a win could be reduced to a smaller value, zero points for a loss could not without introducing negative values. The alternative would then be to reduce the 1 point for a win and increase the zero points for a loss, making the results of the older game more drawish. This would distort the results of a game and possibly result in less accurate ratings. I prefer using the age filter to set a clean cut-off point at which older results just aren't included in the calculation.


25 comments displayed

Later Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.