8 Stimmen

Wie kann ich basierend auf einer variablen Anzahl von Spielen eine faire Gesamtpunktzahl berechnen?

Ich habe ein Spiel, in dem Sie bei jedem Match von -40 bis +40 Punkte erreichen können. Benutzer dürfen beliebig viele Matches spielen. Ich möchte einen Gesamtscore berechnen, der implizit die Anzahl der gespielten Matches berücksichtigt.

Nur den Durchschnitt zu berechnen ist nicht fair. Zum Beispiel, wenn Peter vier Spiele spielt und bei jedem Spiel 40 Punkte erhält, wird er den gleichen Gesamtscore haben wie Janne, der nur ein Spiel mit 40 Punkten gespielt hat.

Das Aufsummieren der Match-Punkte ist auch nicht fair. Peter spielt 2 Spiele (40 Punkte pro Spiel), Gesamtscore 80. Janne spielt 8 Spiele (10 Punkte pro Spiel), Gesamtscore 80.

Gibt es eine (einfache) und faire Möglichkeit, den Gesamtscore zu berechnen? Ich habe von dem Elo & Glicko System für Schachwertungen gelesen, aber beide basieren auf der Spieler-Bewertungsgeschichte und der Bewertung der Gegner.

2voto

dreeves Punkte 25750

Ich empfehle, den Game Score als unteres Ende eines 95%igen Konfidenzintervalls festzulegen. Für eine große Anzahl von Spielen nähert sich Ihr Game Score Ihrem Durchschnittswert an, ist jedoch immer streng kleiner. Es ist wie die Verwendung des Durchschnittswerts, aber mit angemessener Skepsis gegenüber Personen, die nur wenige Spiele gespielt haben und möglicherweise nur Glück hatten.

Andernfalls, wenn Sie die Anzahl der gespielten Spiele, die Summe der Punktzahlen der Person und die Summe der Quadrate ihrer Punktzahlen verfolgen, können Sie den Standardfehler wie folgt berechnen:

SE = sqrt((ss - s^2/n) / (n-1) / n)

Statt sich mit dem 95%-Vertrauensintervall zu beschäftigen, könnten Sie den Game Score einfach wie folgt festlegen:

s/n - SE

Beachten Sie, dass der obige Wert negativ unendlich ist, wenn nur ein Spiel gespielt wurde. Das bedeutet, dass Sie jemandem, der nur ein Spiel gespielt hat, die niedrigstmögliche Punktzahl als seinen Game Score geben würden.

Eine weitere Idee ist es, das Konfidenzintervall bei der Bewertung von Personen explizit anzuzeigen (sortiert nach dem unteren Ende). Dann würden die Leute mehr spielen, um ihr CI zu verkleinern sowie ihren Durchschnitt zu erhöhen.

Zum Schluss könnte es sinnvoll sein, neuere Spiele stärker zu gewichten, damit ein isoliert schlechtes Spiel schneller an Bedeutung verliert. Der Weg, dies zu tun, besteht darin, einen Diskontierungsfaktor d größer als 1 auszuwählen und dem i-ten Spiel ein Gewicht von d^(i-1) zu geben. (Obwohl ich dann nicht mehr sicher bin, wie die Idee des Konfidenzintervalls anzuwenden ist.)

PS: Ich habe diese Idee hier erweitert: Wie berechnet man den Durchschnitt basierend auf der Anzahl der Stimmen/Punkte/Stichproben usw.?

1voto

Machen Sie die Formel nicht-linear in Bezug auf die Anzahl der Spiele.

Sei G die Anzahl der Spiele und S die Summe aller Spielpunkte, dann gilt: Gesamtpunktzahl = G^2 * S

Spielen Sie damit herum, bis Sie etwas finden, das logisch erscheint.

1voto

schnaader Punkte 47961

Sie könnten nach Gewinnserien suchen und Bonuspunkte für aufeinanderfolgende Gewinne vergeben (+5, +10, +15...), sodass (-10,+10,+10,+10,-10,+10) (-10,+10,+15,+20,-10,+10) ergeben würde. Sie können dies auch tun, ohne sich um Serien zu kümmern, was (-10,+10,+15,+20,-10,+25) ergeben würde.

Eine andere Möglichkeit wäre, den Bonuswert am Anfang auf 0 zu setzen und ihn um 5 zu verringern, wenn der Spieler verliert, und um 5 zu erhöhen, wenn der Spieler gewinnt.

1voto

Steve Jessop Punkte 264569

Sie könnten den Punktestand auf den Durchschnitt der besten 10 Spiele des Spielers aus den letzten 30 (oder anderen Zahlen - vielleicht passen Ihnen nur die letzten 10 Spiele).

Spieler, die noch keine 10 Spiele gespielt haben, könnten den Durchschnitt der gespielten Spiele nehmen, aber dann zum Ausgleich für die Tatsache, dass der Durchschnitt von n < 10 eine höhere Standardabweichung als der Durchschnitt von 10 hat, gegen 0 gewichten. Bin mir nicht sicher, wie hoch der Skalierungsfaktor für jedes n sein sollte, aber wenn Sie einige Vergangenheitsdaten haben, können Sie herausfinden, wie variabel die Punkte von typischen Spielern sind und von dort aus arbeiten.

Oder ermitteln Sie den globalen Durchschnittspunkt pro Spiel (vielleicht 0) und fügen Sie (10-n) Fake-Punkte in dieser Höhe hinzu, wenn Sie den Punktestand für einen Spieler mit weniger als 10 Spielen berechnen.

1voto

Harald Scheirich Punkte 9506

Ein weiterer Ausgangspunkt könnte der Wikipedia-Artikel zum ELO Schachwertungssystem sein

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X