PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2018/06/06 14:37:19
Name 스카이저그
Subject [일반] Elo 점수 시스템은 어떻게 작동하는가? (수정됨)
"누가 최고지? "

세상에는 수 많은 게임과 스포츠가 있다. 당연히 '누가 최고지?' 혹은 '이 선수는 랭킹 몇위지?' 이런 질문들은 자연스럽게 발생했고 사람들은 이 질문에 답하기 위해 수 많은 랭킹 제도를 고안했다.

랭킹 제도는 'PGR 21' 과도 관계 깊다. 과거 'PGR 21' 은 스타 프로게이머들의 랭킹 사이트였고 당시 'PGR 21'은 WP 라는 랭킹 제도를 운용했었고 전적과 랭킹을 볼 수 있었다. PGR의 랭킹제도는 케스파의 랭킹 제도보다 훌륭했었다.
(PGR 은 ProGamer Ranking 약자다.)

현재 랭킹제도의 황제는 Elo 레이팅(점수) 시스템이다. 만약 PGR이 아직까지 랭킹 사이트로써 활동했다면 Elo 레이팅(점수) 시스템을 채택 할 수 밖에 없었을 것이다. Elo 점수 시스템은 다른 시스템과 비교할 수 없을 정도로 뛰어나기 때문이다.1980년 국제 체스 연맹은 물리학 교수인 Elo(엘로) 박사가 만든 Elo 레이팅 시스템이랑 랭킹 제도를 채택했고 이후 Elo 레이팅 시스템은 바둑,테니스,축구등 다양한 곳에 채택되었다.

리그 오브 레전드, 블리자드의 레이팅 점수, 월드 오브 탱크의 레이팅 시스템도 기본적으로 Elo 시스템을 약간 변형 시킨 것이다.좀 늦었지만 스타도 Elo 시스템을 사용하게 되었다. 아프리카에서 하는 전프로들의 스폰빵을 기반으로한 Elo 점수가 현재 스타판을 접수했다.

현재 개발되고 있는 랭킹 제도나 시스템들은 기본적으로 Elo 시스템을 기반으로 한 응용이거나. Elo 의 단점을 보완한 개량판이다. 모든 랭킹 제도는 Elo 시스템으로 통일되고 있다고 해도 과언이 아니다. Elo 레이팅 시스템은 이미 대세가 되었다. 좋든 싫든 우리는 Elo 랭킹 시스템이 지배하는 세상속에 살고 있고 앞으로 더 자주 만날 수 밖에 없을 것이다.

그런데  Elo 점수 시스템은 어떻게 작동하는가? 원리를 알 수 없는 무언가의 방법이 사람들에게 등급을 매기고 평가하는 상황이 기분 나쁘지 않은가?

사실 Elo 는 사람들이 일단 만족할 만한 답을 제공하고 있다. Elo 시스템이 성공할 수 있던 이유 중 하나이기도 하다. 그 설명은 샤워기의 온도 조절 기능에 대한 설명과 매우 닮았다. 샤워할 때 물의 온도를 맞추기 위해 뜨거우면 차가운 쪽으로 차가우면 뜨거운 쪽으로 꼭지를 돌린다. 이런 식으로 설명하는 것과 참 비슷하다.

더 정확하게는 샤워기 물이 많이 뜨겁거나 차가우면 반대쪽으로 꼭지를 많이 돌리고 온도가 약간 뜨겁거나 약간 차가우면 반대편으로 꼭지를 조금 돌리면서 조절한다는 것이다. 이렇게 하다 보면 적정한 온도를 찾을 수 있다.는 것이다. 이것과 똑같은 설명이다.여기선 온도가 아니라 랭킹이니 이렇게 조절한다. 예상외의 결과가(랭킹이 낮은 사람 이김) 나오면 점수를 많이 얻거나 잃고, 예상대로의 결과(랭킹이 높은 사람 이김) 점수를 조금씩 잃거나 얻는다. 결과가 누적되면 자기 점수를 찾을 수 있다는 것이다.

A와 B 두 선수가 있는데 A가 랭킹이 높아서 그가 이길 확률이 90%로 예측된다. Elo 시스템에선 32점을 기준으로 점수를 변동시키는데 A가 이겼다면 예상대로니 32점의 10%(3.2점) 을 가져가고 B는 3.2점을 뺏긴다. 반대로 B가 이겼다면 예상외의 결과니 B가 32점의 90% 인 28.8점을 가져가고 A 선수는 28.8점을 뺏긴다. 이런 식으로 점수를 주고 받다 보면 실력에 맞는 점수를 갖게 된다는 것이다. Elo 시스템에 대해 궁금하는 사람들에게 대부분 이렇게 설명해 준다.

사람들은 대부분 이 정도 설명에서 만족한다. 하지만 자세히 보면 중요한 것을 설명하지 않고 있다는 걸 알 수 있다. '점수로 두 선수의 승리 확률을 예상할 수 있다.' 는 것이다. 사실 점수로 승률을 예상할 수 있다는 것이 Elo 시스템과 다른 랭킹제도의 가장 큰 차이다. 가장 중요한 것은 설명하지 않은 것이다.

물론 그럴만한 이유가 있다. 디따 어려운 공식 때문이다.

디따 어려운 공식

