- AllCalc 수학, 과학, 공학 이야기 기타
Elo Rating System 이란?
1. 정의
승/패로 나뉘는 시합에 있어서, 선수의 실력을 (승/패, 승률에 따라) 점수화하여 순위를 매기는 방식.
https://en.wikipedia.org/wiki/Elo_rating_system
https://namu.wiki/w/Elo%20%EB%A0%88%EC%9D%B4%ED%8C%85
2. 특징
- 이기면 레이팅이 오른다.
레이팅이 자기보다 높은 사람에게 이기면 확 오른다.
레이팅이 자기보다 낮은 사람에게 이기면 조금 오른다. - 지면 레이팅이 떨어진다.
레이팅이 자기보다 높은 사람에게 지면 조금 떨어진다.
레이팅이 자기보다 낮은 사람에게 지면 많이 떨어진다. - 이기고 레이팅이 떨어진다거나, 지고 레이팅이 올라간다거나 하는 일은 절대 없음!
- 레이팅을 기반으로 플레이어간 상대 승률을 추정할 수 있다.
경기 결과에 따른 레이팅 변화
ㄴ Ra : 기존 레이팅
ㄴ K : factor
ㄴ Sa : 실제 획득 점수 (승=1, 무승부=0.5, 패=0)
ㄴ Ea : 기대 획득 점수 (=Elo 기반 승률)
<검은 색 곡선은 y축_좌 승률, 브라운(K=32)과 레드(K=16) 곡선은 y축_우 점수변공>
Graphs of probabilities and Elo rating changes (for K=16 and 32) of expected outcome (solid curve) and unexpected outcome (dotted curve) vs initial rating difference For example, player A starts with a 1400 rating and B with 1800 in a tournament using K = 32 (brown curves). The blue dash-dot line denotes the initial rating difference of 400 (1800 - 1400). The probability of B winning, the expected outcome, is 0.91 (intersection of black solid curve and blue line); if this happens, A's rating decreases by 3 (intersection of brown solid curve and blue line) to 1397 and B's increases by the same amount to 1803. Conversely, the probability of A winning, the unexpected outcome, is 0.09 (intersection of black dotted curve and blue line); if this happens, A's rating increases by 29 (intersection of brown dotted curve and blue line) to 1429 and B's decreases by the same amount to 1771.
- 플레이어 A = 1400, 플레이어 B = 1800, 점수(rating)차이 400.
- K=32 인 것으로 계산시
B가 이기면 Expected 해당 (확률 0.91 = 91%)
A 점수 3점 깍임 = 1400 - 3 = 1397
B 점수 3점 오름 = 1800 + 3 = 1803
A가 이기면 Unexpected 해당 (확률 0.09 = 9%)
A 점수 = 1400 + 29 = 1429
B 점수 = 1800 - 29 = 1771
3. 장/단점
Comment 3
-
-
-
통계적 접근
- 1라운드당 3경기로 구성하여 각각 1회씩 대결 (순차적)
(기대 승률에 기반하여 Random 하게 승/패 결정. 무승부 없음.) - 매 경기 직후 ELO Rating 변경 (K=16)
- 100 라운드(=300경기) 진행 후 A, B, C 의 Rating 값 저장
- 5000 회 반복하여 통계분석
A : 4500에서 4228.47로 (▼271.53)
B : 3550에서 3768.67로 (▲218.67)
C : 3144에서 3196.87로 (▲52.87)- 조정 전 elo 합계 : 4500 + 3550 + 3144 = 11194
- 조정 후 elo 합계 : 4228.47+3768.67+3196.87 = 11194
- 1라운드당 3경기로 구성하여 각각 1회씩 대결 (순차적)
-
-
-
이론적 접근
이론적으로 계산은 어떻게 해야할지...?
-
A, B, C 선수만 존재하는 풀을 가정해 보겠습니다.
C는 A와도 경기를 해 보았고, B와도 경기를 해 보았습니다만, A와 B는 지금까지 직접 경기를 해 본 적이 없습니다.
막상 A vs B 를 1:1로 붙여보면 A의 승률이 80%에 불과합니다.
(B가 A의 특정한 약점을 집요하게 추궁하기 때문이라고 가정해 보겠습니다.)
A, B, C의 Elo Rating 을 각각 4500, 3550, 3144 로 설정해 놓고,
같은 비율로 충분히 많은 시합을 시킬 경우에 각각의 레이팅은 몇점이 될까요?