15.07.24 - 16:0015.07.2024 - 16:00·m minutos de leitura·
Por Antonio Pellini
Sheep Stats : introduction aux scores de joueurs
Sheep Esports et Sheep Stats introduisent leurs "scores de joueurs". Retrouvez dans cet article la méthode scientifique utilisées pour calculer ces scores.
🇫🇷Français
Compartilhar

Retrouvez le détail de la méthodologie utilisée pour calculer les scores
Loading...
Dans l’objectif d’évaluer les performances des joueurs sur une série de matchs donnés (appelé BO par la suite), Sheep Stats et Sheep Esports introduisent un nouveau système de scoring mesurant cette dite performance. Cet article, plus scientifique, a pour but d’expliquer la mesure de cette évaluation afin d'être totalement transparent sur la méthode utilisée.
L’article sera construit en deux parties. Dans un premier temps, nous expliquerons d’une manière neutre la méthode utilisée, argumentant par de la théorie et des exemples concrets. Dans un second temps, des critiques seront émises sur cette même méthode dans une recherche d’amélioration et d’esprit critique.
Méthode utilisée
Avant-propos : définition du coefficient de Pearson.
Le coefficient de corrélation de Pearson examine la relation entre deux variables et détermine l'influence de l'une sur l'autre (définition Voxco). Sa formule générale est donnée comme suit :
Coefficient de Pearson
Le coefficient r variant ainsi entre 1 et -1, la valeur de ce dernier rend compte d’une corrélation plus ou moins forte, en accord avec l’échelle ci-dessous :
Interprétation du Coefficient de Pearson
Dans les faits ce coefficient ne nous indique qu’une dépendance linéaire entre les deux variables. Même s’il est proche de 0, il peut tout de même y avoir une corrélation d’un autre type. On testera donc également le coefficient de corrélation de Spearman, qui lui rend compte d’une potentielle corrélation monotone entre les deux variables, basé sur le rang de ces variables.
Afin d’attribuer une note à nos joueurs, 11 métriques principales nous serviront de base :
Métriques utilisées
Nous avons délibérément choisi de nous baser sur ces métriques, ces dernières n’étant aucunement ou très peu corrélées à la durée d’une partie. Si pour les métriques à 14 minutes ce postulat semble immédiat, il peut être plus nuancé pour les autres.
En effet, nous pourrions penser de manière générale que certaines métriques pourraient augmenter et dépendre du temps de la partie (le KP% ou le damage/gold par exemple). Cependant, nous nous sommes assurés au préalable de l’indépendance de chaque métrique avec la durée d’une partie, en calculant le coefficient de corrélation de Pearson entre ces deux éléments. Dans la totalité des cas, le coefficient révèle une très faible corrélation (<0.3 au maximum), ce qui nous conforte dans le choix de nos métriques et permet de conclure sur leurs indépendances avec la durée d’une partie.
De plus, l'utilisation du coefficient de corrélation de Spearman nous indique bien une non corrélation monotone.
Le calcul et la prise en compte de chacune de ces métriques est un idéal à atteindre. Cependant, en nous confrontant aux limites techniques et aux complexités du jeu, certaines métriques peuvent se retrouver absentes du calcul. D’un côté technique d’abord, certaines ligues ne nous permettent pas un accès complet à toutes les statistiques d’une partie.
Concernant la complexité du jeu, il est par exemple évident que nous ne pouvons prendre en compte la métrique “CC/min” d’un joueur si le kit de sorts du champion ne comprend pas de CC.
Considérant ces difficultés, nous assurons tout de même, au minimum, 7 métriques prises en compte dans notre algorithme :
Métriques systématiquement utilisées
Considérant chaque match d'un BO
Dans cette approche, nous comparerons chaque métrique de nos joueurs à celles des joueurs du même rôle et ayant joué le même champion. (Ainsi cela regroupe tous les matchs des 4 dernières années, pour les ligues LFL, LVP, LCS, LEC, LCK, LPL, MSI et Worlds).
Inévitablement, la taille de notre échantillon de comparaison est fortement dépendante de la popularité du champion joué. C’est pourquoi nous avons décidé de prendre cela en compte par la suite.
Une fois notre échantillon déterminé, nous voulons trouver la loi de probabilité liée à celui-ci.
Nous allons donc utiliser un fitter afin de trouver la meilleure distribution possible. Les distributions testées sont les suivantes : gamma, lognorm, beta, burr, norm.
Ainsi pour chaque échantillon nous avons ces 5 lois qui seront testées, celle ayant l’erreur la plus petite sera celle utilisée. L’erreur calculée est la somme des carrés.
Distributions proches de notre échantillon
Ici nous avons donc la loi gamma qui est celle qui correspond le mieux à la distribution de notre échantillon de données.
Nous allons donc nous baser sur la distribution de cette loi en particulier afin d’établir des notes. Prenons en exemple la loi normale centrée réduite :
Loi normale centrée réduite
Ici, nous souhaitons obtenir la fonction de distribution cumulative (CDF), qui indique le pourcentage d'échantillons inférieurs à un score donné dans la distribution. Autrement dit on peut traduire ceci par “Ce score est meilleur que 60% de l’échantillon”. C’est à partir de cela que nous allons établir un score. Imaginons une valeur de CDF de 80%, alors nous donnerons au joueur la note de 8/10 pour cette métrique.
Prenons en exemple le cas de Caps, qui aurait joué Orianna. Supposons que nous nous basions sur un échantillon de comparaison de 1 000 matchs avec un midlaner jouant Orianna. Admettons que cet échantillon suit une loi normale telle que moyenne = 600, écart-type =200. Si Caps a 600 DMG/min alors, Caps aura une note sur cette métrique de 5/10. Ce schéma est répété pour toutes les métriques.
Nous aimerions cependant revenir sur certains points importants. Dans un premier temps, notre échantillon peut être soumis à un drift/shift au cours du temps. Concrètement, si un Draven se fait buff sur ses dégâts, cela implique directement que les joueurs qui joueront Draven auront des notes supérieures à ce qu'elles devraient être.
Un joueur qui a 800 DMG/min avec Draven devra être noté légèrement en dessous de sa note étant donné que ces 800 DMG/min s’expliquent par sa performance mais aussi par le buff du champion.
Dans un second temps, il faut restreindre notre échantillon pour les champions comme Senna et ses supports. Concrètement Senna peut farm ou ne pas farm, on doit donc la comparer uniquement aux Senna ayant fait le même choix. Pour définir si Senna farm ou non, on compare simplement ses CS/min à ceux de son Support. Voici un exemple de l’échantillon de Senna ADC sur les CS/min avant la modification, une loi de mélange caractérise ceci :
CS/MIN des Senna ADC
On distingue alors parfaitement les différents cas. A gauche, nous avons le cas des Senna ADC qui ne farment pas, à droite celles qui farment.
Voici ce que l’on obtient en appliquant le filtre séparant les deux cas :
Senna ADC qui ne farment pas
Dernièrement, dans certains cas l’échantillon est trop faible pour donner une loi de distribution fiable, ou pire, l’échantillon ne suit aucune loi de distribution usuelle (phénomène rare).
Ainsi, il faut trouver une alternative. Nous avons donc défini un seuil d’erreur de la loi tel que si l’erreur est supérieure à ce seuil, on ne se base pas sur la loi mais sur le classement du joueur sur le total d’échantillon. Ceci nous donne un ratio entre 0 et 1 que l’on multiplie par 10 pour nous donner une note.
C’est un choix qui a été fait car plus bas, on compensera ceci par un diviseur atténuateur.
Nous sommes donc en bonne voie pour obtenir une première note. Cependant, des éléments de contexte doivent nécessairement être pris en compte pour ajuster aux mieux nos notes, et les rapprocher le plus possible de la réalité et du sentiment des spectateurs.
Nous nous poserons alors certaines questions primordiales :
- Le joueur a-t-il gagné la partie ?
- Combien de temps a duré la partie ?
- Le joueur a-t-il été innovant dans son choix de champion ?
Pour prendre en compte ces éléments de contexte, nous allons introduire un diviseur atténuateur noté d. On initialise la valeur de d à 1, soit d=1.
Nous ajustons ensuite la valeur de cet atténuateur comme suit, en fonction des réponses aux questions précédentes :
- Si la durée du match est inférieure à 25 min :
- Si l’équipe du joueur a gagné :
- Si le joueur a joué un champion peu joué (-100 échantillons) : d+=0.3
- Sinon : d+=0.25
- Sinon :
- Si le joueur a joué un champion peu joué (-100 échantillons) : d+=0.05
- Sinon : d+=0
- Si l’équipe du joueur a gagné :
- Sinon :
- Si l’équipe du joueur a gagné :
- Si le joueur a joué un champion peu joué (-100 échantillons) : d+=0.25
- Sinon : d+=0.20
- Sinon :
- Si le joueur a joué un champion peu joué (-100 échantillons) : d+=0.15
- Sinon : d+=0.10
- Si l’équipe du joueur a gagné :
(nb : d += x signifie d = d+x)
Nous sommes maintenant en bonne voie d’une première idée de scoring. Cependant, nous ne pouvons nous appuyer uniquement sur les métriques du joueur seul pour évaluer ce dernier. C’est pourquoi nous allons ensuite comparer quelques métriques à celles de son opposant direct pour chaque match.
Nous introduisons donc ici une métrique supplémentaire : le ratio du KDA du joueur. En effet, nous pouvons facilement calculer le ratio du KDA d’un joueur par rapport à celui de son adversaire : il suffit de diviser la métrique du joueur par celle de son adversaire.
(Par ailleurs, c’est aussi pour ces comparaisons que nous avons choisi d’ajouter cette métrique en particulier. En effet, d’autres données pourraient être prises en compte mais risqueraient de fausser la réalité d’une partie. Les damages/min par exemple, seraient presque toujours favorables à un bruiser plutôt qu’à un tank, ce qui ne signifie pas pour autant que le tank a perdu sa lane.)
Considérons donc nos ratios de KDA. Nous allons alors de nouveau ajuster notre diviseur d en fonction de ce dernier : d+= ratioKDA*0.1. A noter que nous limitons notre ratio de KDA à la valeur de 4, afin d’éviter une trop grosse modification de notre note par le diviseur atténuateur.
Nous ajoutons aussi le nombre de solokills du joueur : d+= solokills*0.05. De même nous limitons l’augmentation à 4 solokills. Finalement nous ajoutons les pentakills, tels que d+=0.1 si le joueur à fait un pentakill.
Il est à noter que nous limitons ce ratio à 1.8. C’est un ratio élevé mais justifié, qui n’arriverait qu’en cas d’une très grande domination du joueur sur la partie, et lui assurerait une note minimum de 8/10. Cette approche permet donc d’équilibrer un peu plus les différentes notes calculées plus tôt. En effet, dans le cas d’un diviseur de 1.25 nous avons l’encadrement suivant :
Encadrement de la note
Autrement dit, un joueur qui, est très mal noté sur une métrique précise, aura une plus grosse diminution de son score que s’il avait été bien classé. Si on est à 0 sur une métrique on passe à 2, alors que si nous sommes à 8 on passe à 8.4. Le calcul est le suivant :
Formule de la note
Nous pouvons alors établir une note pour chaque métrique, puis en calculer la moyenne pondérée pour établir la note sur une partie. Nous effectuons ce calcul pour chaque partie du BO, puis nous calculons la moyenne pondérée des différentes notes qui constituent le BO afin d’obtenir la note finale.
La moyenne pondérée l’est en fonction du rôle du joueur. Ainsi les coefficients pour cette moyenne sont établis en fonction de l’importance d’une métrique sur le rôle du joueur en question. Par exemple, les CS/min pour un ADC représente une métrique importante à mesurer là où le vision score/min va être plus représentatif chez les supports.
Note finale
Ainsi nous avons la note finale étant la moyenne (pondérée en fonction du rôle du joueur) des notes pour chaque métrique utilisée sur chaque match joué.
De manière plus synthétique, pour un joueur suis le schéma suivant :
Sur un match on établi une note étant la moyenne (pondérée en fonction du rôle du joueur) des notes sur toutes les métriques mesurées.
On fait ensuite la moyenne de la note de chaque match sur un BO.
On fait ensuite la moyenne de la note de chaque match sur un BO.
Vous pouvez trouver les notes finales pour chaque BO depuis 2023, par exemple pour la finale du winter split de la LEC 2024. De plus, vous pouvez trouver les classements basés sur les scores des joueurs pour chaque leagues. Cliquez ici pour un exemple sur le Summer Split de la LEC 2024. Finalement ce score est également disponible sur le profile des joueurs, par exemple pour Caps.
Critiques
Parce que nous sommes à la recherche d’amélioration et qu’il est important pour nous de porter un regard critique sur notre travail, nous établissons ici quelques points qui peuvent être améliorés, ou expliquons certains de nos choix.
Nous nous sommes limités aux données rendues pour chaque match, les métriques choisies l’ont été vis à vis des critères expliqués plus tôt. Si d’autres métriques font sens, nous sommes plus qu’ouvert à la discussion, et nous ne pouvons nous empêcher de vous encourager à émettre vos idées, vos réticences ou vos critiques, l’objectif étant d’améliorer ce système.
Concernant les métriques choisies (ou non), les objectifs neutres, et notamment le ratio d’objectifs neutres, aurait pu être utilisés. Cependant le coefficient de corrélation de Pearson entre le ratio d’objectif et la victoire est de 0.89, synonyme d’une forte corrélation. Prendre en compte ce critère équivaudrait à prendre en compte la victoire, ce qui est déjà le cas.
Toujours du côté des ratios (joueur/opposant direct), d’autres ratios ont été pris en compte comme le ratio de kills, d’assists, de morts, de gold, de damages… Cependant il faut prendre en compte le fait que certains match-up sont tels qu'un joueur performant ne le soit pas toujours sur les mêmes statistiques (l’exemple du tank et du bruiser illustrant bien ce fait). Le ratio du KDA reste alors le plus général.
Les picks exotiques, autrement dit ceux pour lesquels un rôle a un faible échantillon de matchs, sont difficiles à mesurer. Pour le facteur pick exotique on a choisi d’augmenter le diviseur d’atténuation afin de réduire l’impact de métriques punitives et récompenser le risque pris. Cependant plus le temps passe, plus on aura de matchs dans notre base de donnée plus la taille des échantillons consolidera les statistiques sorties pour ces picks.
Encore une fois, nous vous encourageons à effectuer un maximum de retour sur ce travail et notre méthode. Nous ne demandons qu’à nous améliorer, et gagner en qualité. La critique, courtoise et constructive, ne pourra que nous faire avancer. Merci à vous d’avoir pris le temps de nous lire.
