将棋倶楽部24でレーティング計算は次のようになっています。
対局者の対局前のレーティングをRa,Rbとして、レーティング移動量は
△R = 16 + (Rb – Ra)×0.04
とする。※ ただし△Rは小数点以下を四捨五入するものとして△Rが1未満のときは1、31を超えるときは31とする。
これはElo ratingの簡易な計算式で、オンライン対局サイトではこの式がよく使われます。
レーティングが400近く離れると勝っても1増えるだけで、負けると31も減る。レーティング差400は32回に1回勝つぐらいの勝率(3.125%)だというわけですが、実際はもう少し勝てます。
だから、ここは線形ではなく、ロジスティック分布に従うほうが自然だと考えられます。
引用元 : バックギャモンサーバーのレート計算方法について
しかし、実運用上、将棋倶楽部24のレーティング計算方法でもそれほど誤差があるわけでもなさそうです。レーティングが自分より400近く下回る相手からの挑戦は拒否するからというのもあるのかも知れません。
マッチングが自動化されている将棋ウォーズなんかではきちんとやらないとまずい気がしなくもないですが、将棋ウォーズでどうやってるのかはよく知りません。あれぐらい会員数がいればそこまでレーティングの離れた相手とマッチングさせることもないでしょうから、簡易計算でも問題にならないのかも知れません。
そもそも、7割勝つ相手(レーティング差150程度)に7割勝つのは、レーティング計算上、その差は300ということになりますが、レーティング差300の相手との勝率は実際にどれくらいになるのかは、ゲームによって違う値になります。
このへん、厳密にやるなら統計値を出してそれに合わせてレーティング移動量を調整すべきですが、厳密にやらなくても同じぐらいのレーティングの相手としかマッチングしないのであればそれほどおかしい値にもならないので実運用上は問題ないと考えられます。
結論的には、「まあええやん、少しぐらいレーティングの値おかしくても誰か死ぬわけでもないし」ということで。
AさんBさんCさんがいて、AさんBさんだとAさんが6割勝つ
BさんCさんだとBさんが6割勝つ、この状態でAさんCさん戦ったらどういう勝率になるの、って話で、線形で考えたら、7割3割になるって考え方ですよね。
違うのかな。
ここの根本が違和感わきまくりなんだけど、「じゃああなたは勝率何割になると思うの」と聞かれると答えらえない・・・・
ここはそんなものなのかな
> 「じゃああなたは勝率何割になると思うの」と聞かれると答えらえない・・・・
当然ながらゲームの性質ごとに違った数字になると思うのですが、将棋の場合いくらぐらいになるのかは将棋倶楽部24の過去データなどで統計取ったほうがいいんでしょうね…。
レーティングが本当に間隔尺度かってことですよね。順序尺度であることは間違いないにせよ、同じ⊿RがRに依らず同じという仮定は一般的には成り立たないのでしょう。
レーティング順がA<B<Cで、BがAに勝率7割、CがBに勝率7割でその間の⊿Rが300になるように定義したとしても、A-B間の統計的な⊿Rが不変になるように定義した式ではB-C間の⊿Rは一般的には不変にならないでしょうし、A-C間の勝率も⊿R=600から予想されるものとは厳密には異なるはず。
だからといって、A-C間を基準にしてはA-B間, B-C間の整合性がry
結局のところ、実際的に精密なものはRはもちろんルール(時間、切れ負けの有無等)の関数となるから、PPPさんがおっしゃっているように、線形補完が聞く程度に粒度の細かいテーブルを将棋倶楽部24の過去データから生成するのに一票です。
7割勝ち越しのレーティング差は150でした(/ω\)
ですねぇ
今どきは正しいロジックの作成なんぞ考えずにデータ取って解析にぶち込んで関数かテーブルを生成するんでしょうか
バイト単位で削っていた時代ならともかく、今どきのサーバサイドなら変換テーブル+線形補間なら問題ないですよね
単純にエンジニアの好みの問題だと思います
こういうところが気になって詰めないと気がすまない人がいるかどうかというところだとおもいます
だれかまじめに調査して論文書いてくれればそれをみんなが使うようになるとは思うんですけど
いや、ほんまそうですわ。