Thema: Frage: Mm5 nur 1575 ELO ??
Einzelnen Beitrag anzeigen
  #29  
Alt 28.06.2017, 17:39
Benutzerbild von Chessguru
Chessguru Chessguru ist offline
Administrator
 
Registriert seit: 29.06.2004
Ort: Rostock
Alter: 55
Land:
Beiträge: 6.489
Abgegebene Danke: 1.612
Erhielt 4.633 Danke für 1.388 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
8/20 20/20
Heute Beiträge
0/3 sssss6489
AW: Mm5 nur 1575 ELO ??

Hallo Karl,

 Zitat von borromeus Beitrag anzeigen
Wie kann man den Startwert definieren? Mag es eine Wissenlücke sein, Entschuldigung, aber ich weiss das definitiv nicht.
du brauchst dich doch nicht für deine Frage zu entschuldigen.

Ich benutze für die Berechnung der Elo Listen das Programm EloStat. Ich weiß, ist nicht die beste Lösung. Der Grund ist, wie schon erwähnt, Vergleichbarkeit mit der SSDF. Deren damals benutztes Rating Programm basierte auf dem gleichen Algorithmus.

 Zitat von Wolfgang2 Beitrag anzeigen
P.S. Micha, ich erinnere mich noch dunkel daran, dass Du hier im forum mal drei - nach verschiedenen Algorithmen berechnete - Listen vorgestellt hast.
So weit ich mich erinnere, hat es immer irgend wo gehakt. Entweder waren die starken Geräte zu hoch bewertet, oder die schwachen zu niedrig.
s.h. dazu:

und im Vergleich

bzw. Tests mit EloStat im Vergleich zu Bayeselo und Ordo:
Zitieren:
Kann man ein paar Geräte als Referenz angeben?
Ist es daher möglich mit zB 10 Geräten und zB 100 Partien Menschen - Computer diese 10 Geräte als Referenz der Berechnung zu definieren?
Wenn du dir die obigen Beispiele ansiehst, erkennst du vielleicht das Problem. Man kann leider keine Gewichtung vornehmen, alle Partien werden als ein großes Ganzes, als ein großes Turnier gesehen und berechnet. Ändert man den Startwert, bezieht sich diese Änderung auf alle Geräte.

Da haben wir vielleicht bisher aneinander vorbei geredet. Du bist vermutlich davon ausgegangen, dass man entsprechende Gewichtungen einzelner Geräte vornehmen kann, richtig?

