Author Topic: DPleague - team ranking  (Read 7068 times)

mRokita

  • Autococker
  • Posts: 598
Re: DPleague - team ranking
« Reply #20 on: August 26, 2015, 12:53:55 AM »
I've found a good explanation at http://www.sportclubrank.pl/showdoc.php?doc=elo&menu=welcome&menu_item=about
It's in Polish though.

Cameron

  • Global Moderator
  • Autococker
  • Posts: 2686
Re: DPleague - team ranking
« Reply #21 on: August 26, 2015, 03:14:45 AM »
I wrote this when Rick was running his ranking forum thread thing a while back, whether its of any use to you I don't know as it was a bit rough, but it used the elo system, and I recall I modified the function in some way to make it work better.  It'll be buried in the vba scripts somewhere, can't remember how the whole thing works though.

mRokita

  • Autococker
  • Posts: 598
Re: DPleague - team ranking
« Reply #22 on: August 26, 2015, 03:23:08 AM »
Cameron: thx, ill look at it later
Ace: What about including the scores in the ELO ranking?

Ace

  • Autococker
  • Posts: 661
Re: DPleague - team ranking
« Reply #23 on: August 26, 2015, 09:22:17 AM »
Cameron: thx, ill look at it later
Ace: What about including the scores in the ELO ranking?

Hmm, I guess it's possible but I'm not sure how it would work.

mRokita

  • Autococker
  • Posts: 598
Re: DPleague - team ranking
« Reply #24 on: August 27, 2015, 01:47:04 PM »
Ace:
Sa for team1 = team1_score/(team1_score + team2_score)

Ace

  • Autococker
  • Posts: 661
Re: DPleague - team ranking
« Reply #25 on: August 27, 2015, 07:26:43 PM »
Well if you look at the difference that makes for even ranked teams. I think this section looks nice.

normal version (1 for win, 0 for loss):
k(1 - .5) = .5k
k(0 - .5) = -.5k

Pts version (50 - 0 score)
k((50 / (50 + 0)) - .5) = .5k
k((0 / (50 + 0)) - .5) = -.5k

Pts version (50-10 score)
k((50 / (50 + 10)) - .5) = .33k
k((10 / (50 + 10)) - .5) = -.33k

Pts version (50-25 score)
k((50 / (50 + 25)) - .5) = .16k
k((25 / (50 + 25)) - .5) = -.16k

Pts version (50-45 score)
k((50 / (50 + 45)) - .5) = .02k
k((45 / (50 + 45)) - .5) = -.02k



And now for teams that are unevenly ranked (.6 vs .4 chance to win). The last case is interesting, as the team that wins still loses points in the match, as they are expected to have a bigger point differential. I'm not a fan of this idea at all.

normal version (1 for win, 0 for loss):
k(1 - .6) = .4k
k(0 - .4) = -.4k

Pts version (50 - 0 score)
k((50 / (50 + 0)) - .6) = .4k
k((0 / (50 + 0)) - .4) = -.4k

Pts version (50-10 score)
k((50 / (50 + 10)) - .6) = .23k
k((10 / (50 + 10)) - .4) = -.23k

Pts version (50-25 score)
k((50 / (50 + 25)) - .6) = .06k
k((25 / (50 + 25)) - .4) = -.06k

Pts version (50-45 score)
k((50 / (50 + 45)) - .6) = -.07k
k((45 / (50 + 45)) - .4) = .07k



It gets much worse in a case where a team is farther ranked apart. For example, a team with a score of 1800 playing a team with 1200. The 1800 team has a 96% chance to win. Now in this case, even when a team wins with a 50 - 10 score, they still lose points. And a fairly substantial amount. The 45 - 50 game they lose almost half a k value, which is kinda crazy. In a normal ELO system, this is accounting for a tie scenario where a team is expected to win, not tie. But in pb, 50-0 is the same as 50-49, so it really doesn't work out.

normal version (1 for win, 0 for loss):
k(1 - .96) = .04k
k(0 - .04) = -.04k

Pts version (50 - 0 score)
k((50 / (50 + 0)) - .96) = .04k
k((0 / (50 + 0)) - .04) = -.04k

Pts version (50-10 score)
k((50 / (50 + 10)) - .96) = -.13k
k((10 / (50 + 10)) - .04) = .13k

Pts version (50-25 score)
k((50 / (50 + 25)) - .96) = -.29k
k((25 / (50 + 25)) - .04) = .29k

Pts version (50-45 score)
k((50 / (50 + 45)) - .96) = -.43k
k((45 / (50 + 45)) - .04) = .43k

Cameron

  • Global Moderator
  • Autococker
  • Posts: 2686
Re: DPleague - team ranking
« Reply #26 on: August 27, 2015, 08:34:33 PM »
I don't have the time to do the math now, but I'd try experimenting weighting the value of K based off the scores with a function that depends on score difference.  You wouldn't want it to be a drastic change in score, but take for example Ace's scenario where 1400-1200 changes to 1406-1194 for a win, maybe at maximum allow it to change  pm10% based on the scores, so that if it was a clean 50-0 win, then the 6 change has an extra 0.6 added, making it 1406.6 (1407 rounded), and other team 1393.4 (1393 rounded).  But then if it was within the bounds of say 50-(>40), then it would remain 1406-1394, then anything between dependant on some (probably linear is best) function that pads the value of k depending on the difference.

If you don't understand and want an example I can try and come up with a function this weekend when I have time.