Approximate ELO

Fragment of a discussion from User talk:Chase-san
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

Here are some graphs.

Approx elo 1 graph.png Approx elo 2 graph.png

Chase-san08:45, 30 October 2012
 

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