Elo 점수로 두 선수의 승리 확률을 예상하는 방법은 'Elo 레이팅 시스템을 만든 물리학 교수인 Elo 교수님이 만든 '디따 어려운 공식을' 이용하면 된다. 공식을 보다 보면 이런 생각이 들곤한다. '천재 물리학 박사님께서 만든 위대한 공식이니 묻지도 따지지도 말고 따를지어다.

'사실 Elo 에서 쓰고 있는 디따 어려운 공식을 보고 있으면 나도 현기증 난다. 수학을 꽤나 한다고 하는 편인데도 불구하고 그렇다. 공식에 대한 설명을 대부분 패스하는 이유를 알 것 같다. 다행히 수학을 잘하는 편이라 요리사가 레시피를 보고 요리를 따라 하는 것 처럼 나도 설명을 보고 공식을 이해하고 따라할 수 있다.

위키에 있는 Elo의 레시피는 크게 2가지다. '3자 비교법'(혹은 쌍쌍 비교법)과 '10배 차이는 400 점 차이 차이나게 만들었다' 라는 두가지다. 그걸 보고 따라하면 Elo 공식을 유도할 수 있고 이해할 수 있다.

Elo 공식은 '3자 비교법' 가설을 바탕으로 한다. 이 말은 요리로 치면 '3자 비교법'은 주재료에 해당된다는 뜻이다. 치킨 프라이드에 닭이나 , 소안심 스테이크에서 소 안심에 해당된다는 뜻이다.'3자 비교법'은 일반적으로 확률이나 통계에 많이 쓰이는 가우스 함수(정규분포함수)나 그 친척들과 전혀 다르기 때문에 생소할 수 있지만 사실 훨씬 쉽다.

3자 비교법을 한마디로 요약하면 이렇다.
"A가 B를 10배 이기고 B가 C를 10배 이기면 A는 C를 100배 이긴다."

3자 비교법을 이해하려면 '잘한다는 말을 수학적으로는 어떻게 정의하는 것이 좋을까?' 이 질문을 해보면 된다. 여러 방식이 있을 수 있겠지만 3자 비교법에서는 이렇게 정의한다. A,B 두 선수가 30 게임을 해서 20:10의 전적이 나왔다. A 선수가 2배 많이 이기니 B 선수보다 2배 잘한다고 할 수 있다. 잘한다는 말을 이렇게 정의하는 것이 핵심이다.

이번에는 A,B,C 세 선수가 있다고 치자. A 선수는 B보다 2배 잘하고 B는 C보다 2배 잘한다면 A는 C보다 4배 잘한다고 할 수 있다.(2배 잘하는 선수 보다 2배 잘하니) 따라서 A:C= 4:1 로 예상 할 수 있다.비례식으로도 볼 수있다. 2배 잘한다는 말은 A:B=20:10 이고 B:C=10:5 일테니 A:B:C=20:10:5 의 관계를 가질 것이고 따라서 A:C=20:5=4:1 로 예상하는 것이 합리적이란 것이다.Elo 공식은 세 사람사이에 이런 관계식이 존재할 것이라고 가정하는 것을 토대로 한다.

원칙적으로는 뒤에 나오는 비례식이 옳지만 실제로는 앞에 나온 간략한 형태를 주로 사용한다. 실제로는 이런 식이다. 평균 보다 5배 잘하는 선수와 3배 잘하는 선수가 경기한다면? A:B=5:3 이걸 %로 고치면 62.5%:37.5% 따라서 A의 예상 승률은 62.5% B의 예상 승률은 37.5%

현재 스타판에서 쓰는 Elo 점수를 저런 형태로 고치면

이영호 T (1331.1) = 평균보다 6.7배 잘함
조일장 Z (1224.4) = 평균보다 3.6배 잘함

이영호 T : 조일장 Z = 6.7 : 3.6 = 64:9% : 35.5%

좀 유치해 보일 수 있지만 이게 Elo 공식이 작동하는 방식이다. 디따 어려운 공식 같지만 실은 몇배 잘하다. 라는 정의만 받아 들이면 초등학생도 계산 가능한 수준의 산수일 뿐이다.

이영호 T (1331.1) 3.7
김성현 T (1245.3) 4.1
조일장 Z (1224.4) 3.6
김민철 Z (1222.0) 3.6
정윤종 P (1168.3) 2.6
장윤철 P (1153.2) 2.4

이영호 선수와 김성현 선수를 예상 승률은  6.7 : 4.1 이다. 김민철 선수와 장윤철 선수는 3.6 : 2.4 이런 식으로 계산하면 된다.

하지만 막상 공식을 보면 현기증이 난다. 분명 어려워 보인다. 어려워 보이는 이유는 주 재료인 '3자 비교법' 말고 한가지가 더 있기 때문이다.

'10배 차이나면 400점 차이나게 한다.'

이건 프라이드의 튀김옷? 스테이크에서 소스? 이런 것에 해당된다. 대파를 얼마큼 썰지 이런거에 해당된다. 요리사 맘대로 정한 것 뿐이다. 사실 그리 중요한 건 아니다. 하지만 이것 때문에 Elo 공식이 대단히 어려워 보이게 된 것이다.

'10배 차이나면 400점 차이나게 한다.'

이걸 수학적으로 표현하면 이렇다.
원래 X배 차이
→400*log(X)

