[解決済み] Glicko-2のレーティングシステム。バグか悪用か?
質問
Glicko-2はチェスで使用される評価システムですが、他の多くの状況で使用することができます。Glicko-2はGlicko-1を改良したもので、旧来のELOレーティングの問題点に対処したものです。
Glicko-2がバージョン1と比較して特別なのは、活動休止期間が長いほど高いレーティング・デビエーション(RD)を取り入れている点である。これは、時間やレーティング期間に関連するシステム定数という概念で実現されています。
著者の書き込み例はこちらです。
http://www.glicko.net/glicko/glicko2.pdf
.
この資料の中で、彼は説明しています。
Glicko-2システムは、1つのレーティングにおけるゲーム数が多い場合に最も効果的です。 中~大規模の期間、例えば少なくとも平均10~15試合は行う。 を、1つのレーティング期間に1人当たり レーティング期間の長さ は、管理者の裁量に委ねられます。
アクティブなチェスプレイヤーのグループが1ヶ月の間に平均10-15ゲームをプレイすると仮定すると、管理者は毎月末にレーティングを更新することになります。
Glicko-2のレーティングシステムをPHPで実装する必要があり、以下のものに出会いました。
- このJavaScriptには小さな誤りがあり、そのため、このJavaScriptは 技術文書の例では、作者はそれに近いものを見つけ、そして デバッグをしなかった。
- PHPの実装は多くのバグに悩まされていましたが、そのことは 複数回の評価期間を経なければわからない(この評価期間は 技術資料には期待値が記載されていない)
- 最後にエクセルの電卓はミスがなく、最も優れているように思えました。 チェス関係者の手によるプロフェッショナルなものです。一旦 JavaScriptのバグが解決され、JavaScriptとExcel Calculatorは は互いに非常によく一致した(完璧ではないとはいえ、丸め誤差の範囲内かもしれない)。
PHPとJavaScriptのバグを修正し(作者にissue/patchを提出し)、Excel Calculatorとできるだけ一致させるようにしました。
これで、分析用の正確なGlicko-2実装(3つのうち)ができたと99%確信したところで、不思議なことに遭遇し、今回の話題となったわけです。
Glicko-2の新規プレイヤー向けの推奨デフォルトを考えると。
Rating: 1500
RD: 350
Volatility: 0.06
レーティング1378、RD99の平均的な相手と対峙した場合( ソース 今後12期間(1年間)、1レーティング期間(1ヶ月)に1回だけ、想定した ナショナルクラスA (1800-1999)のレーティング1852を獲得していますが、実際には12ヶ月の間に平均的なレーティングのプレイヤー12人にしか勝っていないのです。
Month Rating RD Volatility Class
1 1625 259 0.059999 National Class B
2 1682 225 0.059998 〃
3 1718 205 0.059997 〃
6 1784 174 0.059994 〃
12 1852 148 0.059988 National Class A
24 1922 127 0.059976 〃
格付け期間ごとに平均的な相手と2回対戦すれば、平均的な相手8~10人としか対戦せず、約4~5ヶ月でナショナルクラスAに到達することができるのです。
Month Rating RD Volatility Class
1 1672 215 0.059999 National Class B
2 1733 183 0.059997 〃
3 1770 166 0.059995 〃
4 1797 154 0.059993 〃
5 1819 146 0.059992 National Class A
6 1836 140 0.059991 〃
この仮定は正確ですか?私の計算機にバグがあるのでしょうか?
バグでない場合、他に対策はありますか。
- 真の評価とは、偏差の下限値であると考える(評価-偏差)。 RD)
- 非アクティブユーザーのレーティングを表示しない
- ゲーム数N以下のユーザーを表示しない
解決方法は?
直感に反するようですが、これは実は正しい結果なのです。平均的なプレイヤーと対戦し続けても、期間に関係なく常に勝利するのであれば、あなたは高いランキングを持っていることを実証しています(対戦相手が平均的であっても平均的なランキングではありません)。平均的な(「真の」平均的なランクを持つ)プレイヤーが、全く同じ「真の」ランク(平均的な)の相手と対戦すると、約50%の確率で勝ったり負けたりするはずです。真の」ランクが非常に高いプレイヤーは、平均的なプレイヤーと対戦した場合、より多くの割合で勝つことができます。これは、お互いのランクがどのくらい離れているかによりますが、仮に十分高いランクであれば、90%の割合で勝つことができます。つまり、平均的なプレイヤーと10回対戦するごとに、この高ランクのプレイヤーは1回負けるはずです。
あなたが効果的にモデル化したのは、平均的なプレイヤーに対して毎試合勝てるほど高いランクを持つプレイヤー(12試合以上、24試合以上負けなし)です。つまり、負けなしなので、勝ち続ければスコアは際限なく上がり続けるのです。負けるまでは)期待勝率が100%に近づくほどランクが離れているはずの能力を発揮しているのです。
関連
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】予期せぬ例外。SQLSTATE[HY000] [1045] Access denied for user ****@'localhost' (using password: YES)
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】メッセージ。Trying to access array offset on value of type null [重複]配列のオフセットにアクセスしようとしています。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み】「初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーになる。0
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】Xampp ローカルホスト/ダッシュボード
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。