Closed fbparis closed 3 years ago
Hi @fbparis, sorry for the delay. What you say makes sense.
Regarding teams (composed of multiple individuals) competing against each other: that is unfortunately not yet possible with choix. It would be easy to set this up once I get around to implementing #4 (as you would then be able to use features to describe players).
Regarding partial play: currently there is no principled / recommended way of doing this, but you are right: one way to make it work would be to reweight the entries of the comparison matrix appropriately. You can do this if you use lsr_pairwise_dense
or ilsr_pairwise_dense
.
I suppose that if you want to experiment / hack something together quickly, you could do as follows. Every time you have an event of the type "team A beats team B", you could break this down into many pairwise comparisons (of the type "player A_i beats player B_j"), construct a comparison matrix by yourself by appropriately weighting each comparison, and call ilsr_pairwise_dense
.
Does this help?
First, congratulations for your paper and the awesome piece of code you provided with!
It looks like Packet-Luce ratings can outperform other ranking algorithms such TrueSkill (see here).
Some nice feature of TrueSkill are the possibility to also rank any number of "teams" of any size of TrueSkill's ratings and update the ratings of members of a team according to the team's results.
TrueSkill also can handle "partial play" for each member of a team and adjust the ratings according to the "participation ratio" of the members.
Do you think such behaviors, especially the ability to build teams, are possible with LSR / I-LSR or have any idea how I could do that?
Edit: for partial play, I guess we could simple multiply the initial weight of an edge by the participation ratio...