10배 잘하면 점수 차이가 400 나오게 해준다. 라는 수학적 테크닉이다. 10배 차이나면 500점 차이 나게 하려면 500*log(X) 해주면 된다.

여기에 한가지가 더 추가 되는데 기본점수를 1000점 부터 시작하자는 것이다.
이것도 임의로 정한 값일 뿐이다. (1500 으로 정하는 경우도 많다.)

(기본점수 1000점,10배 잘하면 400점 차이나게 해준다.)
X→400*log(X)+1000
X배 잘한다는 말이 Elo 점수로는 저렇게 된다.



A 선수의 Elo 점수를 Elo(A)라고 하고 A선수가 평균보다 5배 잘한다면?
Elo(A)=400*log(5)+1000=1279.6

B라는 선수의 실력이 평균의 3배라고 한다면
Elo(B)=400*log(3)+1000=1190.9

이게 실제로 쓰는 Elo 점수다.

Elo 공식이 어려워 보이는 이유는 실력값(몇배 잘한다)이 아니라 Elo 점수를 갖고 계산하기 때문이다. 실제 A의 예상승률(B와 게임) 계산은 5/(3+5) 에 불과한데 우리가 다루는 자료는 Elo 점수다. 이건 포장을 벗겨야 먹을 수 있다. 그래서 어려워 보이게 된 것이다. 포장을 풀려면 테크닉이 필요하다. 먼저 5/(5+3) 분모 분자를 5로 나눠줘야 한다. 그러면 공식은 A의 예상승률=1/((3/5)+1)

(3/5) 라는 값을 찾기 위해 두 공식을 서로 빼주고 (3/5)로 정리해주면
Elo(B)-Elo(A)=400*log(3/5)
(3/5)=10^({Elo(B)-Elo(A)}/400)
A의 예상승률=1/((3/5)+1) 이니 (3/5) 자리에 10^({Elo(B)-Elo(A)}/400) 넣어주면 된다.

결과는
A의 예상승률=1/(10^({Elo(B)-Elo(A)}/400)+1)

이게 바로 흔히 보는 Elo 공식이다.

'3자 가정법' 이란 재료를 '10배 차이나면 400점 차이나게 만들'라는 조건을 걸어준다는 레시피를 따라 Elo 공식을 유도한 것이다.(기본 점수는 상관 없다)

작동 방식을 알면 쉽게 보이고
A의 예상승률=5/(5+3)

작동 원리를 모르면 좀 어렵게 보인다.
A의 예상승률=1/(10^({1190.9-1279.6}/400)+1)

사실 둘은 같은 식이다.

Elo 공식은 실은 간단한 것이지만 어렵게 보이게 된 것이다. 어렵다면 'A가 B를 10배 이기고 B가 C를 10배 이기면 A는 C를 100배 이긴다.' 이 원리를 공식으로 바꾼 것 뿐이라고 기억해도 된다.

쉬운 원리로 작동한다는 알게 되었다면 좋은 일이지만 Elo 시스템이 알고 보니 별거 아니라고 생각한다면 큰 오해다. 랭킹 시스템을 만들고 고안하는건 대단히 어려운 일이고 '어려운 것 보다 쉬운 것'이 더 대단한 것이다. Elo 시스템은 간단하지만 강력하다.

Elo 점수 시스템은 스타에서 맵밸런스 논쟁을 종결 시켰다. 서킷 브레이커에서 테란 vs 저그 밸런스는 Elo 시스템으로 측정되고 현재 54.7%:45.3% 이다. Elo 점수로 테란이 32.75점 유리하단 뜻이고 다르게 표현하면 테란이 1.2배 유리한 맵이라고 할 수 있다. 같은 방식으로 투혼의 밸런스는 55.5%:44.5% 측정된다. Elo 점수로 테란이 38.4점 유리하다. 또는 1.25배 유리한 맵이라고 말할 수 있다. 야구에서 홈그라운드의 이점 역시 같은 방식으로 Elo 점수로 50점 정도라고 알려져 있다.

Elo 시스템은 그동안 막연히 추측하던 것들이 실제로 얼마나 되는지 숫자로 정확히 보여줬고 논쟁을 종결 시켜 버렸다. 맵 밸런스나 종족 밸런스 논쟁을 해본 사람은 이것이 얼마나 대단한 것인지 알 것이다.

Elo 공식의 활약을 보면 칼이나 활 들고 싸우던 시대에서 총 들고 싸우는 시대로 바뀐 것 같다는 느낌이 든다고 할까? 기존의 랭킹 시스템과 비교하면 Elo 시스템은 인디아나 존스가 칼들고 설치던 사람을 권총으로 쏴버리고 귀찮다는 표정을 하는 명장면이 떠오를 정도로 강력하다.하지만 어려운 건 아니다. Elo는 "A가 B를 10배 이기고 B가 C를 10배 이기면 A는 C를 100배 이긴다." 이 원리로 작동하는 공식일 뿐이다.

쉬운 걸 어렵게 설명할 필요는 없다.
Elo 레이팅 시스템은 정말 대단하지만 작동원리를 보통 사람이 이해못할 정도로 어려운 것은 아니다.




