SPSP — 理論編 2: 評価
SPSP は精度をデータで確認しながら設計している。本ページでは、その検証方法、 主要パラメータがなぜその値になっているか、既存ランキングとの精度比較、そして採用パラメータ一覧をまとめる。 各表とその解釈だけでページが閉じるよう書いてあるので、内部資料を別途読まなくても判断できる。
1. 精度評価の方法
1.1 テストセット
精度測定は 直近 6 ヶ月で参加者 48 名以上のガチ大会 を test に使う。 具体的なセクションごとの test 大会数は表のキャプションに明記している。
- 6 ヶ月の窓: 古すぎる大会のメンバー構成は現在と乖離するため
- 参加者下限: 小規模大会だとシード予想と結果の乖離が単なる運になりやすく、評価ノイズが増えるため (パラメータ sweep は 48 名以上、既存ランキング比較は 100 名以上の大会を使い分け)
- 件数: 統計的に安定した τ 値を得るのに十分な数 (数十件規模)
1.2 Rolling evaluation (リーク防止)
評価で最も重要なのは「未来の情報を使った予測になっていないか」。 SPSP では大会を時系列順に処理する:
- 大会 T の開始日時を取得
- T 開始より前のデータだけで全プレイヤーの SPSP レートを再計算
- そのレートから T 参加者の予測順位を生成
- T の実際の結果と比較して精度を測る
- 次の大会 T+1 に進む
この方式で「学習データに test 大会が混ざる」ことを構造的に排除している。 本番運用と同じ条件で精度を測れる。
1.3 評価指標
順位予測のずれを 2 通りで測る:
- Kendall τ: 「予測順位」と「実際の最終順位」の順位相関。 1 = 完全一致、0 = ランダム、-1 = 完全逆順。値が大きいほど良い。
- |SPR| mean: SPR = W2W(seed) − W2W(place)。 W2W (Wins-to-Win) は「ダブルイリミでその順位に到達するために必要な勝ち数」のこと (例: 1 位 = 全勝、最下位 = 0 勝)。SPR の絶対値はシード位置と最終順位を 勝ち数換算で比べた絶対誤差。 値が 小さい ほど良い。 W2W の厳密な定義は 理論編・数式 §3.1 を参照。
さらに「上位何位までを評価対象にするか」を scope K で分けて見る:
K = 8, 16, 32, 64, 128, 256, 512, 1024。
Top 8 だけ見ると最上位帯の精度、K=1024 だと全体の精度になる。
2. σ floor のチューニング (直対評価)
σ floor の動機 (なぜ不確実性に下限を設けるか) は 理論編・概念 §2 で説明済み。 ここではその下限値をどう決めたかをデータで示す。
2.1 sweep 結果
直近 6 ヶ月の test 95 大会で、σ floor を 0 〜 4 まで動かして Kendall τ を測った結果:
| σ floor | K=8 | K=16 | K=32 | K=64 | K=128 | K=256 | K=512 | K=1024 |
|---|---|---|---|---|---|---|---|---|
| 0 (なし) | 0.3205 | 0.3934 | 0.4720 | 0.5951 | 0.6416 | 0.6617 | 0.6682 | 0.6690 |
| 2.35 | 0.3323 | 0.3853 | 0.4714 | 0.5978 | 0.6427 | 0.6632 | 0.6694 | 0.6701 |
| 2.50 | 0.3362 | 0.3834 | 0.4717 | 0.5964 | 0.6425 | 0.6631 | 0.6693 | 0.6701 |
| 2.65 | 0.3394 | 0.3802 | 0.4708 | 0.5951 | 0.6420 | 0.6630 | 0.6691 | 0.6699 |
| 3.00 (採用値) | 0.3436 | 0.3812 | 0.4660 | 0.5936 | 0.6410 | 0.6624 | 0.6687 | 0.6695 |
| 4.00 | 0.3304 | 0.3813 | 0.4637 | 0.5884 | 0.6362 | 0.6583 | 0.6647 | 0.6656 |
2.2 何が分かるか
- σ floor を上げると Top 8 の精度が大きく上がる (覚醒選手の追従が効く)
- 2.35 〜 3.00 が実用的なスイートスポット。Top 8 重視なら高め、全体重視なら低め
- 4.0 まで上げると Top 8 でも崩れ始める (過剰反応)
3. ensemble 重み付けのチューニング
3.1 sweep 結果
順位評価と直対評価の重み比 (rank average の重み) を変えて Kendall τ を測った結果:
| 重み比 (順位 : 直対) | K=8 | K=16 | K=32 | K=64 | K=128 | K=256 | K=512 | K=1024 |
|---|---|---|---|---|---|---|---|---|
| 1.0 : 0.0 (順位のみ) | 0.3561 | 0.3814 | 0.4715 | 0.6080 | 0.6557 | 0.6771 | 0.6836 | 0.6844 |
| 0.5 : 0.5 (現状) | 0.3277 | 0.4146 | 0.4939 | 0.6277 | 0.6748 | 0.6959 | 0.7020 | 0.7027 |
| 0.4 : 0.6 | 0.3345 | 0.4128 | 0.4916 | 0.6287 | 0.6756 | 0.6966 | 0.7028 | 0.7035 |
| 0.2 : 0.8 | 0.3530 | 0.4141 | 0.4926 | 0.6299 | 0.6758 | 0.6966 | 0.7026 | 0.7034 |
| 0.0 : 1.0 (直対のみ) | 0.3523 | 0.4129 | 0.4924 | 0.6304 | 0.6741 | 0.6946 | 0.7005 | 0.7012 |
3.2 何が分かるか
- Top 8 では直対評価単体が強い (+0.025 vs ensemble)。最上位帯は試合の質で決まるため、順位ポイントを混ぜると逆に劣化する
- Top 16〜1024 ではバランス側がベスト。順位 : 直対 ≈ 0.4 : 0.6 か 0.5 : 0.5 が天井近く
- 全 K で安定して良い 0.5 : 0.5 を公式採用
- 0.0 : 1.0 (直対のみ) と 0.5 : 0.5 の差は K=128 で +0.0007 程度。順位評価が混ざることで分解能を底上げしている
4. 既存ランキングとの比較
本番の SPSP (5 層順位評価 + σ floor 3.0 + レア/常連ゲート付き直対評価の rank avg ensemble) を、 同じ rolling evaluation の枠組みで既存ランキングおよび代表的なレーティング手法と比較した。 test は 2025-11-01 〜 2026-05-01 に開催された参加者 100 名以上の 38 大会 (B〜E クラスの下位ブラケットは除外)。
| 手法 | PairAcc ↑ | Kendall τ ↑ | Spearman ρ ↑ | |SPR| ↓ |
|---|---|---|---|---|
| SPSP 本番 (順位評価 + 直対評価 ensemble) | .871 | .684 | .834 | 1.018 |
| SPSP 順位評価 単体 (5 層 TJPR) | .863 | .669 | .821 | 1.062 |
| SPSP 直対評価 単体 (σ floor + レア/常連ゲート) | .872 | .685 | .835 | 1.021 |
| OpenSkill BT 単体 (σ floor / ゲートなし) | .854 | .651 | .795 | 1.054 |
| Glicko2 単体 (σ floor / ゲートなし) | .855 | .651 | .796 | 1.059 |
| Elo 単体 (ナイーブ / K=32 固定) | .847 | .637 | .784 | 1.092 |
| JJPR v3 | .821 | .589 | .738 | 1.192 |
PairAcc / Kendall τ / Spearman ρ は順位相関 (大きいほど予測順位と実際の順位が一致)。 |SPR| はシード位置と実際の placement の絶対誤差 (W2W 換算、小さいほど精度が高い)。
4.1 何が分かるか
- SPSP は既存日本ランキング (JJPR v3) より Kendall τ で +0.10 の優位、 シーディング誤差 |SPR| で −0.17 改善。38 大会で再現性のある差。
- 既存の直対系単体 (OpenSkill BT / Glicko2 / Elo) と比べても、SPSP は τ +0.03 〜 +0.05、|SPR| −0.04 〜 −0.07。
- 本番設定では σ floor + レア/常連ゲート + 5 層順位評価 + rank avg ensemble の合わせ技で精度を稼いでいる。 順位評価单体は τ で直対单体に劣るが、ensemble で組み合わせると |SPR| が更に −0.003 改善し、上位ブレを抑える効果がある。
4.2 UltRank との比較 (UltRank プレイヤー 200 名に絞った場合)
UltRank はカバー人数が日本に対して約 200 名と限定的なので、100 人規模以上の大会では大部分の参加者が未ランクとなる。 そこで「UltRank がランクしている 200 名どうしのペアだけ」に対象を絞って、各手法の精度を比較した (= UltRank に有利な比較条件。test 大会のうち UltRank ランカーが 2 名以上参加した 31 大会):
| 手法 | PairAcc ↑ | Kendall τ ↑ | Spearman ρ ↑ | |SPR| ↓ |
|---|---|---|---|---|
| SPSP | .743 | .466 | .608 | 2.003 |
| UltRank 2025 Japan | .716 | .414 | .550 | 2.038 |
UltRank のホームグラウンド (= 自分がランクしている上位 200 名どうし) でも、SPSP の方が τ で +0.05、|SPR| で −0.04 良い結果。 SPSP は上位帯の細かい序列も UltRank より高精度に予測できている。
5. 採用パラメータ一覧
SPSP の本番運用で採用している主要パラメータを以下に列挙する。
5.1 直対評価 (BradleyTerryFull)
| パラメータ | 値 | 意味 |
|---|---|---|
| μ (initial) | 0 | レアプレイヤーのレート初期値 |
| σ (initial) | 25/3 ≈ 8.333 | レアプレイヤーの不確実性初期値 (OpenSkill 既定) |
| β | 25/6 ≈ 4.167 | スキル差 1 単位あたりの試合結果ぶれ幅 (OpenSkill 既定) |
| τ (drift) | 0 | 試合間のレート drift (= 0、無視) |
| σ floor | 3.0 | 各更新後の σ 下限。§2 で sweep 検証 |
| z (ordinal) | 3 | ordinal = μ − z·σ の保守係数 |
| GATED_M_TOUR | 20 | 累計大会出場数 ≤ 20 の人はレア扱い (= 平日大会も学習対象)。> 20 は常連 (= 休日大会のみ学習対象) |
| ELO_PER_UNIT | 29.48 | ordinal 1 単位を Elo 換算する係数 |
| Elo offset | +1000 | 表示 Elo = ordinal × ELO_PER_UNIT + 1000 |
5.2 順位評価
| パラメータ | 値 | 意味 |
|---|---|---|
| LOOKBACK | 3 年 | 大会の集計対象期間 (3 年以内) |
| min entrants (Lv1-Lv2) | 8 | 集計対象とする大会の最少参加人数 |
| min entrants (Lv3-Lv4) | 25 | Lv3/Lv4 の追加フィルタ |
| min entrants (Lv5) | 49 | Lv5 の追加フィルタ |
| weekend filter (Lv4, Lv5) | 有効 | 大会期間中に土日祝を含むものだけ集計 (プレ大会名 prefix の大会は除外) |
| population top-N (Lv2) | 2048 | Lv1 で上位 2048 名に絞ったうえで再計算 |
| population top-N (Lv3) | 1024 | Lv2 で上位 1024 名 → Lv3 |
| population top-N (Lv4) | 512 | Lv3 で上位 512 名 → Lv4 |
| population top-N (Lv5) | 256 | Lv4 で上位 256 名 → Lv5 |
| Lv1 (base, floor, topN, pos_decay) | (1700, 350, 1, 0.3) | gain 関数 base / floor、フル評価上位件数、それ以降の減衰率 |
| Lv2-5 (base, floor, topN, pos_decay) | (1900, 700, 3, 0.3) | Lv2 以降はパラメータも厳しく (base/floor 上げ、topN を 3 に拡張) |
| age decay | 0.97d/30 | 大会開催日からの経過日数 d による減衰 (= 毎月 3% 減衰) |
| ε (gain epsilon) | 0.01 | ラウンドポイントの零回避項 |
| 順位評価 Elo 倍率 | 100 | 順位評価スコアを Elo 風数値に変換する倍率 |
| 順位評価 Elo オフセット | 1500 | 順位評価スコアの基準値 |
5.3 総合評価 (ensemble)
| パラメータ | 値 | 意味 |
|---|---|---|
| 方式 | rank average | 順位評価ランクと直対評価ランクの単純平均 |
| 重み | 1 : 1 | 順位評価:直対評価 = 1:1 (= §3 で決定) |
| 片側ノーデータ補完 | n_players + 1 | 片方の評価にしか出てこない人は、欠けている側を「全プレイヤー数+1」で穴埋め |
| 同順位タイブレーク | スコア平均降順 | 平均順位が並んだ場合は順位評価/直対評価の Elo 換算スコアの平均で降順ソート |
6. その他の検証 (未採用の選択肢)
本番に取り入れなかった検証もここで共有する。
| 試したこと | 結果 | 採用? |
|---|---|---|
| BT 単体の σ floor を直対精度最大化に合わせる | Top 8 でさらに勝つが Top 16+ で大幅劣化 | 不採用 |
| 時間減衰 rate = 0.95 (= 月 5% 減衰) | 0.97 (月 3%) が一貫してベスト。0.95 は古い大会の情報を捨てすぎる | 不採用 (0.97 採用) |
| JJPR を加えた 3 ランキング ensemble | 精度向上が見られず、複雑性だけ増える | 不採用 |
| RRF (Reciprocal Rank Fusion) で ensemble | 単純 rank avg と差が出ず (τ ≈ 0.649 で同水準) | 不採用 (rank avg のシンプル版) |
| 順位評価の pos_decay を 0.1 〜 1.0 で sweep | 0.1 〜 0.6 で τ ≈ 0.649 ± 0.001 (差なし)。1.0 のみ大幅劣化 | 0.3 採用 (中庸) |
τ ≈ 0.65 前後がこの手法群の天井で、順位評価側のパラメータを動かしてもこの水準を超えるのは難しい。 SPSP は「上限近辺で安定」する組み合わせを採用している。
もっと知りたい人へ
パラメータの正式な数式は次の「理論編・数式」で。
概念から復習したい場合は前の「理論編・概念」で。