What's an effective, but easy-to-implement, ranking/ladder algorithm?
October 18, 2011 7:41 PM Subscribe
What's an effective, but easy-to-implement, ranking/ladder algorithm?
I'm working on a project to sort a set of items along a few axes. Inspired by The Social Network, I've built a ranking system like FaceMash, where individual items are pitted against each other, and as people choose winners, the items gradually sorted into a fairly accurate ranking.
Trouble is, the algorithm I'm using (winner and loser swap places, or not, depending on the outcome of each match) doesn't converge nicely over time.
Any ideas for how to improve this? Thanks!
I'm working on a project to sort a set of items along a few axes. Inspired by The Social Network, I've built a ranking system like FaceMash, where individual items are pitted against each other, and as people choose winners, the items gradually sorted into a fairly accurate ranking.
Trouble is, the algorithm I'm using (winner and loser swap places, or not, depending on the outcome of each match) doesn't converge nicely over time.
Any ideas for how to improve this? Thanks!
I am not sure from the details, but if you are looking to have people rank items and if by axes you mean features or characteristics, then you might be looking at conjoint analysis. It is more about the distilling the relative importance of features that make winners attractive than just declaring a winner in the beauty contest like with the chess algorithms.
posted by cgk at 8:24 PM on October 18, 2011
posted by cgk at 8:24 PM on October 18, 2011
Best answer: Elo rankings seem like the go-to approach for ladder ranking.
posted by justkevin at 9:50 PM on October 18, 2011 [1 favorite]
posted by justkevin at 9:50 PM on October 18, 2011 [1 favorite]
Best answer: See Glicko, also, which is a variation on the Elo idea.
It has some additional bits that help it gracefully handle some situations better than Elo can, like if unrated contestants enter a field that's already populated with rated contestants, or if some contestants play much more frequently than others.
posted by kprincehouse at 10:46 PM on October 18, 2011
It has some additional bits that help it gracefully handle some situations better than Elo can, like if unrated contestants enter a field that's already populated with rated contestants, or if some contestants play much more frequently than others.
posted by kprincehouse at 10:46 PM on October 18, 2011
Response by poster: Thanks for your help everyone! The Elo/Glicko ranking systems look like they'll be perfect for this.
Through StackOverflow, I also came across this article by Jeff Moser, which is a nice explanation of Microsoft's TrueSkill system, which is similar to Elo. He's also implemented the system in PHP.
posted by brother at 8:18 AM on October 19, 2011
Through StackOverflow, I also came across this article by Jeff Moser, which is a nice explanation of Microsoft's TrueSkill system, which is similar to Elo. He's also implemented the system in PHP.
posted by brother at 8:18 AM on October 19, 2011
This thread is closed to new comments.
posted by jedicus at 7:52 PM on October 18, 2011