작년에 올리려고 했던 글인데 PGR은 가입후 2개월이 지나야  글쓰는 권한이 생기다 보니 기다리다 잊어버리고 이제서야 올리네요. 예전 아이디랑 비번은 잊어버린 지 오래라. 새로 가입하게 됐구요.

PGR에서 활동할 때 전적과 맵 밸런스 분석을 주로 했었는데 인기 없었기에 잘 모르실 꺼에요. 하지만 제가 글 올린 지 5년 후에 어떤 분이 제 공식이 괜찮다는 걸 인정해 주시고 그걸 토대로 자료를 분석해 주셨는데 저걸 보고 다시 활동하게 됐네요
https://pgr21.com/pb/pb.php?id=free2&no=55995

저땐 혼자 분석했던 시절인데 저 역시 3자 비교법이란 결론에 도달했었고 링크 속 공식 역시 Elo 공식과 마찬가지로 3자 비교법을 바탕으로 하고 있답니다. 수학적 근거가 아니라 맵 통계를 보고 전적과 밸런스 뒤에는 이런 규칙이 숨어 있을 것이다. 귀납적으로 찾은 건데 나중에 Elo 공식 유도 과정을 찾아 보고 제 예측이 수학적으로 옳았다는 걸 알게 됐네요.

"A가 B를 10배 많이 이기고, B가 C를 10배 많이 이기면 A가 C를 100배 많이 이긴다" 라는 글귀는
http://jeonggyun.tistory.com/126
에서 '맏내나연' 올려주신 표현을 가져왔습니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
몽키매직
18/06/06 14:40
수정 아이콘
쉬운 개념을 너무 어렵게 설명하고, 과장하는 수식이 많은데 다시 정리해주셨으면 합니다. 그리고 오래된 게임 사이트이니 만큼 ELO 시스템은 하드 유저 대다수는 이미 알고 있으니 초심자를 위한 정보글을 써주시려면 더더욱 쉽게 쓰셔야 할 듯. '디따 어려운 공식' 으로 퉁치고 넘어가셨는데 뜯어보면 그렇게 복잡하지 않습니다.
돼지샤브샤브
18/06/06 15:28
수정 아이콘
(수정됨) 몽키... 원숭이...

"더 쉽게 써 주면 좋을 것 같다" 는 더 부드럽게 얘기하거나 혹은 본인이 직접 쉽게 해 주실 수도 있죠. 평가만 던지고 끝나는 댓글 대신에요..
몽키매직
18/06/06 15:31
수정 아이콘
(수정됨) 비꼬지 말고 하고 싶은 말씀을 하세요. 최소한 저는 구체적으로 뭐가 불만인지를 얘기했습니다. 그 정도 예의는 지키셔야죠.
ELO 시스템의 개념은 3줄이면 끝이에요.

1. A 와 B 의 승패비, B 와 C 의 승패비를 곱하면 A 와 C 의 승패비에 근접하는 상황이 전제
2. 이 전제를 바탕으로 로그함수에 의한 예상 승패비를 만든다.
3. 개별 매칭을 여러번 반복하였을 때 예상의 승패비대로 승/패가 나올 경우 점수의 변동이 없게 보정. (7:3 일 경우 승/패시 얻는 점수 잃는 점수 비율이 3:7이 되도록)

이게 끝입니다. 제가 까다로운지도 모르겠지만 정말 쓸데 없이 길게 설명했어요. 부연설명을 그렇게 해놓고 정작 중요한 식은 '디따 어려운 식' 으로 퉁치고 넘어가고;;; 그러고서는 다른 뒷받침 없이 ELO 찬양만 하고 끝나는데, 1번 전제가 어그러지는 경우 문제가 있다는, 그래서 극단 값에서 적용이 어렵다는 중요한 단점도 빼먹으셨고, 실제로 알파고 5100 같은 매칭이 전제 되지 않은 가상 ELO 의 문제에 대해서도 인지를 못하고 계신 것 같은데요...
돼지샤브샤브
18/06/06 15:33
수정 아이콘
안 그래도 추가하는 사이 댓글이 달렀네요.
옛날 원숭이 사건이랑 별 차이가 없어보입니다.
몽키매직
18/06/06 15:35
수정 아이콘
(수정됨) 원숭이 사건과의 매우 차이가 나는 것은 당시 실제 글 내용은 유익한 편이었는데 글 내용과 별개로 사족에 대한 해석 때문에 파이어가 난 것이고, 저는 글 자체 내용이 빈약하고 불필요한 설명이 많은 것을 지적하는 것인데요. 완전히 다른 맥락입니다. 제 기준에서는 성의가 없어 보였고 '디따 어려운' 부분을 보면서 어이가 없고 화가 났습니다.
돼지샤브샤브
18/06/06 15:43
수정 아이콘
그렇게 잘 쉽게 설명하실 수 있으면 좋게 얘기해주거나 본인이 하시거나 하면 되는데, 작성자에게 너의 글은 구리니까 다시 정리해라 하고 댓글을 떠억 던져놓으니 제목을 고치라느니 어쩌라느니 늘어놓던 원숭이맨 생각이 났네요. 맥락이야 당연히 차이가 있겠죠. 근데 첫플 쓰신 게 본인 생각대로 드라이하게 "지적하는 것" 으로만 보이지는 않습니다.. 제 첫플도 예의없기야 했습니다만 저런 댓글 달아놓고 남한테는 예의를 지키라고 하는 것도 사실 좀 우습네요.
스카이저그
18/06/06 16:00
수정 아이콘
어느 커뮤니티에서 보셨는진 모르겠지만
한국어 웹 사이트에서
1번 가정으로 Elo 공식 유도할 수 있다는걸 보여준건 저 밖에 없었던 걸로 기억하고
그 전에는 없던 걸로 알고 있습니다.

