Calcul de variation de Elo
3 participants
Page 1 sur 1
Calcul de variation de Elo
Calcul de Elo:
Pour ceux qui aiment faire clignoter leurs neurones, voici un problème que j'ai lors d'un calcul de variation de Elo. Je me base sur
En utilisant ma méthode de calcul, voici les résultats :
Comme on peut le voir, ça se joue à pas grand chose, sauf pour le dernier joueur. Si je considère que le joueur avait moins de 100 parties avant de commencer le tournoi, j'arrive à une variation de -4. Mais voilà, en reregardant le nombre de parties cumulées, il en avait 119 ! (pour rappel quand on a moins de 100 parties, on a un bonus de Elo). C'est déjà arrivé à qqn ?
Voici mon code en Python pour ceux que ça intéresse:
def compute_var(res,tr,opr):
if tr >= 2240 : k=16
if (tr >= 1920) and (tr < 2240): k=20
if (tr >= 1560) and (tr < 1920): k=24
if (tr >= 1280) and (tr < 1560): k=28
if (tr >= 1040) and (tr < 1280): k=32
if (tr >= 720) and (tr < 1040): k=36
if tr < 720: k=40
d1 = k * (res - 1.0/(1.0+10.0**((opr - tr)/400.0)))
d2 = k * (opr - tr)/160.0
if (res == 1) and (d2 > d1):
d=d2
else:
d=d1
return d
# La matrice de résultats de la grille
Mat_resul = [[1695,1759,1483,1263,1001,979],
['4+','3+','2-','1-','6+','5-'],
['2+','1-','6+','5+','4-','3-'],
['3+','5+','1-','6+','2-','4-'],
['5+','6+','4+','3-','1-','2-'],
['6+','4+','5+','2-','3-','1-']]
# la matrice de nombre de parties jouées par les joueurs au début du tournoi
Mat_nb_scr = [321,493,297,126,11,119]
# La matrice de variation de Elo, tour par tour
Mat_elo = [[1695,1759,1483,1263,1001,979], [0,0,0,0,0,0], [0,0,0,0,0,0], [0,0,0,0,0,0], [0,0,0,0,0,0], [0,0,0,0,0,0]]
for r in range(1,len(Mat_resul)):
for i in range(0,len(Mat_resul[0])):
tr = Mat_elo[r-1][i]
res = Mat_resul[r][i]
res = res[-1]
if res == '+': res = 1
if res == '-': res = 0
if res == '=': res = 0.5
opponent = Mat_resul[r][i]
opponent = int(opponent[:-1])
opr = Mat_elo[r-1][opponent-1]
if opr < 400:
opr = 400
if Mat_nb_scr[i]<100:
bonus = (1800.0-tr)/200.0
else:
bonus = 0
Mat_nb_scr[i] += 1 # mise à jour du nombre de parties
Mat_elo[r][i]=compute_var(res,tr,opr)+tr+bonus # Mise à jour de la case de résultats
Mat_elo.append([])
for i in range(0,len(Mat_elo[0])):
Mat_elo[-1].append(round(Mat_elo[-2][i])) # ajout de la valeur arrondie
Mat_elo.append([])
for i in range(0,len(Mat_elo[0])):
Mat_elo[-1].append(Mat_elo[-2][i]-Mat_elo[0][i]) # ajout de la variation de Elo
Pour ceux qui aiment faire clignoter leurs neurones, voici un problème que j'ai lors d'un calcul de variation de Elo. Je me base sur
One day Shogi tournament in Kiev 2016-01-31
http://www.shogi.net/fesa/index.php?mid=4&dateid=Spring+2016&tournamentid=One+day+Shogi+tournament+in+KievEn utilisant ma méthode de calcul, voici les résultats :
Elo init | R1 | R2 | R3 | R4 | R5 | Rounded | Elo +/- |
1695 | 1696.84294 | 1711.10302 | 1716.11277 | 1716.54594 | 1716.8413 | 1717 | 22 |
1759 | 1763.06932 | 1748.80925 | 1749.16239 | 1749.40822 | 1750.79198 | 1751 | -8 |
1483 | 1478.25246 | 1479.61756 | 1473.77284 | 1480.43864 | 1482.33671 | 1482 | -1 |
1263 | 1260.54274 | 1267.00599 | 1271.68302 | 1264.06497 | 1262.21995 | 1262 | -1 |
1001 | 1021.85674 | 1018.47631 | 1021.85422 | 1025.0952 | 1026.52934 | 1027 | 26 |
979 | 962.138259 | 960.383126 | 955.121461 | 954.752714 | 954.309675 | 954 | -25 |
Voici mon code en Python pour ceux que ça intéresse:
def compute_var(res,tr,opr):
if tr >= 2240 : k=16
if (tr >= 1920) and (tr < 2240): k=20
if (tr >= 1560) and (tr < 1920): k=24
if (tr >= 1280) and (tr < 1560): k=28
if (tr >= 1040) and (tr < 1280): k=32
if (tr >= 720) and (tr < 1040): k=36
if tr < 720: k=40
d1 = k * (res - 1.0/(1.0+10.0**((opr - tr)/400.0)))
d2 = k * (opr - tr)/160.0
if (res == 1) and (d2 > d1):
d=d2
else:
d=d1
return d
# La matrice de résultats de la grille
Mat_resul = [[1695,1759,1483,1263,1001,979],
['4+','3+','2-','1-','6+','5-'],
['2+','1-','6+','5+','4-','3-'],
['3+','5+','1-','6+','2-','4-'],
['5+','6+','4+','3-','1-','2-'],
['6+','4+','5+','2-','3-','1-']]
# la matrice de nombre de parties jouées par les joueurs au début du tournoi
Mat_nb_scr = [321,493,297,126,11,119]
# La matrice de variation de Elo, tour par tour
Mat_elo = [[1695,1759,1483,1263,1001,979], [0,0,0,0,0,0], [0,0,0,0,0,0], [0,0,0,0,0,0], [0,0,0,0,0,0], [0,0,0,0,0,0]]
for r in range(1,len(Mat_resul)):
for i in range(0,len(Mat_resul[0])):
tr = Mat_elo[r-1][i]
res = Mat_resul[r][i]
res = res[-1]
if res == '+': res = 1
if res == '-': res = 0
if res == '=': res = 0.5
opponent = Mat_resul[r][i]
opponent = int(opponent[:-1])
opr = Mat_elo[r-1][opponent-1]
if opr < 400:
opr = 400
if Mat_nb_scr[i]<100:
bonus = (1800.0-tr)/200.0
else:
bonus = 0
Mat_nb_scr[i] += 1 # mise à jour du nombre de parties
Mat_elo[r][i]=compute_var(res,tr,opr)+tr+bonus # Mise à jour de la case de résultats
Mat_elo.append([])
for i in range(0,len(Mat_elo[0])):
Mat_elo[-1].append(round(Mat_elo[-2][i])) # ajout de la valeur arrondie
Mat_elo.append([])
for i in range(0,len(Mat_elo[0])):
Mat_elo[-1].append(Mat_elo[-2][i]-Mat_elo[0][i]) # ajout de la variation de Elo
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 39
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul de variation de Elo
As-tu envisagé de poser la question à Carl Johan Nilsson, le resp ELO, et Andreas Neumaier, le webmaster de la FESA?
Comme je sais qu'ils sont en train de chercher une solution pour proposer une interface web au système de calcul ELO, j'imagine qu'ils se sont eux-aussi confrontés au code?
Comme je sais qu'ils sont en train de chercher une solution pour proposer une interface web au système de calcul ELO, j'imagine qu'ils se sont eux-aussi confrontés au code?
_________________
Fédération Française de Shogi (http://www.shogi.fr)
Association Shogi d'Alsace (https://shogialsace.wordpress.com/)
Re: Calcul de variation de Elo
Je veux bien discuter avec eux, mais il y a peut être des gens ici qui se sont déjà cassé les dents dessus. Sais tu si ils ont une place forum pour en parler?
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 39
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul de variation de Elo
Bonjour,
Pour le nombre de parties cumulées ouvrant droit à un bonus, sauf erreur de ma part :
- les parties des premiers tournois du joueur (jusqu'à ce qu'il dépasse 18 parties) sont prises en compte d'une manière complétement différente (calcul global du ELO en fonction des performances dans ces tournois, pas de calcul de variation ELO pour chaque partie)
- seules les parties suivantes bénéficient du bonus ELO jusqu'à hauteur des 100 premières parties
Ceci explique peut-être le phénomène que tu as rencontré dans ce cas particulier...
Pour le nombre de parties cumulées ouvrant droit à un bonus, sauf erreur de ma part :
- les parties des premiers tournois du joueur (jusqu'à ce qu'il dépasse 18 parties) sont prises en compte d'une manière complétement différente (calcul global du ELO en fonction des performances dans ces tournois, pas de calcul de variation ELO pour chaque partie)
- seules les parties suivantes bénéficient du bonus ELO jusqu'à hauteur des 100 premières parties
Ceci explique peut-être le phénomène que tu as rencontré dans ce cas particulier...
christophew- Général d'Or
- Nombre de messages : 374
Date d'inscription : 14/12/2006
Re: Calcul de variation de Elo
Avec la fermeture de 81 square universe, je pense qu'ils n'ont plus de plateforme de ce type à leur disposition.Lelorrain a écrit:Sais tu si ils ont une place forum pour en parler?
Mais j'ai leurs adresses mail. Je te les envoie en privé et tu vois ce que tu en fais.
_________________
Fédération Française de Shogi (http://www.shogi.fr)
Association Shogi d'Alsace (https://shogialsace.wordpress.com/)
Sujets similaires
» Calcul du elo
» Calcul du Elo
» bonification Wiel dans le calcul du Elo
» Comment faire un Calcul de Elo sans rien n'y connaitre
» Calcul du Elo
» bonification Wiel dans le calcul du Elo
» Comment faire un Calcul de Elo sans rien n'y connaitre
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Hier à 23:32 par Fritz Bobun
» MEIJINSEN 2024
Jeu 9 Mai 2024 - 11:39 par Fritz Bobun
» 2024 04 13 et 14 du shôgi à Geek Legends
Mar 7 Mai 2024 - 14:53 par Fritz Bobun
» 2024 04 28 : un maître d'échecs avec SDL
Mar 30 Avr 2024 - 9:59 par Fritz Bobun
» Championnat de france à Angers
Sam 27 Avr 2024 - 9:55 par kire
» Le plus jeune vainqueur du Tournoi des Candidats
Lun 22 Avr 2024 - 16:35 par jpages
» 2024 04 12 : vie du club
Jeu 18 Avr 2024 - 11:20 par Fritz Bobun
» 2024 03 29 - Obata and Co
Mer 10 Avr 2024 - 10:11 par Fritz Bobun
» 23 et 24 mars 2024 : open de Bruxelles
Mer 10 Avr 2024 - 9:48 par Fritz Bobun