最終更新:
チェスの正確度は 2 段階で計算されます。まず、エンジンのセンチポーン単位の評価値を、Win% と呼ばれる勝ちの見込みに変換します。次に、各手がどれだけ Win% を手放したかで点をつけます。何も失わない手は 100%、Lichess が公開している式では勝ちの見込みを 10 ポイント下げた手は約 64% です。対局の正確度はこれらの点数の平均です。
Lichess は式を公開していますが、chess.com は公開していません。ChessRank は Lichess と同じ 2 段階を独自の調整で使っています。以下では、式、実際の数字を使った計算例、そして同じ対局がサイトごとに違う点数になる理由を紹介します。
センチポーンから勝率へ
チェスエンジンは、手番側から見た評価値をセンチポーン(ポーンの 100 分の 1)で示します。センチポーンそのままではミスをうまく測れません。互角の局面でポーンを失うのは大きな問題ですが、すでにルーク 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% |
曲線は互角の近くで急で、両端で平らになります。ここが要点です。同じ駒損でも、均衡した局面では勝ちの見込みを大きく失い、勝負がついた局面ではほとんど失いません。
勝率から 1 手の正確度へ
各手について、エンジンは指す前と指した後の局面を、どちらも指した側から評価します。Win% の下落は、公開されている 2 つ目の式で 1 手の正確度に変換されます。
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% | 1 手の正確度(Lichess の式) |
|---|---|
| 0 | 100.0% |
| 2 | 91.4% |
| 5 | 79.8% |
| 10 | 63.6% |
| 20 | 40.0% |
| 30 | 24.8% |
正確度は最初の数ポイントで急に下がり、その後はゆるやかになります。小さな不正確な手が続くと、多くのプレイヤーが思うより大きな代償になります。
対局全体の正確度のまとめ方
対局の点数は、各手の点数の単純な平均ではありません。100、100、100、100、20 の 5 手を考えてみましょう。算術平均は 84% です。最も悪い値に引っ張られる調和平均は約 56% です。各サイトはこの 2 つの数字のあいだで、それぞれのやり方を選んでいます。
- Lichess は、手の移動窓の中で局面がどれだけ揺れ動いたかによって各手に重みをつけ、その加重平均を調和平均と組み合わせます。鋭く揺れる局面での手ほど重く数えられます。
- Chess.com は、まとめ方を公開していません。
- ChessRank は算術平均と調和平均を混ぜています。そのため 1 つの大悪手は、単純平均よりは大きく、純粋な調和平均よりは小さく、対局の点数を下げます。
同じ下落から決まる手のラベルについては大悪手 vs ミス vs 不正確:その違いは?を、生のセンチポーンを使う古い指標についてはセンチポーン損失(ACPL)の解説をご覧ください。
chess.com の CAPS2:公開されていること、いないこと
chess.com の正確度は、独自システムの CAPS2 によるものです。公開されているのは製品のふるまいです。Game Review は両者に正確度をつけ、すべての手にラベルをつけ、Game Rating を表示します。chess.com のヘルプセンターによれば、Game Rating は「あなたの手の質を、あなたのレーティング水準のプレイヤーに期待されるものと比較して決まる」ものです。無料アカウントは 1 日 1 回、完全な Game Review を受けられます。Platinum では Game Review が無制限になり、Diamond ではさらにコーチの解説が無制限になります。
公開されていないのは、評価値から 1 手の点数への式、対局の点数の重み、エンジンの設定、ラベルの正確なしきい値です。CAPS2 の式を知っていると言う人は、推測しているか、逆算しているかのどちらかです。
ChessRank はあなたの対局をどう解析するか
このセクションは、ChessRank の解析の仕組みをまとめた参考情報です。どの項目もサイトのコードに基づいています。
- エンジン。WebAssembly にコンパイルした Stockfish が、あなたのブラウザ、あなた自身の端末で動きます。何もインストールしません。
- 深さ。対局のすべての局面を深さ 14 まで読みます。対局分析は各局面でエンジンの上位 2 本の読み筋を保持し、これを Great ラベルに使います。Report は多くの対局をまとめて解析し、読み筋を 1 本だけ保持するため Great はつかず、ある対局の数字が対局分析と少し違うことがあります。
- 事前計算した序盤。約 10,000 の序盤局面が、あらかじめ計算した評価値とともに保存されています。その 99.45% は深さ 40 以上で、それぞれ最大 4 本のエンジンの読み筋があります。あなたの対局の局面がその中にあれば、新たに読む代わりに保存された評価値を使います。
- 終盤テーブルベース。Syzygy テーブルベースは局面分析と、対局分析の任意の Go deeper ボタンで使われます。対局の正確度、ラベル、レーティングには一切使われません。
- 採点の場所。あなたのブラウザは、指し手とエンジンの評価値を ChessRank の採点サーバーに送り、サーバーはラベル、正確度、レーティングの推定値を返します。サーバーは対局を保存しません。
- Win%。評価値は、Lichess と同じ形で傾きの異なるロジスティック曲線によって勝率に変換されます。非常に大きな評価値には上限があり、強制詰みはとても大きな優位として扱われ、詰みまでが遠いほどその優位は小さくなります。
- 1 手の正確度。Win% の下落に対する指数曲線で、形は Lichess と同じ、定数は実際の対局の chess.com レビューに合わせて調整しています。定跡手と合法手が 1 つしかない手は 100% です。すべての手が定跡、強制手、またはエンジンの第一候補だった側は、ちょうど 100% になります。
- 対局全体の正確度。各手の正確度の算術平均と調和平均を混ぜたものです。各局面段階(序盤、中盤、終盤)の正確度では、調和平均の割合をより大きくしています。
- ラベル。不正確、ミス、大悪手は Win% の下落幅で決まります。Best はエンジンの第一候補です。Great は、2 番目の読み筋が大きく劣るときの最善手です。Brilliant は、エンジンが成立すると確認した犠牲です。Miss は、対局を負けずに勝ちの局面や強制詰みを逃したことを意味します。Book は名前のついた序盤の一覧から決まり、Forced は合法手が 1 つしかない手を示します。対局の最後の手が、不正確、ミス、大悪手とされることはありません。ChessRank は既定で独自の名称を表示し、設定でおなじみの名称に切り替えられます。
- 料金。無料、アカウント不要、1 日の回数制限なし。
同じ対局がサイトごとに違う点数になる理由
| Lichess | Chess.com | ChessRank | |
|---|---|---|---|
| エンジン | サーバー解析に Stockfish 19、ブラウザ解析もあり | 非公開 | あなたのブラウザで動く Stockfish(WebAssembly) |
| 読みの深さ | 今回の出典には記載なし | 非公開 | 局面ごとに 14、事前計算した序盤は 40 以上 |
| 動作場所 | Lichess のサーバーまたはあなたのブラウザ | chess.com のサーバー | エンジンはあなたのブラウザ、採点は ChessRank のサーバー |
| 正確度の式の公開 | あり | なし(CAPS2) | 方法は上記のとおり、定数は非公開 |
| 手のラベル | 不正確、ミス、大悪手 | Brilliant から Blunder までの全セット | Brilliant から Blunder までの全セット、さらに Forced |
| 1 局ごとのレーティング推定 | なし | あり(Game Rating) | あり |
| 無料の上限 | サーバー解析は 1 日 40 局、ブラウザ解析は無制限 | 完全な Game Review は 1 日 1 回 | 1 日の上限なし |
数字を動かすものは 3 つあります。エンジンや深さが違えば、特に鋭い局面で最善手の見え方が変わります。曲線が違えば、同じ評価値の下落が違う点数になります。そしてまとめ方の規則が違えば、悪い手の重みが変わります。エンジン間の食い違いについてはなぜ当サイトの結果は他のプラットフォームと少し違うことがあるのか?を、正確度と棋力の関係についてはレーティング別のチェスの正確度を、1 局ごとの実力の数字についてはchess.com の Game Rating を解説をご覧ください。
よくある質問
チェスの正確度の式は何ですか?
Lichess が 2 つに分けて公開しています。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 で正確度が違うのはなぜですか?
2 つのサイトは、エンジンと設定、評価値から 1 手の点数への曲線、そして手を対局の点数にまとめる方法がそれぞれ違います。Lichess はさらに局面の揺れ動きに応じて手に重みをつけます。同じ対局で数ポイントの差が出るのは普通です。
チェスの勝率とは何ですか?
勝率とは、エンジンの評価値を 0 から 100 の勝ちの見込みに変換したものです。Lichess の曲線では +1.00 が約 59%、+3.00 が約 75% です。正確度の式は、各手がその見込みをどれだけ手放したかを測ります。
正確度は平均センチポーン損失と同じですか?
違います。平均センチポーン損失は評価値の生の下落を足し合わせるので、勝っている局面でも互角の局面でもポーン 1 つの損失は同じ重さです。正確度はまず評価値を勝ちの見込みに変換するため、勝負がついた対局では同じポーンの重みがずっと小さくなります。
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 とは提携関係になく、承認やスポンサーも受けていません。