제가 이 사이트에서는 글을 늦게 올렸는데 다른 사이트에서 제가 올린 글을 보고 말씀하신거 아닌가요?
몽키매직
18/06/06 16:02
수정 아이콘
(수정됨) 원래 ELO 개념이 그건데요?!? ; 본인이 발견하셨다고 생각하시는건지...
그리고 한국에서 ELO 시스템 가지고 이야기 하기 전부터 알고 있던 개념이니 그런 걱정 안 하셔도 됩니다.
스카이저그
18/06/06 16:10
수정 아이콘
저도 Elo 에 대해 궁금한 것이 많습니다. 좋은 글 많이 부탁드립니다.
그리고 디따 어려운 공식은 글의 후반부에 유도해 놓았습니다.

A의 예상승률=1/(10^({Elo(B)-Elo(A)}/400)+1)
오해를 푸시기 바랍니다.
몽키매직
18/06/06 16:16
수정 아이콘
고전적인 ELO 방식이라면 제가 위에 쓴 것 외에 더 쓸게 없습니다. 사실 승패비를 로그함수로 만들어서 승률 보정하는 게 끝인 개념이라서요... 써주신 그 식이 끝이고 400 이나 10 같은 숫자들은 자의적으로 설정 가능한 값이고요. 일부 랭킹 시스템에서는 ELO 만 사용하면 점수 변동폭이 커서 가상 평점 시스템으로 2중으로 ELO 방식 채택하기도 하고 워3 의 ELL 도 그 비슷한 시스템입니다.
18/06/06 19:55
수정 아이콘
근데 "A의 예상승률=1/(10^({Elo(B)-Elo(A)}/400)+1)" 라는 식이 그렇게 어렵나요? 단순한 사칙연산에 불과한데요;;;
스카이저그
18/06/06 21:17
수정 아이콘
지수 연산이^ 들어가는데 단순 4칙 연산이라고 할 수 있나요?
저도 Elo 공식을 계산할때 지수 로그 계산 가능한 계산기를 써야 계산되는데?
지수 계산이 가능해도 일반 계산기로는 계산이 힘들어요.
18/06/07 00:26
수정 아이콘
지수 연산도 결국 곱하기잖아요;
나른한오후
18/06/06 16:46
수정 아이콘
이정도면 충분히 괜찮은 정보글인데 잘몰랐던 개념도 잘 설명해주셨고..
그런 글에 궃이 이렇게 댓글을 다셔야 하는지 잘모르겠네요.
하드유저는 대부분 알고 있다고 하시는데 하드유저의 개념도 애매모호하고
본인이 복잡하지 않다고 다른분들도 그렇게 생각하지는 않습니다.
몽키매직
18/06/06 16:47
수정 아이콘
음... 제가 지나치게 까칠했던 것 같습니다. 죄송합니다.
플러스
18/06/06 19:11
수정 아이콘
저는 몽키매직님 댓글에 동의합니다
쉬운 개념을 괜히 어렵게 쓴 것 같아요. 쉬운 개념을 어려운 것처럼 과장해서 일단 속이고, 내가 그 어려운 개념을 이 정도로 쉽게 설명했어! 라고 말하는 느낌?
정보글이라기 보다는 재미있는 문체를 쓰는 스타일의 글로 보이긴 하는데... 글쎄요. 그래도 설명해야 하는 부분은 충분히 적어줘야 좋은 글이 될것 같습니다
스카이저그
18/06/06 21:13
수정 아이콘
Elo 공식에 대해 설명한 글들을 찾아 비교해 보셨으면 합니다.
Elo에 관심 있는 분들도 공식은 그냥 갖다 쓰는 걸로 생각할 뿐이죠
스카이저그
18/06/10 02:31
수정 아이콘
Elo 관련글에 대해 문의 드려요
Elo 점수를 실제로 계산할때 쓰는 프로그램이나
방법 실제로 알고 계신가요?

C++ 에서 함수 형태로 쓰는 것만 봤는데
일반인들이 쓰기는 어려운 형태로 보여서요.

실제로 어떤걸 써서 계산하는 지 알고 싶네요.

예를 들면
ASL 시즌1 자료를 Elo 공식을 이용해 점수로 계산하는 방법 같은거요.
이런 것에 대해 구체적으로 아는게 있으신가요?

개인적으로는 원리를 아니까 프로그램이나 엑셀 짜서 사용하는데
다른 분들은 어떤걸 사용하는지 좀 알고 싶어서요.
몽키매직
18/06/14 19:40
수정 아이콘
복잡한 수식이 아니라 엑셀로 사용해도 됩니다.
이게 뭐 프로그램 씩이나 필요한 게 아니라...
스카이저그
18/06/15 14:06
수정 아이콘
(수정됨) 엑셀로 쉽다니 직접 해보신적이 없으신거 같습니다.
엑셀이 훨씬 어렵습니다.