Ich versuche mal eine einfache Erklärung des Elo Systems. Bei der Berechnung einer Elo Zahl geht man von folgender Hypothese aus. Die Verteilung der Spielstärke in der Gesamtheit der Spieler entspricht mathematisch der Gaußschen Glockenkurve (Wahrscheinlichkeitstheorie). Nach dieser Hypothese lässt sich für 2 Gegner statistisch voraussagen, mit welcher Wahrscheinlichkeit der eine Spieler gewinnen müsste (s.h. https://www.schachcomputer.info/html...erwartung.html). Somit kann man bei vielen Partien oder einem Turnier anhand der Wertungszahlen eines Spielers und des Durchschnitts der Wertungszahlen seiner Gegner voraussagen, wie viele Punkte er theoretisch erreichen wird. Wenn die Partien/Turniere gespielt sind, kann man so das erreichte Ergebnis mit dem statistisch Erreichbaren vergleichen und aus der Abweichung die neue Wertungs- oder Elo-Zahl berechnen. Wie das geht, kannst du auch auf unseren Seiten nachlesen.


Schachcomputer haben eine gleichbleibende Spielstärke, dass ist der entscheidende Unterschied! Weiterhin betrachten wir alle Partien als ein Ganzes! Somit können wir auf das Programm EloStat zurückgreifen. Ich zitiere mal aus der Anleitung von EloStat, da Frank Schubert es aus meiner Sicht sehr anschaulich erläutert hat.

"ELOStat verwendet das Iterationsverfahren nach Thompson. Bei diesem Verfahren wird allen Programmen zu Beginn der gleiche Elostartwert zugeordnet (evtl. im PGN-Header angegebene Elozahlen bleiben also unberücksichtigt!). Danach wird die gesamte Datenbank wie ein einziges großes Turnier behandelt und elomäßig ausgewertet. Die somit ermittelten Elozahlen werden anschließend den Programmen zugewiesen, d.h. sie ersetzen den anfänglichen Elostartwert. Mit den nunmehr aktualisierten Elozahlen wird erneut eine Datenbankauswertung gestartet. Dieses Vorgehen wird solange wiederholt, bis die Elozahlen aller Programme nahezu konstant bleiben (man sagt, die Elozahlen konvergieren gegen einen bestimmten Grenzwert).
Der Elostartwert hat keinen Einfluss auf die relativen Spielstärkeunterschiede der Programme, d.h. der Eloabstand zwischen den Programmen ist unabhängig vom Startwert."

"Die Leistungsfähigkeit des oben beschriebenen Iterationsalgorithmus beruht u.a. darauf, dass zwischen zwei Programmen A und C ein indirekter Spielstärkebezug hergestellt werden kann, selbst wenn A und C nie direkt gegeneinander gespielt haben. Hat z.B. das Programm A mehrere Partien gegen B gespielt und B wiederum einige Partien gegen C, so reicht dies aus, um die Elozahlen aller drei beteiligten Programme im Sinne des Iterationsverfahrens konvergieren zu lassen. A, B, und C bilden somit einen zusammenhängenden Cluster. Die im Beispiel behandelte Datenbank ‘wb_elo.pgn’ besteht aus einem einzelnen Cluster, d.h. geht man von einem beliebigen Programm aus, so lässt sich zu JEDEM anderen Programm der Datenbank ein Spielstärkebezug im obigen Sinne ableiten. Jede gute Datenbank sollte daher aus einem einzelnen Programmcluster bestehen und somit unfragmentiert sein (im Idealfall hat jeder gegen jeden gespielt).
Spielt man allerdings mit zahlreichen Programmen, so kann es passieren, daß die Datenbank unbemerkt fragmentiert, d.h. in einzelne unabhängige Cluster zerfällt, zwischen denen kein Spielstärkebezug mehr existiert. Dieser Fall tritt z.B. dann ein, wenn man zu den Programmen A,B,C drei weitere Programme D,E,F, hinzufügen würde, die zwar jeweils unmittelbar gegeneinander spielen (also etwa D-E, D-F, E-F), aber keine einzige Partie gegen die anderen Programme austragen. In diesem Fall handelt es sich streng genommen nicht um eine einzige, sondern um zwei voneinander unabhängige Datenbestände. Bei der Eloberechnung laufen somit zwei ebenfalls unabhängige Iterationsverfahren ab und die ermittelten Elozahlen in beiden Clustern haben keinen Bezug mehr zueinander. ELOStat erkennt solche fragmentierten Datenbanken und zeigt in der Datei ‘cluster.dat’ die einzelnen Programme sowie die Anzahl der gespielten Partien je Cluster an."


"In der Datei ‘cluster.dat’ wird zusätzlich der Wert des sog. Iterationsoffsets angegeben. Hierbei handelt es sich um eine Eigenart des Iterationsverfahrens, die für praktische Zwecke meist ohne Belang ist. Sie sei hier trotzdem kurz erläutert: Um die Konvergenz des Iterationsverfahrens sicherzustellen, muss gewährleistet sein, dass der mit der Anzahl der gespielten Partien je Programm gewichtete Mittelwert aller Elozahlen nach jedem Iterationsschritt exakt gleich dem Elostartwert ist. Aufgrund des nichtlinearen Zusammenhangs zwischen der relativen Performance eines Programms (in Prozent) und seiner Elozahl (genauer Elodifferenz) kommt es zu einem konstanten Offset, der bei jedem Iterationsschritt hinzuaddiert werden muß, um die oben erwähnte Konstanz des Elomittelwerts sicherzustellen. Dieser Offset führt in der Rangliste dazu, dass sich der angegebene Wert für Av.Op. von dem tatsächlichen Wert, den man aus den Elomittelwerten der ersten Spalte erhält, um genau diesen Wert ‘itoffset’ voneinander unterscheidet. Anders ausgedrückt fällt der Elowert eines Programms in der Rangliste immer um genau itoffset größer aus, als es aufgrund seiner Performance und seines Av.Op.-Wertes zu erwarten wäre. Dieser systematische Offset betrifft aber jedes in der Rangliste aufgeführte Programm gleichermaßen, so daß die Eloabstände zwischen den Programmen und somit die relativen Spielstärken davon unbeeinflußt bleiben. Der Wert von itoffset ist in den meisten Fällen kleiner als 1 Elopunkt (s.o.), kann in Sonderfällen aber durchaus auch mehr als 50 Elopunkte betragen."

"Der Elowert eines Zweikampfergebnisses von 100 % bzw. 0 % bleibt nach der Theorie zwangsläufig unbestimmt. Aus rechentechnischen Gründen (u.a. um die korrekte Durchführung des Iterationsverfahrens in den Programmmodi 1 und 2 sicherzustellen) wird den beteiligten Programmen trotzdem eine endliche Elozahl zugewiesen, die um 600 Punkte oberhalb bzw. unterhalb des Av.Op. Elowertes liegt. Mit anderen Worten: ELOStat berücksichtigt keine Elounterschiede, die größer als ± 600 Punkte sind (die 95%-Fehlergrenzen können daher maximal ± 1200 Elopunkte betragen). Für alle praktisch relevanten Datenbanken spielen diese Sonderfälle aber im Grunde keine Rolle."

Jetzt bitte genau lesen, denn dieser Punkt ist wichtig.

"Das Iterationsverfahren setzt zwingend voraus, dass die mittlere Spielstärke eines Programms in jeder Partie dieselbe bleibt. Diese Näherung ist für Schachprograme derzeit sicherlich gut erfüllt, sofern kein extensives Buchlernen gegen ein und denselben Gegner erfolgt (andere Lernalgorithmen spielen meiner Erfahrung nach in der Praxis derzeit keine wesentliche Rolle). Für menschliche Datenbanken ist dieses Vorgehen aber problematisch, da menschliche Spieler sich im Laufe der Zeit deutlich steigern können (um Hunderte von Elopunkten), so dass die mittlere Spielstärke in der Regel von Partie zu Partie zunimmt. Die Auswertung historischer Datenbanken mit dem Iterationsverfahren stellt daher zwar eine äußerst reizvolle Sache dar, hat aber aus obigen Gründen nur eine bedingte Aussagekraft. Bei menschlichen Spielern sollte daher nach Möglichkeit des Elosystem der FIDE verwendet werden."

Bei neueren Programmen zur Berechnung, finden weitere Kriterien Einzug. Kann man auf den entsprechenden Seiten nachlesen, z.B. Gewichtung von Remisen, Weiß und Schwarz, tralala. Das Problem bleibt aber bestehen. Besonders bei unseren sehr schwachen Geräten. Unten wird die Nummer zu dünn und oben zu dick - s.h. Beispiele. Lösung? Keine!

Und da hilft es auch nichts, etwas von 350 Elo in den Wald zu brüllen.

Gruß
Micha

Geändert von Chessguru (28.06.2017 um 17:45 Uhr)
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu Chessguru für den nützlichen Beitrag:
Egbert (28.06.2017), Oberstratege (28.06.2017), RetroComp (28.06.2017)