티스토리 뷰

Writing/Column

Elo rating

gyulee0220 2018. 1. 21. 12:01


 1:1 대결 스포츠에서 여러 플레이어간 우위를 정하는 것이 쉽지 않습니다. 물론 단일 시즌 리그제에서는 모든 선수와 서로 대결하여 가장 높은 승률을 기록한 사람이 우승하지만, 이는 한정된 리그 참가자 안에서의 실력 판가름만 가능합니다. Elo rating은 상대방의 실력을 감안하여 산정합니다. 자신보다 더 높은 점수를 가진 사람을 이기면 더 높은 점수를 얻을 수 있고, 반대로 자신보다 약한 상대를 이긴 경우 점수 상승이 폭은 낮습니다. 흔히 스포츠에서 말하는 양민학살로 인한 점수 뻥튀기가 불가능합니다.

 Elo Rating은 알프레드 엘로(Arpad Elo)박사가 체스 선수간 우위를 알아보기 위해 고안한 방식입니다. 현재 국제 체스 연맹에서도 공식 평점에서 사용하고 있을 정도로 활용 분야가 증가하고 있습니다. 최근에는 1:1대결 뿐만 아니라 팀 경기를 하는 스포츠나 컴퓨터 게임에서도 자주 사용 되고 있습니다.


<Elo rating 산출 방법>


 Elo rating을 위해 3가지의 가정을 해봅시다.

  • 게임의 결과는 하나의 승리, 하나의 패배로만 따지고 무승부는 고려하지 않는다. (0.5승, 0.5패로 처리)

  • 200점의 rating 차이가 있는 플레이어는 높은 쪽이 약 76%의 확률로 승리한다.

  • 평균적인 플레이어의 rating을 1500으로 한다.


 또한, 기대 승률 계산을 위한 한가지 가정을 또 추가한다. A, B, C 세명의 플레이어가 있고, A가 B의 전적은 A 기준으로 3승 2패, B와 C의 전적은 B 기준으로 5승 6패 이다. 그렇다면 A와 C가 맡붙었을때 예상되는 상대 전적은 몇일까?

 직관적으로만 보았을때 분명 세명의 실력 순위는 A, C, B이다. A가 B를 상대로 기록한 승률은 60%이고(5전 3승), C가 B를 상대로 기록한 승률은 55%이다(11전 6승). B는 두 선수 모두를 상대로 50%이하의 승률을 기록 했으므로 최하위가 맞다.

 A와 C의 우위를 가르기 위해 A가 B를 이기는 5번 중 3번각각 B도 C를 이겨서 A가 C를 이기는 확률은 0.6(E_ab) * 0.45(E_bc) 이고, 반대로 A가 B에게 지고 C가 B를 이겨서 C가 A에게 이기는 확률은 0.4(E_ba)* 0.55(E_cb)이다. 여기서 E_ab는 A가 B에게 이기는 확률을 의미한다. 즉, E_ac 는 (E_ab * E_bc) / (E_ab * E_bc + E_ba * E_cb) 로 구할 수 있다. E_ca 는 (E_ba * E_cb) / (E_ab * E_bc + E_ba * E_cb)로 구한다.

 위 식을 이용해 E_ac / E_ca = (E_ab * E_bc) / (E_bc * E_cb)의 공식을 구한다.


로지스틱 커브와 앞서 설명한 가정을 이용하여 아래와 같은 식을 만듭니다.

E_a는 B와 A가 대결했을때 A의 기대승률이다. 200의 차이가 날때, 기대 승률이 0.75라는 것이 위 식을 통해 계산된다.


기존의 A가 가지고 있던 Elo rating이 R_a이고, K는 상수이다. S_a는 이겼을경우 1, 비겼을 경우 0.5, 졌을경우 0이다. 이 식을 이용하여 새로운 레이팅이 계산된다.


 처음에는 간단한 개념 정리로만 시작 할려고 했는데 Elo라는 것이 알면 알수록 깊은 통계적 지식이 필요하더군요. 현재 내용은 정말 최소한으로 생략하고 요약한 개념입니다. 초기 값과 적절한 K값 선정에 대한 내용 까지 공부하고 포함하기에는 시간이 많이 부족했습니다. 다음 기회에 Elo Rating에 대한 더 깊은 정보와 계산 예시를 설명하도록 하겠습니다.(과연 할 수 있을까...)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함