ASL 시즌1 자료라도 Elo 점수로 한번 처리해 보신다면
이렇게 쉽게 말씀 못하실꺼라고 생각합니다.
프로그램이 오히려 쉽습니다. 함수로 나와있고 그걸 쓰면 됩니다.
하지만 엑셀은 Elo 점수 계산하는데 잘 안맞습니다.
스카이저그
18/06/15 14:14
수정 아이콘
(수정됨) 왼쪽이 승리한 선수 오른쪽이 패배한 선수 입니다.
아래 자료를 직접 다뤄 보시면 엑셀 어렵다는걸 알 수 있으실 것입니다.

16강 A조
김윤중 P 김정우 Z 투혼 2016.7.17
윤용태 P 최호선 T 투혼 2016.7.19
김정우 Z 윤용태 P 써킷브레이커 2016.7.24
최호선 T 김윤중 P 써킷브레이커 2016.7.26
최호선 T 김정우 Z 오버워치 2016.7.31
김윤중 P 윤용태 P 태백산맥 2016.8.2
16강 B조
조기석 T 임진묵 T 써킷브레이커 2016.7.17
김재훈 P 임홍규 Z 써킷브레이커 2016.7.19
조기석 T 임홍규 Z 투혼 2016.7.24
임진묵 T 김재훈 P 투혼 2016.7.26
김재훈 P 조기석 T 태백산맥 2016.7.31
임진묵 T 임홍규 Z 오버워치 2016.8.2
16강 C조
이영호 T 김명운 Z 오버워치 2016.7.17
박성균 T 염보성 T 오버워치 2016.7.19
김명운 Z 박성균 T 태백산맥 2016.7.24
염보성 T 이영호 T 태백산맥 2016.7.26
염보성 T 김명운 Z 써킷브레이커 2016.7.31
이영호 T 박성균 T 투혼 2016.8.2
16강 D조
김성현 T 윤찬희 T 태백산맥 2016.7.17
조일장 Z 도재욱 P 태백산맥 2016.7.19
김성현 T 도재욱 P 오버워치 2016.7.24
조일장 Z 윤찬희 T 오버워치 2016.7.26
김성현 T 조일장 Z 투혼 2016.7.31
도재욱 P 윤찬희 T 써킷브레이커 2016.8.2

이정도 데이터도 엑셀로는 엄청난 노가다입니다.
엑셀로는 저 자료의 Elo 점수만 계산하더라도 포기할 것입니다.

시즈 1 자료는
http://sponbbang.com/bbs/board.php?bo_table=free&wr_id=3250&sfl=wr_subject&stx=%EC%8B%9C%EC%A6%8C1&sop=and
여기서 볼 수 있습니다.

다른 사람의 노력을 너무 폄훼 하시는거 같습니다.
직접 해보면 어렵습니다. 엑셀로는 정말 말 그대로 노가다구요.
몽키매직
18/06/15 14:20
수정 아이콘
애초에 글 쓰실 때부터 매우 복잡한 식이라고 생각하셨으니 그걸 어렵다고 생각하시는 게 이해는 되는데 제 기준에서는 별 어려울 것 없습니다. 폄훼하는 게 아니라 대부분 공돌이에게 이정도는 학생 수준의 알고리즘인데요...
스카이저그
18/06/15 14:59
수정 아이콘
저도 프로그램으로는 어렵다고 안했구요
엑셀로는 정말 어렵습니다.

저도 공돌이입니다 -.-;
수학은 중고딩때 학교 대표정도였구요.

사회경험이 적으신가 보네요. 일반인들은 저 정도 수식도 어려워합니다.
저 자료 엑셀로 처리하는거 정말 어렵습니다.

쉽다 쉽다 하는데 엑셀로 한번 해보고
Elo 점수 정도는 내보실 수 있겠지요?
몽키매직
18/06/15 15:18
수정 아이콘
제 직업이 사회경험 그 자체이고 아주 잘하고 있으니 걱정 안 하셔도 됩니다. ELO 점수 내는 식이 어려운 것도 아니고 디폴트에서 시작해서 매칭 시마다 승강점수 로그 함수 보정만 해주면 되는데 뭐가 어렵나요 대체. 적용시키는 게 노가다라 시간이 좀 걸리는 것이지 어려운 건 아니죠. 일부러 어그로 끄시는 것 같아 저는 이만 하겠습니다. 댓글 달지 마세요.
스카이저그
18/06/15 15:34
수정 아이콘
심한 노가다란거 이제야 깨닳은거 같군요.

쉬운 거지만 나는 못한다? Elo,점수 원리가 어려우니 별거 아니다.
벽돌 10개 정도 나르는 것이 뭐가 어렵겠습니까?
그렇다고 벽돌 수만개가 쓰여진 건축물을 무시해서야 쓰겠습니까?

그리고 로그 함수 보정을 왜 하나요?
지수 함수만 나올뿐 로그 함수는 나오지 않습니다 계산 중간과정에서두요
로그 함수는 공식 유도할때만 한번 쓸 뿐인데요.
계산은 그냥 더하기 빼기만 하면 되는 거에요

