Eloレーティングを更新するには?


7

私はEloレーティングシステムを持つチェスアプリを構築しています。

ゲーム開始時のレーティング、またはゲーム終了時のレーティングに基づいて、プレイヤーのレーティングを更新する方が適切でしょうか?

たとえば、プレーヤーA(1600)はプレーヤーB(1700)と対戦し、ゲームを完了するのに1週間かかりました(通信チェス)。今週、プレーヤーAは他のゲームに勝利し、そのレーティングは1650になりました。プレーヤーBはいくつかのゲームに負け、そのレーティングは1680になりました。これで、プレーヤーAとプレーヤーBの間のゲームは終了します。

次のように評価を更新する必要がありますか?

  1. 1600が1700と対戦した、または
  2. 1650が1680に対して支払われる、または
  3. 他の何か

何がより適切で、なぜですか?

回答:


6

評価とは何かを覚えておいてください。それはプレイヤーの相対的な強さの推定です。評価計算に含める情報が多いほど、精度が高くなり、収束が速くなります。OTBゲームの終わりに、あなたが持っている唯一の新しい情報はそのゲームの結果です。ただし、通信サイトでは、ゲームの進行中の両方のプレーヤーの結果からの情報も入手できます。なぜその情報を使いたくないのですか?

ゲーム開始時のレーティングに基づいてプレーヤーのレーティングを更新するということは、ゲーム開始時のレーティングは、ゲーム終了時のレーティングよりも相対的な強さのより良い推定であると考えることです。つまり、時間の経過とともに評価の精度が低下していると考えているということです。それがあなたが信じていることなら、それらをまったく更新すべきではありません!


一方、ゲームの重要な部分の後で、プレーヤーは大幅に改善することができます。私が1300と評価され、ゲームの冒頭でいくつかのポーンが非常に引き出されて失敗した場合、おそらく8か月後、私は正当に200ポイント強くなり、私の評価はそれを反映しています(一部のゲームがより速く解決したため)。
DM

@DMそれは「一方で」ではなく、まさに私が主張していることです。通信では、ゲームが終了した時点でのプレイヤーの評価に基づいて更新する必要があります。
David Richerby

いいえ、私の意見は、私の見解では、相手の観点から見ると、1500を破ったことで彼は信用を得ているということです。これについては、修正を加えるとエラーが増えるだけです。)
DM

@DMああ、私は今、あなたの言っていることがわかります。フェアポイント。
David Richerby

4

さまざまな理由でオプション2を使用します。おそらく最も重要なのは、オプション1の乱用の可能性です。

USCFまたはFIDEシステムでは、2人のプレーヤーが同じレベルで開始します。彼らは、1人のプレイヤーがポイントの大部分を獲得して、ロングマッチをプレイします。最終的に、評価は敗者が(start-400)と勝者が(start + 400)で安定します。

オプション1のもとでは、2000人のプレイヤーが同様に評価された友人に対して100ゲームを開始し、それらすべてを獲得し、突然、サイトで3000以上の最高評価の人物になります。これにより、特に、サイトの見栄えが悪くなります。負けたプレーヤーは1000未満になりますが、特に1200プレーヤーに対して100ゲームを開始した場合、それらのポイントは簡単に取り戻されます。

オプション2の方がはるかに安定しています。私が知っているすべての主要な通信サイト(chess.com、redhotpawnなど)で使用されています。

編集:その他のシナリオ。1800プレーヤーは800のチャレンジを受け入れます。1か月後、前者の800は1700にあり、1800を打ち切ります。1800が辞任すると、相手の真の力に対して失ったよりも最大を失います。

2000の強さのプレイヤーは、いくつかの黒魔術によって1200の評価を獲得します。彼らは1400に対してたくさんのゲームを開始し、それらすべての近くで勝利します。1400は、そのような悪党に20以上のポイントを失う必要があることで、普遍的に幻滅します。


この動作がサイトで許可されている場合、それは実際のチェスサイトではありません。私のサイトでこの動作を見た場合、私は彼が同じプレーヤーでゲームをプレイする能力を2以下に制限します。それは不正行為です。実際のゲームではありません。
MikhailTal 2014

サイトが十分に大きくなると、このようなことが毎日発生し始めます。手動ポリシングは実行可能なソリューションではありません。
クリーブランド

合計制限。そもそも、サイトがどのようにして同じプレーヤーに対して100ゲームをプレイできるのか、私にはわかりません。
MikhailTal 2014

1
私は友人が悪い評価アルゴリズムを選んだので友人との対戦をさせなかったサイトでかなりイライラするでしょう。
クリーブランド

私もそのサイトにかなり悩まされるでしょうが、同時に100ゲームですか?
MikhailTal 2014

4

どちらも「正しく」ありません。戦略の効果を検討し、アプリに何が適切かを判断する必要があります。個人的には、アプリの人気を常に計画する必要があると思います。人気になると、人々あなたが配置したシステムをゲームにしようとします。したがって、各シナリオでの悪用ケースと、システムが新規ユーザーと既存のユーザーの両方にどのようにサービスするかを検討し、システムのどの要素が最も重要かを決定する必要があります。

もちろん、各システム内には、実際の実装のための幅広いオプションがあります。これは、以下に示されている要因を強化または緩和するのに役立ちますが、それはあなたが尋ねたものではないので、すべてをスキップします。

現状の問題は少し意見に基づいているため、明確に答えることはできないと思うので、ここで行うのは、各システムの主要なポイントのいくつかを説明することだけです。私が言ったように、あなたとあなたのユーザーベースにとって何が重要かを決めるのはあなた次第です。


