- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date | 17/06/21 00:27:00 |
Name | 스카이저그 |
Subject | Elo 공식의 수학적 원리 (Elo 공식유도) |
Elo 공식의 수학적 원리 Elo 공식은 3자 비교법을 바탕으로 한다. 간단하고 상식적이다. A 보다 B 가 잘하고 B 보단 C가 잘해!! 당연히 A 보단 C 가 잘할꺼야! (A<B , B<C A<B<C 따라서 A<C) 흔히 사용하는 논리다. 이 논리를 약간 렙업해 보면 A,C 둘다 B 보다 잘하긴 하지만 A는 압도적으로 잘하고 C는 약간 잘해!! (A>>>>B , C>B A>>C>B , 따라서 A>C) 숫자를 이용해 정교하게 다듬어 보면 A,B 두 선수의 전적이 5:3 이고 (A:B = 5:3) B,C 선수의 전적이 3:4 라면 (B:C = 3:4) 마침 B선수의 전적이 3으로 같으니 A:B:C = 5:3:4 , 따라서 A:C = 5:4 물론 실제로는 숫자가 잘 맞아 떨어지지 않는다. A:B = 7:4 B:C = 3:8 이럴땐 비례식의 특징을 이용해 B를 1로 만들면 된다. A:B = (7/4):1 B:C = 1:(8/3) A:B:C = (7/4):1:(8/3) 따라서 A:C = (7/4):(8/3) 보통 1:2 를 1/2 = 0.5 로 표현하는 것 처럼 A:C = (7/4):(8/3) A/C= (7/4) / (8/3) = 21/32 = 0.65625 위키의 나온 부분도 실은 이 설명이다. A가 B에게 평균 3승 2패 , B가 C에게 5승 6패 라고 한다면 A와 C가 경기한다면 몇승 몇패 하겠는가? A:B = 3:2 = (3/2):1 B:C = 5:6 = 1:(6/5) A:B:C= (3/2):1:(6/5) A:C = (3/2):(6/5)= 15:12 = 5:4 A와 C가 경기한다면 5승 4패가 예상된다. 바로 이 논리가 바로 Elo의 공식의 핵심이다. 값의 의미 뭔가 숫자가 나오긴 했는데 이 숫자가 뜻하는 것은 뭘까? A:B = 3:2 A/B = 1.5 A가 B 에게 1.5배 승리를 많이 거둔다는 뜻이다. 개인적으로는 이 값을 실력지수라고 부르고 있다. A가 B 보다 몇배 잘했다. 이렇게 읽으면 쉽다. A/B = 1 이면 1배 잘했다. 즉 실력이 똑같다는 뜻이다. A/B = 3 이면 3배 잘했다. 하지만 1보다 작다면? 앞에 나온 A/C = 0.65625 는? A가 C 보다 못했다는 뜻이다. %와의 관계 실제로는 %를 많이 사용한다. A:B = 3:2 A가 이길 확률은 ? A/(A+B) = 3/5 = 60% 기호로는 ( X(AB) ) 쓴다. X(AB)= A/(A+B) = 3/5 = 60% 물론 자료는 친절하지 않다. A/B = 1.5 3:2라는 값이 주어지는게 아니다. 분모 분자의 특성을 생각해 보면 1.5 = 1.5 / 1 이다. 따라서 A= 1.5 , B = 1 X(AB)= A/(A+B) = 1.5 / 2.5 = 60% 앞에 소개한 A/B = 1 (같은 실력) A/B = 1/1 X(AB) = A/(A+B) = 1/2 = 50% A/B = 3 (A가 3배 잘함) X(AB) = A/(A+B) = 3/4 = 75% A/C = 0.65625 (C가 더 잘함) X(AC) = 0.65625 / 1.65625 = 39.62% 당연히 A가 이길 확률은 50% 보다 작은 값이 나온다. 공식화 해 보면 A의 실력지수를 S라고 하면 A가 B를 이길 확률은? A/B = S A/B = S/1 X(AB) = A/(A+B) = S/(S+1) 간단히 하면 실력지수 S 일때 확률 X는 X = S/(S+1) 실력지수->% 변환을 먼저 소개했지만 실은 반대 상황이 많다. 자료는 % 일때가 많다. 그런데 3자 비교법을 쓰려면 % 자료를 실력지수로 고처야 한다. 실력지수 -> % 공식을 다시 살펴 보자 X = S/(S+1) S로 정리하면 S=X/(1-X) X 값이 80% 라면 실력값은? S = 0.8/(1-0.8) = 0.8/0.2 = 4 40%라면? S= 0.4/0.6 = 0.6667 이다. 확률론에서 (1-X) 는 여확률이고 패배 확률을 뜻한다. 보통 X' 라고 쓴다. 따라서 % 자료가 주어질때 실력지수는 S = X/X' = 승리확률/ 패배확률 임의의 선수와 대결했을때 A 선수의 승률은 90% 고 B 선수의 승률은 80% 라면 두 선수가 경기했을때 A 선수의 승률은 얼마일까? A 선수의 실력 지수는 90%/10% = 9 B 선수의 실력 지수는 80%/20% = 4 맨처음 소개한 3자 비교법에서 두 선수를 연결해 주는 것을 B가 했다. 여기서는 임의의 선수라는 개념이 대신한다. 그걸로 3자 비교법을 쓰는 것이다. A:임의의 선수 = 9:1 B:임의의 선수 = 4:1 A:임의의 선수:B = 9:1:4 A:B = 9/4 A/B = 2.25 X(AB) = 2.25/3.25 = 69.23 % A 선수가 B 선수를 이길 확률은 69.23% 다. 3자 비교법이라는 걸 설명하기 위해 중간 과정을 보여주었지만 실제로는 실력지수 끼리 나누기만 하면 된다. 9/4 하면 A선수 입장에서 실력값이 나오고 반대로 4/9 하면 B 선수 입장에서 실력값이 나온다. 두 선수간의 실력값은 나누기가 성립하고 공식으로 쓴다면 S(AB)=S(A)/S(B) A선수가 B 선수 보다 몇배 잘하는가? 마찬가지로 S(BA)=S(B)/S(A) 여러 공식이 나오긴 했지만 지금 쓰고 있는 공식이나 계산은 A 보다 B 가 잘하고 B 보단 C가 잘해!! 당연히 A 보단 C 가 잘할꺼야! 이 논리를 수학적으로 확장한 것에 불과하다. 하지만 Elo 공식은 꽤 복잡하다. 로그값을 사용하기 때문이다. 실력차이가 10배 날때 400점 차이 나게 만든다. 이 개념이 들어있는데 수학적으로는 로그로 표현한다. 수학적 테크닉이 필요하다. 로그 변환은 익숙하지 않은데 % 변환과 같은 것이다. 0.4 라는 숫자에 100을 곱해 40%로 고치는 건 익숙하다. 이런 변환이다 숫자의 본질이 변하는 것은 아니다. '차이가 10배 일때 400점 차이나게 만든다. ' 이 변환은 대부분 익숙하지 못할 것이다. 수학적으로는 이런 것이다. 실력 지수값에 log를 해준 다음 , 400을 곱해준다. 실력지수 S -> 400*log S 실력차이가 10배일때 점수를 500 차이 나게 해주고 싶으면 500을 곱해주면 되고 1000 차이 나게 하고 싶으면 1000을 곱해주면 된다. 왜 400 으로 설정했는지 모르겠지만 이미 전 세계적으로 400으로 통일되어 있다. 그리고 또 한가지 임의로 잡아 놓은 값이 있다. 기준점수다. 축구나 체스에서는 1500점 , 어떤 영역에서는 1000점 이런 식으로 기준 점수를 준다. 실력값이 1일때 주는 값이라고 보면 된다. Elo 점수는 기준점수를 1000 점으로 할때 그 선수에 비해 몇배 잘하냐(실력지수) Elo 점수 = 1000 + 400 log S 보통 레이팅 점수라고 하니 A 선수의 Elo 점수를 R(A) 기준점수 대비 실력지수를 S(A) 라고 하면 R(A) = 1000 + 400 log S(A) B선수를 기준으로 쓰면 R(B) = 1000 + 400 log S(B) 두 항을 빼주면 R(A) - R(B) = 400 log S(A)/S(B) 실력지수 끼리는 나누기가 성립한다. S(AB)=S(A)/S(B) A선수가 B 선수 보다 몇배 잘하는가? R(A) - R(B) = 400 log S(AB) 사실 여기서 의미를 가지는 건 S값 하나다. S(AB) = 10^([R(A) - R(B)]/400) 실력값과 % 변환 공식은 X = S/(S+1) S 자리에 S(AB) 값을 넣어주면 A,B 두 선수가 경기할때 A 선수의 승리 확률이 나온다. 위 공식에 S(AB) = 10^([R(A) - R(B)]/400) 를 집어 넣어 (분모 분자를 S로 나눠 S를 줄이는 계산 테크닉이 필요하다.) S값을 없애주고 레이팅 값만 남긴 것이 바로 Elo 공식이다. Elo 공식은 이렇게 유도할 수 있다. 공식의 모양이 복잡하긴 하지만 Elo 공식은 맨 처음 소개한 3자 비교이라는 매우 간단한 원리에서 유도되는 공식이다. 끝까지 봐주셔서 감사합니다. 가시기 전에 추천 한번 부탁드릴께요. 7
|