로그함수 보정을 하면 된다는 댓글을 보니 수식을 전혀 이해 못하신거 같습니다. 아직두요.
몽키매직
18/06/15 15:37
수정 아이콘
애매했는데 어그로 임을 확실히 해주셔서 감사합니다. 이제부터 피드백 없습니다.
스카이저그
18/06/15 15:03
수정 아이콘
수식을 좋아하나 본데
PGR 계시판의 특성상 수식을 쉽게 쓰기 어렵습니다.
그리고 수식으로 글 쓰는 것 보다 이야기로 풀어 쓰는 것이 10배는 난이도가 높습니다.

직접 쓰지 않고 꿍시렁 대는 건 쉬울지 몰라도 실제로 글 쓰는건 어려운 일이랍니다.
18/06/06 14:46
수정 아이콘
그럼 5100점 알파고는 3600점 세돌이보다 1500점 앞서는 거면 대략.....10000배 정도 잘하는 거겠네요 덜덜;;
스카이저그
18/06/06 14:50
수정 아이콘
생각보단 차이가 작네요 ^^;
18/06/06 16:10
수정 아이콘
로그스케일이 이래서 무섭습니다.
웨인루구니
18/06/06 20:48
수정 아이콘
한판을 어케 이긴거죠??
18/06/06 20:52
수정 아이콘
5100 알파고는 커제 이긴 버젼의 더 상위버전이래용
그 당시엔 4500점 정도로 대략 100배? 정도 유리했다고...
잠잘까
18/06/06 14:53
수정 아이콘
(수정됨) 여담으로 기억이 가물가물한데
프렐루드님이었나...2005~6년도 쯤에 피지알에 글 쓰면서 알려주셨는데 엄청난 충격을 받았죠. 흐흐. 기억으로는 pgr랭킹이 꽤 오래전부터 유명무실해져서 (관리가 어려워서?) 사실상 프렐루드님이 만든 걸 더 보기도 했던 것 같아요.

그때 사이트도 따로 만드셨는데 검색해서 선수랑 elo 점수도 보고 했던 기억이 새록새록. 그래프도 있었고....
그때부터 (기억은 안나지만) 통계에서 다루는 온갖 랭킹이 PGR에 다 튀어나와서 참 신기했었죠. 흐흐.
스카이저그
18/06/06 15:02
수정 아이콘
작년에 Elo 점수 계산해주는 엑셀 만들었는데 상산 조자룡님이 여캠리그에서 여캠분들 Elo 점수 계산해주는 걸로 딱한번 쓰였던 기억 나네요. 사용법이 좀 복잡하긴 한데 스폰빵 닷컴에서 구현한건 엑셀로 다 구현해봤어요
18/06/06 15:09
수정 아이콘
생각보다 원리가 간단하네요. 쉽게 설명해 주셔서 감사합니다.
근데 스포츠 랭킹은 경기당 가중치 때문에 논쟁이 생기는거 같아요. 예선1승과 결승1승을 똑같이 취급해야 할지 가중치를 줘야할지에 따라 순위가 변하니까요.
스카이저그
18/06/06 15:29
수정 아이콘
예전에 여기에 대해 고민해 본적 있었는데
32강 통과자에게 주는 점수의 합
16강 통과자에게 주는 점수의 합
8강 통과자에게 주는 점수의 합.....

이걸 모두 같게 하는 것이 답이라는 결론에 도달했었답니다.
브라질너트
18/06/06 15:21
수정 아이콘
점수에 많은 관심을 두지 않으면 알기 어려운 내용들인데, 잘 설명해 주셔서 감사합니다.
18/06/06 16:06
수정 아이콘
정말 재미있게 읽었습니다. 그동안 롤하면서 점수 올리는거에 목을 맸는데 그 점수에 저런 의미가 있는지 몰랐네요.
예전에 시즌 2때 지금처럼 티어가아니라 ELO점수가 표기되던 시절도 있었는데 그때기준 400점 차이면 기대승률이 10배나 차이나는거였네요. 지금과 달리 플레티넘비율도 낮던시절이니 그럴만하네요. 다이아만 되어도 천상계소리 들었구요.
정말 유익하게 읽고갑니다 흐흐
Bluelight
18/06/06 16:56
수정 아이콘
맵별 elo 는 어떻게 구하는건가요?
맵별 elo는 선수별 elo와 서로 연결되어 있어서 이를 어떻게 풀어낼 것인지가 관건같은데, elo 시스템은 맵 밸런스를 종식시켰다고 표현하셔서요.
지금 써두신 데이터는 맵별 전적 통계를 elo 점수로 환산하신거 같은데 맞나요?
스카이저그
18/06/06 17:10
수정 아이콘
테란 저그가 있고
이영호 선수와 조일장 선수가 경기한다고 할때
두 선수의 종족별 elo 점수를 감안한 후 맵 점수를 더해준 후 승부를 예측합니다.
그 결과에 따라 맵 점수를 바꿔 주는 것입니다.

