최종 업데이트:
체스 정확도는 두 단계로 계산합니다. 먼저 엔진이 센티폰 단위로 낸 평가를 Win%라고 부르는 승리 가능성으로 바꿉니다. 그다음 각 수가 Win%를 얼마나 내주었는지로 점수를 매깁니다. 아무것도 잃지 않은 수는 100%를 받고, Lichess가 공개한 공식으로는 승리 가능성을 10포인트 떨어뜨린 수가 약 64%를 받습니다. 게임의 정확도는 이 점수들의 평균입니다.
Lichess는 공식을 공개하지만 chess.com은 공개하지 않습니다. ChessRank는 Lichess와 같은 두 단계를 자체 보정으로 사용합니다. 아래에 공식, 실제 숫자로 푼 예시, 그리고 같은 게임이 사이트마다 다른 점수를 받는 이유를 정리했습니다.
센티폰에서 승리 확률로
체스 엔진은 둘 차례인 쪽의 관점에서 평가를 센티폰(폰의 100분의 1) 단위로 알려 줍니다. 센티폰만으로는 실수를 잘 잴 수 없습니다. 동등한 국면에서 폰을 잃는 것은 큰일이지만, 이미 룩 하나를 더 가진 상황에서 폰을 잃는 것은 거의 중요하지 않습니다. 그래서 평가를 먼저 승리 가능성으로 바꿉니다. Lichess는 다음 곡선을 씁니다.
Win% = 50 + 50 × (2 / (1 + exp(-0.00368208 × centipawns)) - 1)
| 평가 | 우세한 쪽의 Win% | 상대 쪽의 Win% |
|---|---|---|
| 0.00 | 50.0% | 50.0% |
| +0.50 | 54.6% | 45.4% |
| +1.00 | 59.1% | 40.9% |
| +2.00 | 67.6% | 32.4% |
| +3.00 | 75.1% | 24.9% |
| +5.00 | 86.3% | 13.7% |
곡선은 균형 근처에서 가파르고 양 끝에서 평평합니다. 핵심이 바로 이것입니다. 같은 기물 손실이라도 균형 잡힌 국면에서는 승리 가능성을 크게 잃고, 승부가 난 국면에서는 아주 조금만 잃습니다.
승리 확률에서 수별 정확도로
각 수마다 엔진은 수를 두기 전과 후의 국면을 평가하며, 둘 다 두는 쪽의 관점에서 봅니다. Win%의 하락은 두 번째로 공개된 공식으로 수별 정확도가 됩니다.
Accuracy% = 103.1668 × exp(-0.04354 × (winPercentBefore - winPercentAfter)) - 3.1669
풀이 예시
- 내가 두기 전에 엔진은 나에게 +1.00을 보여 줍니다. Win% = 50 + 50 × (2 / (1 + exp(-0.00368208 × 100)) - 1) = 59.1%.
- 내가 둔 수 이후 내 쪽 평가는 -0.50입니다. Win% = 45.4%.
- 하락폭은 59.1 - 45.4 = 승리 가능성 13.7포인트입니다.
- 정확도 = 103.1668 × exp(-0.04354 × 13.7) - 3.1669 = 이 수는 53.7%입니다.
다른 하락폭에 대해 같은 공식은 다음 값을 냅니다.
| 그 수로 잃은 Win% | 수별 정확도 (Lichess 공식) |
|---|---|
| 0 | 100.0% |
| 2 | 91.4% |
| 5 | 79.8% |
| 10 | 63.6% |
| 20 | 40.0% |
| 30 | 24.8% |
정확도는 처음 몇 포인트에서 빠르게 떨어지고 그 뒤로 완만해집니다. 작은 부정확한 수가 이어지면 대부분의 플레이어가 생각하는 것보다 대가가 큽니다.
게임 정확도를 합산하는 방법
게임 점수는 수별 점수의 단순 평균이 아닙니다. 100, 100, 100, 100, 20점을 받은 다섯 수를 생각해 보세요. 산술 평균은 84%입니다. 가장 나쁜 값에 크게 좌우되는 조화 평균은 약 56%입니다. 각 사이트는 이 두 숫자 사이에서 자기 방식을 고릅니다.
- Lichess는 이동하는 수의 창 안에서 국면이 얼마나 출렁였는지에 따라 수에 가중치를 주고, 그 가중 평균을 조화 평균과 결합합니다. 날카롭고 요동치는 국면의 수일수록 더 크게 반영됩니다.
- Chess.com은 합산 방법을 공개하지 않습니다.
- ChessRank는 산술 평균과 조화 평균을 섞습니다. 그래서 블런더 하나는 단순 평균보다는 크게, 순수 조화 평균보다는 작게 게임 점수를 끌어내립니다.
같은 하락에서 나오는 수 라벨은 블런더 vs 실수 vs 부정확: 무엇이 다른가?를, 원래 센티폰을 쓰는 옛 지표는 센티폰 손실(ACPL) 설명을 보세요.
chess.com의 CAPS2: 공개된 것과 아닌 것
chess.com의 정확도는 독자 시스템인 CAPS2에서 나옵니다. 공개된 것은 제품의 동작입니다. Game Review는 양쪽에 정확도 점수를 주고, 모든 수에 라벨을 붙이고, Game Rating을 보여 줍니다. chess.com 도움말 센터에 따르면 Game Rating은 "당신의 수의 질을 당신 레이팅 수준의 플레이어에게 기대되는 것과 비교해 결정"됩니다. 무료 계정은 하루에 한 번 전체 Game Review를 받습니다. Platinum은 Game Review가 무제한이고, Diamond는 여기에 코치 설명이 무제한으로 더해집니다.
공개되지 않은 것은 평가에서 수별 점수로 가는 공식, 게임 점수의 가중치, 엔진 설정, 라벨의 정확한 기준값입니다. CAPS2 공식을 안다고 말하는 사람은 추측하거나 역으로 추정하고 있는 것입니다.
ChessRank가 게임을 분석하는 방법
이 섹션은 ChessRank 분석이 어떻게 작동하는지에 대한 참고 자료입니다. 모든 항목은 사이트 코드에서 가져왔습니다.
- 엔진. WebAssembly로 컴파일한 Stockfish가 브라우저, 즉 내 기기에서 실행됩니다. 아무것도 설치하지 않습니다.
- 깊이. 게임의 모든 국면을 깊이 14까지 계산합니다. 게임 분석은 Great 라벨에 필요한 엔진의 상위 두 변화를 국면마다 보관합니다. Report는 여러 게임을 한꺼번에 분석하며 변화를 하나만 보관하므로 Great를 주지 않고, 어떤 게임의 숫자가 게임 분석과 조금 다를 수 있습니다.
- 미리 계산한 오프닝. 약 10,000개의 오프닝 국면이 미리 계산한 평가와 함께 저장되어 있으며, 그중 99.45%는 깊이 40 이상이고 각각 최대 네 개의 엔진 변화를 갖습니다. 내 게임의 국면이 그중 하나라면 새로 계산하지 않고 저장된 평가를 씁니다.
- 엔드게임 테이블베이스. Syzygy 테이블베이스는 국면 분석과 게임 분석의 선택형 Go deeper 버튼에서 사용됩니다. 게임의 정확도, 라벨, 레이팅에는 절대 쓰이지 않습니다.
- 채점이 이루어지는 곳. 브라우저가 수와 엔진 평가를 ChessRank 채점 서버로 보내면, 서버가 라벨, 정확도, 레이팅 추정치를 돌려줍니다. 서버는 게임을 저장하지 않습니다.
- Win%. 평가는 Lichess와 같은 모양이지만 기울기가 다른 로지스틱 곡선으로 승리 가능성으로 바뀝니다. 아주 큰 평가는 상한이 있고, 강제 메이트는 매우 큰 우위로 계산되며 메이트가 멀수록 그 우위는 작아집니다.
- 수별 정확도. Win% 하락에 대한 지수 곡선으로, 모양은 Lichess와 같고 상수는 실제 게임에 대한 chess.com 리뷰에 맞춰 조정했습니다. 정석 수와 합법적인 선택지가 하나뿐인 수는 100%입니다. 모든 수가 정석, 강제 수, 또는 엔진의 첫 번째 선택이었던 쪽은 정확히 100%를 받습니다.
- 게임 정확도. 수별 정확도의 산술 평균과 조화 평균을 섞은 값입니다. 각 단계(오프닝, 미들게임, 엔드게임)의 정확도는 조화 평균 비중을 더 크게 둡니다.
- 라벨. 부정확, 실수, 블런더는 Win% 하락폭으로 정해집니다. Best는 엔진의 첫 번째 선택입니다. Great는 두 번째로 좋은 변화가 훨씬 나쁠 때의 최선의 수입니다. Brilliant는 엔진이 성립한다고 확인한 희생입니다. Miss는 게임을 지지 않으면서도 이긴 국면이나 강제 메이트를 놓쳤다는 뜻입니다. Book은 이름이 붙은 오프닝 목록에서 나오고, Forced는 합법적인 선택지가 하나뿐인 수를 표시합니다. 게임의 마지막 수는 부정확, 실수, 블런더로 표시되지 않습니다. ChessRank는 기본적으로 자체 이름을 보여 주며, 설정에서 익숙한 이름으로 바꿀 수 있습니다.
- 비용. 무료, 계정 불필요, 일일 제한 없음.
같은 게임이 사이트마다 다른 점수를 받는 이유
| Lichess | Chess.com | ChessRank | |
|---|---|---|---|
| 엔진 | 서버 분석에 Stockfish 19, 브라우저 분석도 제공 | 비공개 | 브라우저에서 실행되는 Stockfish (WebAssembly) |
| 탐색 깊이 | 저희 출처에는 나와 있지 않음 | 비공개 | 국면당 14, 미리 계산한 오프닝은 40 이상 |
| 실행 위치 | Lichess 서버 또는 내 브라우저 | chess.com 서버 | 엔진은 내 브라우저, 채점은 ChessRank 서버 |
| 정확도 공식 공개 | 예 | 아니요 (CAPS2) | 방법은 위에 설명, 상수는 비공개 |
| 수 라벨 | 부정확, 실수, 블런더 | Brilliant부터 Blunder까지 전체 | Brilliant부터 Blunder까지 전체, 그리고 Forced |
| 게임별 레이팅 추정 | 없음 | 있음 (Game Rating) | 있음 |
| 무료 한도 | 서버 분석 하루 40판, 브라우저 분석 무제한 | 전체 Game Review 하루 1회 | 일일 제한 없음 |
숫자를 움직이는 것은 세 가지입니다. 엔진과 깊이가 다르면 특히 날카로운 국면에서 최선의 수가 다르게 보입니다. 곡선이 다르면 같은 평가 하락이 다른 수별 점수가 됩니다. 그리고 합산 규칙이 다르면 나쁜 수의 가중치가 달라집니다. 엔진 간 차이에 대해서는 왜 우리 결과가 다른 플랫폼과 조금 다를 수 있나요?를, 정확도와 실력의 관계는 레이팅별 체스 정확도를, 게임별 실력 숫자는 chess.com Game Rating 설명을 읽어 보세요.
자주 묻는 질문
체스 정확도 공식은 무엇인가요?
Lichess가 두 부분으로 공개합니다. Win% = 50 + 50 × (2 / (1 + exp(-0.00368208 × centipawns)) - 1)로 평가를 승리 가능성으로 바꾸고, Accuracy% = 103.1668 × exp(-0.04354 × (winPercentBefore - winPercentAfter)) - 3.1669로 잃은 승리 가능성에 따라 각 수에 점수를 매깁니다. chess.com은 공식을 공개하지 않습니다.
CAPS2는 무엇인가요?
CAPS2는 chess.com이 Game Review에서 정확도를 계산하는 독자 시스템입니다. chess.com은 공식, 가중치, 엔진 설정을 공개하지 않습니다. 공개된 것은 결과뿐으로, 양쪽의 정확도, 각 수의 라벨, 그리고 Game Rating입니다.
Lichess와 chess.com에서 정확도가 다른 이유는 무엇인가요?
두 사이트는 엔진과 설정, 평가에서 수별 점수로 가는 곡선, 수를 게임 점수로 평균하는 방식이 모두 다릅니다. Lichess는 국면이 얼마나 출렁였는지에 따라 수에 가중치도 줍니다. 같은 게임에서 몇 포인트 차이가 나는 것은 정상입니다.
체스에서 승리 확률이란 무엇인가요?
승리 확률은 엔진 평가를 0에서 100 사이의 승리 가능성으로 바꾼 것입니다. Lichess 곡선에서 +1.00은 약 59%, +3.00은 약 75%입니다. 정확도 공식은 각 수가 이 가능성을 얼마나 내주었는지를 잽니다.
정확도와 평균 센티폰 손실은 같은 건가요?
아닙니다. 평균 센티폰 손실은 평가의 원래 하락을 더하므로, 폰 하나를 잃는 대가가 이긴 국면과 동등한 국면에서 같습니다. 정확도는 먼저 평가를 승리 가능성으로 바꾸기 때문에, 승부가 난 게임에서는 같은 폰의 대가가 훨씬 작습니다.
ChessRank는 게임 정확도에 엔드게임 테이블베이스를 쓰나요?
아니요. Syzygy 테이블베이스는 국면 분석과 선택형 Go deeper 버튼에서만 쓰입니다. 정확도, 수 라벨, 레이팅 추정은 깊이 14의 Stockfish 계산과 미리 계산한 오프닝 국면에서 나옵니다.
출처
Win%와 정확도 공식, Lichess의 게임 합산 방식 설명은 lichess.org(lichess.org/page/accuracy)에서, Lichess 분석 한도는 lichess.org/features에서 가져왔습니다. Game Rating 정의와 Game Review 한도는 chess.com 도움말 센터에서 가져왔습니다. ChessRank에 관한 내용은 ChessRank 자체 코드에서 가져왔습니다. ChessRank는 독립 프로젝트이며 Chess.com이나 Lichess와 제휴 관계가 없고, 이들의 승인이나 후원을 받지 않습니다.