jasonfsmitty / krach

KRACH calculator for hockey rankings
MIT License
5 stars 6 forks source link

Support "bonus" points #12

Open jasonfsmitty opened 1 year ago

jasonfsmitty commented 1 year ago

While implementing #11, another possibility came to mind - which is what if the "alpha value" wasn't implemented as an actual game, but simply a raw value added to a teams win points? The difference being that it wouldn't affect number of games played, creating another knob to how the ratings are calculated.

I'm calling this "bonus points" to distinguish from alpha points.

jasonfsmitty commented 1 year ago

For basis, here's the ratings while using 0.85 "alpha points" from before, and no bonus points:

$ ./ahf.py update -d "15U AA" --test --alphas 1 --alpha-value 0.85 --bonus 0.0
INFO:root:Updating ratings for 15U AA
Division: 15U AA
Rank KRACH   Subdivision     Team                                     GP  WW-LL-TT  OTW OTL    SoS | Predict Diff WinPt Match
------------------------------------------------------------------------------------------------------------------------
  1   1222 : Championship  : Rebels 15U                                7   6- 1- 0    0   1   1014 |   6.8  -0.0   6.8   0.0
  2    149 : Championship  : Philadelphia Blazers                      8   6- 2- 0    3   0     55 |   6.9   0.0   6.8   0.0
  3    134 : Championship  : NJ Bandits 15AA                          11   6- 4- 1    0   1    257 |   7.4   0.0   7.3   0.0
  4     97 : Championship  : North Jersey Kings Yellow                 7   5- 2- 0    0   0     47 |   5.9   0.0   5.8   0.0
  5     95 : Gold          : North Jersey Avalanche                   10   6- 3- 1    1   0     63 |   7.4   0.0   7.3   0.0
  6     91 : Gold          : Rams Hockey                               6   3- 3- 0    1   2   1167 |   3.9   0.0   3.9   0.0
  7     86 : Gold          : Team Philadelphia                         8   5- 3- 0    0   0    176 |   5.9   0.0   5.8   0.0
  8     55 : Gold          : RHC 15U AA                               11   4- 4- 3    0   0     73 |   6.4   0.0   6.3   0.0
  9     38 : Silver        : VFC 15AA Scandone                        11   5- 3- 3    0   1    678 |   7.4   0.0   7.3   0.0
 10     33 : Silver        : Igloo Jaguars 15U AA Elite                9   5- 4- 0    0   0     52 |   5.9   0.0   5.8   0.0
 11     23 : Silver        : Tri-City Eagles 15U Gold                  8   4- 2- 2    0   0     17 |   5.9   0.0   5.8   0.0
 12     14 : Silver        : North Jersey Skylands Kings              11   3- 7- 1    0   0    148 |   4.4   0.0   4.3   0.0
 13      7 :               : York Devils                              11   2- 9- 0    0   1    147 |   2.9   0.0   2.9   0.0
 14      7 :               : Lehigh Valley Phantoms Youth U15AA       12   3- 9- 0    0   0     38 |   3.9   0.0   3.9   0.0
 15      2 :               : Royals 15U AA Gold                       10   0-10- 0    0   0     44 |   0.9   0.0   0.8   0.0

Differences between expected and actual wins:
          ABS    RAW
  Total:  0.01  0.00
  Avg  :  0.00  0.00

Versus turning off all alpha games, and enabling 0.85 bonus points. Note that the default scaling is insufficient. Also note that the SOS for several teams is way out of wack:

$ ./ahf.py update -d "15U AA" --test --alphas 0 --bonus 0.85 --scale auto
INFO:root:Updating ratings for 15U AA
Division: 15U AA
Rank KRACH   Subdivision     Team                                     GP  WW-LL-TT  OTW OTL    SoS | Predict Diff WinPt Match
------------------------------------------------------------------------------------------------------------------------
  1   8821 : Championship  : Rebels 15U                                7   6- 1- 0    0   1   4434 |  13.9   7.1   6.8   0.0
  2   2776 : Championship  : North Jersey Kings Yellow                 7   5- 2- 0    0   0    862 |  12.0   6.1   5.8   0.0
  3   2383 : Championship  : Philadelphia Blazers                      8   6- 2- 0    3   0   1038 |  14.0   7.1   6.8   0.0
  4   1682 : Championship  : NJ Bandits 15AA                          11   6- 4- 1    0   1   2701 |  15.0   7.7   7.3   0.0
  5   1437 : Gold          : Team Philadelphia                         8   5- 3- 0    0   0   1836 |  11.9   6.1   5.8   0.0
  6   1393 : Gold          : North Jersey Avalanche                   10   6- 3- 1    1   0   1226 |  15.0   7.7   7.3   0.0
  7   1371 : Gold          : Rams Hockey                               6   3- 3- 0    1   2   5275 |   7.9   4.0   3.9   0.0
  8   1053 : Gold          : VFC 15AA Scandone                        11   5- 3- 3    0   1   9906 |  15.0   7.7   7.3   0.0
  9    965 : Silver        : RHC 15U AA                               11   4- 4- 3    0   0   1450 |  13.0   6.6   6.3   0.0
 10    774 : Silver        : Igloo Jaguars 15U AA Elite                9   5- 4- 0    0   0   1039 |  12.0   6.1   5.8   0.0
 11    765 : Silver        : Tri-City Eagles 15U Gold                  8   4- 2- 2    0   0    518 |  12.0   6.1   5.8   0.0
 12    399 : Silver        : North Jersey Skylands Kings              11   3- 7- 1    0   0   1886 |   8.9   4.5   4.3   0.0
 13    292 :               : York Devils                              11   2- 9- 0    0   1 326751132 |   5.8   3.0   2.9   0.0
 14    230 :               : Lehigh Valley Phantoms Youth U15AA       12   3- 9- 0    0   0 303984368 |   7.9   4.0   3.9   0.0
 15     53 :               : Royals 15U AA Gold                       10   0-10- 0    0   0 275783403 |   1.7   0.9   0.8   0.0

Differences between expected and actual wins:
          ABS    RAW
  Total: 84.64 84.64
  Avg  :  5.64  5.64
jasonfsmitty commented 1 year ago

Implementing "bonus" points was trivial, but the results are quite clear - this is a failed approach. Note the huge SoS values for the bottom few teams. The large differences between predicted wins vs actual wins, and so on.

Once the official KRACH ratings are released I'll know for sure, but I suspect this patch can be reverted. For now, leaving in place, and leaving this ticket open as a reminder to revisit.