맵 점수는 테란 저그의 종족별로 가성의 선수를 만들어
둘의 elo 점수를 플러스 마이너스 하는 방식입니다.
Bluelight
18/06/06 19:48
수정 아이콘
답변 감사합니다. 아직 약간 아리송해서 조금 더 여쭙고 싶은데, 제가 지금 바쁜 일이 있어서 댓글을 주고 받지 못하겠네요. 시간 날 때 다시 댓글 남겨보도록 하겠습니다!
Dear Again
18/06/06 17:51
수정 아이콘
Elo의 단점이 동일한 날에 다수가 풀리그로 했을때 같은 결과지만 순서에 따라 결과기 다르다는게 있던데 이 내용이 궁금하네용
스카이저그
18/06/06 21:28
수정 아이콘
Elo 단점이 사실 하나둘이 아닌지라
그냥 세계 챔피언 부터 그냥 아무나 랜덤 매칭할때만 맞습니다.
체스나 바둑 처럼 토너먼트 같은게 계속 열려야 어느 정도 맞아 들어갑니다.
이런 점 때문에 개량형들이 많구요.

이 글은 기본 원리에 대한 설명에 집중한 글이기에 그런 부분에 대해 적진 않았습니다.
다만 개량하지 않은 버전도 단점들을 감안해도 적당히 잘 작동하고
기존 방식보다는 훨씬 뛰어날때가 많기 때문에 그냥 쓰는 경우가 많은 거 같아요.
-안군-
18/06/06 19:53
수정 아이콘
Elo를 이용해서 게임에 랭킹시스템을 적용했긴 한데, 사장님께 설명을 못하고 있었습니다. 이렇게 설명해 드리면 이해하실듯. 감사합니다.
스카이저그
18/06/06 21:39
수정 아이콘
영광이네요 ^^:
솔로13년차
18/06/06 22:35
수정 아이콘
wp는 피지알운영자 개인이 작성해서 올렸던 거지 피지알에서 사용한 건 아닙니다. 운영자가 아니실 때도 wp를 올리셨었고요.
꺄르르뭥미
18/06/06 23:50
수정 아이콘
좋은 글 감사합니다. "2배 잘한다"라는 개념을 이해하는데 좀 시간이 걸렸네요... "A와 B가 붙었을 때, A가 n번 이길 때 B가 1번 이기면 A는 B보다 n배 잘한다"라는 정의로부터 출발한 개념인듯 하군요. 아마 도박의 odd 개념인듯해요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
공지 [정치] [공지] 정치카테고리 운영 규칙을 변경합니다. [허들 적용 완료] [126] 오호 20/12/30 275624 0
공지 [일반] 자유게시판 글 작성시의 표현 사용에 대해 다시 공지드립니다. [16] empty 19/02/25 341598 10
공지 [일반] [필독] 성인 정보를 포함하는 글에 대한 공지입니다 [51] OrBef 16/05/03 463516 29
공지 [일반] 통합 규정(2019.11.8. 개정) [2] jjohny=쿠마 19/11/08 337885 3
102736 [일반] [팝송] 트래비스 새 앨범 "L.A. Times" 김치찌개455 24/11/24 455 0
102735 [일반] 하프 마라톤 거리 뛰기 성공 [3] a-ha1197 24/11/23 1197 8
102734 [일반] 아케인 시즌2 리뷰 - 스포 다량 [23] Kaestro1956 24/11/23 1956 0
102733 [일반] DDP 야경을 뒤로 하고 프로미스나인 'DM' 커버 댄스를 촬영하였습니다. [10] 메존일각1852 24/11/23 1852 8
102732 [일반] 잘 알려진 UAP(구 UFO) 목격담 중 하나 [11] a-ha3514 24/11/23 3514 2
102731 [일반] 지하아이돌 공연을 즐겨보자 [10] 뭉땡쓰2829 24/11/23 2829 1
102730 [일반] 노스볼트의 파산, 파국으로 가는 EU 배터리 내재화 [71] 어강됴리8950 24/11/23 8950 6
102729 [일반] 한나라가 멸망한 이유: 외환(外患) [6] 식별3489 24/11/22 3489 15
102728 [일반] 소리로 찾아가는 한자 52. 윗입술/웃는모습 갹(⿱仌口)에서 파생된 한자들 [3] 계층방정2184 24/11/22 2184 3
102726 [일반] 동덕여대 총학 "래커칠은 우리와 무관" [187] a-ha16407 24/11/22 16407 22
102725 [일반] 조금 다른 아이를 키우는 일상 4 [17] Poe3905 24/11/22 3905 30
102724 [일반] AI 시대에도 수다스러운 인싸가 언어를 더 잘 배우더라 [10] 깃털달린뱀2996 24/11/22 2996 4
102723 [일반] 러시아가 어제 발사했다는 ICBM, 순항미사일과 뭐가 다른가? [30] 겨울삼각형3510 24/11/22 3510 0
102722 [일반] 국제 결혼정보회사 이용 후기 [42] 디에아스타5262 24/11/22 5262 39
102721 [정치] 미래의 감시사회는 유토피아가 될 것인가..? [10] Restar1500 24/11/22 1500 0
102720 [일반] 갈수록 진화하는 보이스피싱 조심하세요 [9] 밥과글2024 24/11/22 2024 6
102718 [일반] 영어 컨텐츠와 ChatGPT 번역의 특이점 그리고 한국의 미래 [15] 번개맞은씨앗2336 24/11/22 2336 8
102717 [정치] 김소연 "이준석 성상납 도와준 수행원 자살" [113] 물러나라Y9672 24/11/22 9672 0
102716 [일반] 요즘 근황 [42] 공기청정기7644 24/11/21 7644 16
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로