開始時の評価を使用して計算する

このシステムでは、あなたが見なければならない主な虐待ケースは、ダミーアカウント(またはいくつか)に対して一度に100ゲームを開始し、それらすべてを獲得して評価を上げることです。これはかなり検出可能であり、簡単に設計できます(実際、Eloシステムにはそのような操作に対するいくつかの制限が既に含まれています)が、注意する必要があります。

このシステムの欠点は、新しいプレーヤーの評価が一時的に非常に不安定になり、真の評価に達するまでに時間がかかることです。ほとんどのシステムは、新しいプレーヤーのKファクターを大幅に増やすことでこれにすでに対処しているため、最初の20-50ゲーム程度でレーティングが非常に速く変化します。

一方、より高い暫定的な評価(たとえば1200)を持つ新しいプレーヤーに対して、高い評価(たとえば1900)を持つ確立されたプレーヤーがあるとします。新しいプレーヤーの真の強さが実際に2000+である場合、確立されたプレーヤーは、最新のスコアを使用してスコアを計算した場合よりも多くのポイントを失う可能性があります(1900対1200)。もちろん、新しいプレーヤーが高評価のプレーヤーとのみ対戦している場合は、使用しているシステムに関係なく、誰かが請求書を処理する必要があります。

  • 潜在的な不正行為を簡単に特定
  • 遅い評価の収束

現在の評価を使用して計算する

最近のレーティングシステムでは、主な不正行為のケースは、対戦相手のレーティングのディップまたはスパイクを利用するために、ゲームをドラッグしたり、途中で辞任したりすることです。たとえば、私が負け連勝して真の平均レーティングを下回っている場合、このシステムは実際に、私が勝っていない他のすべてのゲームをすぐに辞任するインセンティブを与えます。評価が既に低くなっているときに一度に辞任することで、評価が回復するまで待っていた場合よりも、今ポイントを上げることができます。あるいは、ゲームの進行中に対戦相手の評価が下がった場合、ゲームをできるだけ長く持続せる強い動機があります勝ち負けに関わらず、リアルタイムで。どちらにせよ、対戦相手のレーティングが回復すると、よりうまくいきます。この種のシステムのゲームは、決定的に検出するのがはるかに困難です。

ただし、他の人が指摘したように、個々の結果はより正確であり、したがって、人々の評価はより速く収束します。また、個人的にはこれは大した問題ではないと思いますが、暫定的な1200が1900でプレイしたゲームの効果を軽減します。私の経験では、確立されたプレイヤーは一時的な評価をあまり気にしません新しいプレイヤーがするように損失。

  • 潜在的な乱用を見つけるのは難しい
  • 評価の収束の高速化

「たとえば、ゲームが終了したときに、適用する評価の変更を計算するのではなく、新しい評価を計算します」これはいいですね 新しい評価を計算することをどのように提案しますか?
クリーブランド

@clevelandもちろん、生の評価を直接実装することはできません。それが全体の問題です。そうしないと、勝ったときにポイントが失われる可能性があります。したがって、代わりに、「生の」エロを使用して、獲得または損失する量を制限したり、悪用の可能性の指標として使用したりすることもできます。私が携帯電話を使用していないときは、答えを少し広げます。
Henry Keiter 14

1
これは間違ったアプローチです。新しいユーザーが大量のゲームを開始できないのはなぜですか?正当な新しいユーザーがたとえば20の同時ゲームを開始した場合、それらのゲームの20日の終わりに評価が変化するのは、彼らが持っている貴重な情報ではなく、デフォルトのレベルであるという偽の仮定に基づいているのはなぜですか? Xを獲得し、最初の19ゲームのYを引きましたか?この方法で評価システムを実行すると、情報が意図的に計算から除外されるため、評価の収束が非常に遅くなります。
David Richerby 2014

そして、あなたの優先順位付けは意味がありません。代案は、確立されたプレーヤーがシステムのあちこちで2、3のポイントでゲームをプレイできるようにすることであるため、新しいプレーヤーの評価を非常に不正確(数十または数百ポイント)にするスキームを推奨しています。また、Eloではゲームに勝ってもポイントを失うことはありません。
David Richerby 2014

@Davidあなたは私の答えの意図を誤解しているようですが、これはおそらく携帯電話に投稿し、私が持っているほど詳細を提供していない私のせいです。今晩、この答えを明確にしようと思います。
Henry Keiter 2014

2

USCFシステムをモデリングしている場合は、シナリオ2を見てください。1680は1680と対戦しました。1953年のレーティングで10週間のリーグトーナメントをプレイしたUSCFレーティングシステムでこれを体験しました。 10週目以降、私のUSCFの評価は、1953年以降の増加を示し、1953年以降の増加はxであり、x => yではありませんでした。


0

最も正しい方法は、開始時の評価を使用することです。どうして?それは彼らが試合を始めることに同意した評価であり、彼らが勝つか負けるかを知っていたので、リスク対報酬を評価した後、彼らはそれを始めることに決めました。だから私は両方のプレイヤーの最初の評価が最良の解決策だと思います。


2
OTOHは、格付けハンティングを思いとどまらせ、チェスを楽しむことを奨励するために、同じ議論が反対の方法で適用される可能性があります。;)
JiK 14

4
格付けはプレイヤー間で取引されるコインではありません。それらはプレイヤーの相対的な強さを測定する試みです。
David Richerby 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.