Approximate ELO

Jump to navigation Jump to search

Ah good idea, how about this? It is a real mess at the moment. But it seems to work, and is a bit more accurate in my opinion in placing certain bots where they belong. It also has negative and positive infinity for 0 and 100.

public static final double calculateApproxElo(double x) {
	double a = 0.0007082;
	double b = -0.00000334;
	double c = 0.003992;
	double d = -124.3;
	double e = 647.4;
	double f = -72.5;
	return 1.0/(a+b*x+c/x) + d/x + e/(100-x) + f;
}


That is, Diamond and DrussGT are in the 2200 (only just), Phoenix up are in the 2100, Help and up are 2000. The 1900's start around Raiko/Lacrimas.

Chase-san08:24, 30 October 2012

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Users.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

Return to Thread:User talk:Chase-san/Approximate ELO/reply (10).

 

If you want to enforce a specific rating for a specific competitor, you can also adjust the DESIRED_AVERAGE in the algorithm above so ratings match what you want.

MN16:03, 30 October 2012
 

The real challenge is making multiple bots line up, which is about what I managed here.

Chase-san08:33, 31 October 2012

If you change the rating difference between competitors, you distort expected score estimation, PBI and specialization indexes. It is no longer ELO-like.

That´s why the code I put above shifts all competitors up or down equally.

MN17:41, 31 October 2012
 

Looks pretty good. Any chance you could show that first graph overlayed with a scatter plot of the training samples you used?

Skilgannon08:35, 31 October 2012
 

The first one was generated (calcelofast). I used all samples from 2009 rumble archive aps and glinko-2.

From there it was hand tuned to be honest.

Chase-san10:01, 31 October 2012
 

Wow, ok. It would only be a couple lines of Matlab/Scilab to do a proper regression though. Wouldn't that be better?

Skilgannon10:04, 31 October 2012
 

If you want to do one. You can just get the output from the algorithm and use those as the samples.

(I don't have MatLab actually).

Chase-san10:06, 31 October 2012