Wsl_F's blog

By Wsl_F, history, 4 months ago, In English,

Hi guys! As I mentioned on previous contest I'm working on tool that predicts rating changes. I'm happy to present it now!

A huge amount of your nerve cells die every time when you wait for a rating update on Codeforces. Stop this! From now you could use this service, it calculates approximate rating changes for every contestant.

The most interested thing for you is extension. It partly modifies the contest standings page and shows approximate rating changes for every contestant. It is available for three browsers:

Extension in work:

Also you could find more detailed information (seed, rank, expected delta, etc.) here.

A project still in beta, so predictions are not very accurate. Average mistake around 5 points, but for the contestants at the back of standings it could be greater up to a few hundreds.

Tech details

I'd like to thank Rubanenko and all other members of NBHEXT developers team for your shared sources and MikeMirzayanov for the great Codeforces platforms with shared API & ratings formulas.

AWESOME UPD

Prediction for todays contest (cf #399) is absolutely matching real rating changes! Thanks for AlexDmitriev! He was close to find my bug in rating calculation:)

 
 
 
 
  • Vote: I like it  
  • +187
  • Vote: I do not like it  

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Maybe I miss something but why use this, when there is NBHEXT? Did you overcome some of its bugs? Please, give more information on how this differs from NBHEXT :)

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +27 Vote: I do not like it

    NBHEXT not working

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +23 Vote: I do not like it

    NBHEXT predicts rating changes using your browser (did you notice that your browser works slowly and is lagging while doing predictions?) CF-Predictor extension get prediction from own server, so all calculation are made on serverside. And yes, NBHEXT is not working now :(

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Not for Mozilla? Please make it for Mozilla too.

  • »
    »
    4 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    It is on validation now. I hope, it doesn't take lot of time:)

»
4 months ago, # |
Rev. 3   Vote: I like it -7 Vote: I do not like it

deleted.

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +11 Vote: I do not like it

    You know, browser extensions work that way that you can enable and disable them whenever you want.

»
4 months ago, # |
  Vote: I like it +13 Vote: I do not like it

Funny, on attached screen all but one prediciton were good with tolerance of two points, but tourist's prediciton was way off (by 46 points). Probably there is a bug that comes to light only when we are dealing with very high rated users. Maybe you did same bug as original bug thanks to which tourist once exceeded 4000 points :)?

  • »
    »
    4 months ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    Maybe I did not understand bug correctly, but wasn't the rating change caused by tourist beating himself? If it's the same bug, wouldn't the prediction show him as losing more rating, because he lost to himself instead?

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Please make it for Mozilla too.****

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    I'm afraid it doesn't happen soon.

»
4 months ago, # |
Rev. 2   Vote: I like it +9 Vote: I do not like it

It seems the variance of the tool is quite high. Last contest I got an expected change of +22 (which seemed way off) and the the real change was -63. I also saw people with similar results and similar starting rating getting a negative expected rating change.

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    This was prediction before system tests. It caused because server gets to many request and have no time to calculate new rating prediction. I will fix this prior next round.

    If you a curious about prediction after system tests you could see it at static page here.

    It predicts to you -65, 2 point lower than actual results.

    sorry for my bugs

    • »
      »
      »
      4 months ago, # ^ |
      Rev. 2   Vote: I like it +5 Vote: I do not like it

      What about showing the last update time of the prediction so that people can know more about it, and also how the prediction should be considered as accurate.

      For instance, from the last update time shown, people can know if the prediction is about middle of the contest, end of contest but before systest, or after systest. So it is much more clear.

      I hope you can consider adding something like this. Thanks for such a great tool anyway:)

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Wsl_F (previous revision, new revision, compare).

»
4 months ago, # |
  Vote: I like it +1 Vote: I do not like it

Apparently, the rating site is down (at least for me). Any ideas why?

»
4 months ago, # |
  Vote: I like it +1 Vote: I do not like it

The site is up now. But when I try to select a contest and click "Get rating prediction", the results won't display at all. The browser seems to load infinitely instead.

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

I think I found a bug. See this —

He is in my starred user list, He submitted A and got WA on pretest 1 [skipped]. But will this even happen? He will get near +77? o.O

  • »
    »
    4 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yeah, you are right this is bug. mdshs.shanto has a quite low rating (887) and my program calculated his seed as 2922. He took place much higher, so his rating should increase. But official cf rating works somehow different, and I don't know where my mistake((

    • »
      »
      »
      4 months ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

      Maybe in case of several people on the same place from A to B, you consider their rank to be A, while it's probably considered as (A + B)/ 2;

      • »
        »
        »
        »
        4 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I will check this, but in the official shared code rank calculates as in standings:

            private void reassignRanks(List<Contestant> contestants) {
                sortByPointsDesc(contestants);
        
                for (Contestant contestant : contestants) {
                    contestant.rank = 0;
                    contestant.delta = 0;
                }
        
                int first = 0;
                double points = contestants.get(0).points;
                for (int i = 1; i < contestants.size(); i++) {
                    if (contestants.get(i).points < points) {
                        for (int j = first; j < i; j++) {
                            contestants.get(j).rank = i;
                        }
                        first = i;
                        points = contestants.get(i).points;
                    }
                }
        
                {
                    double rank = contestants.size();
                    for (int j = first; j < contestants.size(); j++) {
                        contestants.get(j).rank = rank;
                    }
                }
            }
        
        • »
          »
          »
          »
          »
          4 months ago, # ^ |
          Rev. 2   Vote: I like it +5 Vote: I do not like it

          If all people get same number of points, this code will return contestants.size() as far as I understand the code. In standings everybody would be first

    • »
      »
      »
      4 months ago, # ^ |
        Vote: I like it +5 Vote: I do not like it

      okk no problem.

»
4 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Excellent Work! Forked it as Well :)

»
4 months ago, # |
  Vote: I like it +11 Vote: I do not like it

Your tool was perfectly worked yesterday! Thanks man!

»
4 months ago, # |
  Vote: I like it +13 Vote: I do not like it

I suggest to add a Disable/Enable button for the extension as sometimes i wanna to hide it during the contest