Par Sarah FEDOUACH, Corentine NICOLAS et Lola SPASOJEVIC
Le secteur des jeux vidéo est en pleine expansion. Les entreprises se doivent d’être concurrentielles et à la pointe de l’innovation. Parmi les jeux vidéo les plus populaires se trouve FIFA. C’est un jeu vidéo de football créé par EA Sport en 1993, une entreprise qui développe des jeux vidéo de sport en ligne. Dans ce jeu, les joueurs de football possèdent une note sur 100 qui définit leur prestation et donc leur niveau dans le jeu. Cette note est actuellement calculée à la main par 8000 bénévoles qui étudient tous les matchs de toutes les ligues chaque année et retravaillée par 200 data editors de chez FIFA.
Comment rendre le calcul de ces notes plus rapide et moins cher?
Notre projet propose d’aider FIFA à simplifier le calcul des notes des 17000 joueurs qui composent le jeu en se basant sur leurs statistiques de matchs (buts, cartons, nombre de matchs sans prendre de buts…). La difficulté a été de comprendre quelles variables peuvent être utiles pour le calcul des notes et ainsi remplacer l’avis subjectif de 8000 bénévoles. Après avoir sélectionné les données pertinentes et grâce à des algorithmes de machine learning, nous pouvons prédire ces notes en fonction des performances réelles. Le produit que nous proposons serait donc directement intégré au système informatique de FIFA.
Choix du dataset et des statistiques footballistiques
Afin de construire notre modèle nous avons eu l’idée de récolter des données sur les performances réelles des joueurs mais aussi de leurs clubs. Dans un souci de simplicité, nous avons décidé de travailler uniquement sur les 5 plus grands championnats d’Europe (Premier League, La Liga, Bundesliga, Serie A et Ligue 1) et les saisons 2017/18, 2018/19, 2019/20, ce qui correspond à 45 datasets, 98 équipes et près de 2200 joueurs. A cela, on ajoute les datasets contenant les notes FIFA des années 2018, 2019, 2020 et 2021 qui vont nous permettre d’entraîner notre modèle.
Des statistiques à la prédiction de notes
Notre but étant d’obtenir un dataset par année (toutes ligues confondues), nous avons dû faire correspondre les noms des joueurs des datasets statistiques avec ceux des datasets de notes FIFA afin de les fusionner.
Les équipes de foot ne se valent … pas
Cependant, il nous paraissait important que les clubs des joueurs soient une features d’entraînement de notre modèle. C’est pourquoi nous avons dû créer un score équipe. Ce score a été créé en comparant (en termes de points et de nombre de buts) chaque club d’une ligue au premier de cette ligue. Grâce à ce score il est, par exemple, possible de comparer directement les performances du Real Madrid avec celles de Liverpool.
Regardons les données de plus près.
Nous avons étudié la corrélation de nos variables avec les notes des joueurs. Deux variables sont corrélées positivement si leur coefficient de corrélation est proche de 1 et corrélées négativement si leur coefficient de corrélation est proche de -1. Deux variables corrélées ou anti corrélées signifient qu’elles mesurent un phénomène similaire. Cela apporte du bruit et peut induire le modèle en erreur.
Nous avons gardé une seule variable par groupe de variables corrélées et nos datasets finaux ont chacun 28 colonnes.
Nous avons ensuite décidé d’étudier l’influence de certaines variables par rapport aux différentes positions des joueurs sur le terrain. Quatre postes sont représentés dans notre dataset: les attaquants, les défenseurs, les gardiens et les milieux de terrain.
Comme nous pouvions nous en douter, le nombre de buts n’a pas d’influence sur la note des gardiens tandis que cela est plus corrélé avec les notes des attaquants. Nous avons donc tracé les matrices de corrélation par postes pour trouver les variables qui influent le plus sur la note par poste.
Nous avons donc décidé d’établir deux modèles différents présentés ci-dessous:
Comment évaluer nos résultats ?
Nous souhaitons prédire une note pour cela nous allons utiliser des algorithmes de régression (le Random Forest, l’algorithme du plus proche voisin, XG Boost Regressor, Stochastic Gradient Descent Regressor et la régression linéaire). La métrique que nous avons choisie est la racine de l’erreur quadratique moyenne.
Notre but est de tester plusieurs modèles et algorithmes afin de déterminer ceux qui minimisent cette erreur. Nous avons décidé de vous présenter uniquement les modèles qui prennent en compte la note de l’année précédente, les autres ayant une erreur 3 fois plus élevée.
Algorithme Global | Global | Par poste : Forward |
RandomForest | 1.124 | 1.141 |
KNeighbors | 4.002 | 4.020 |
XGBRegressor | 1.249 | 1.253 |
SGDRegressor | 192.194 | 78.247 |
LinearRegression | 1.365 | 1.362 |
Concernant le modèle global, nous remarquons que le meilleur algorithme est le RandomForest suivi de près par XGBRegressor et la régression linéaire. Nous pouvions nous en douter car les forêts de décisions sont des algorithmes qui fonctionnent bien sur des petits datasets car ils utilisent la technique de Bootstraps.
Nous remarquons qu’il n’y a pas de valeurs aberrantes. Le nuage de points pour le Random Forest est plus resserré que celui du XGBoost : il fait donc moins d’erreurs.
Dans le cas du modèle par poste, les trois meilleurs modèles sont : le RandomForest, le XGBoost et la régression linéaire. Après analyse, nous pouvons tirer les mêmes conclusions que pour le modèle global.
Dans les deux cas de figure, le meilleur modèle est le RandomForest. Comparons donc les performances des modèles par poste pour ce modèle.
RMSE | Modèle global | Modèle par poste |
Defender | 1.142 | 1.137 |
Midfielder | 1.125 | 1.137 |
Goalkeeper | 1.056 | 1.173 |
Forward | 1.159 | 1.141 |
Le modèle global possède des performances supérieures au modèle par poste. Nous optons donc pour créer un modèle global. Nous supposons que le modèle par poste est pour l’instant moins efficace car nous ne présentons pas assez de données d’entraînement.
Déploiement et commercialisation
Notre produit sera intégré au système informatique de FIFA. Il permettra à FIFA un gain de temps et d’argent. En effet, les modèles mettent environ 3 secondes à faire les prédictions pour tous les joueurs. Il suffit de mettre à jour régulièrement les statistiques des joueurs dans la base de données pour avoir des notes les plus fiables possible. Ce qui est négligeable par rapport au
temps que FIFA met à coordonner les 8000 bénévoles et 200 data editors Le temps de calcul de ces notes est donc réduit. De plus, l’ajout de notre algorithme pourrait améliorer la satisfaction client grâce aux mises à jour régulières et donc conduire à une augmentation du taux de ventes.
On peut aussi quantifier le gain d’argent pour FIFA en termes de salaires économisés. En effet, FIFA économisera environ 14,5 millions d’euros.