Projet data

Prédire le vainqueur de la coupe du monde avec la Data Science

Antoine Krajnc
Par 
Antoine Krajnc
CEO & Fondateur
Dernière mise à jour le 
14
 
December
 
2023
Vous débutez en Data ? Maîtrisez les fondamentaux en quelques heures !
Découvrir notre formation
Prédire le vainqueur de la coupe du monde avec la Data Science
Sommaire

Du moment qu’il y a des données, les Data Sciences peuvent être utilisées. Si certains d’entre vous ont l’âme d’un parieur et souhaitent éclairer leurs décisions par des statistiques, nous avons créé un algorithme qui permet de prédire l’équipe gagnante d’un match de la coupe du monde.Cet algorithme vient, en partie de Dr James Bond et de son projet sur Kaggle : Soccer World Cup 2018 Winner. Celui-ci se basait cependant exclusivement sur les classements Fifa de chaque équipe.Nous y avons ajouté les statistiques moyennes de chaque joueur et de chaque équipe dans l’équation. En plus de cela, nous avons opté pour un modèle de Deep Learning de Réseau de Neurones pour gagner en précision.Voici donc une explication du projet, étape par étape. Pour ceux qui souhaitent simplement avoir les résultats prévisionnels, vous pouvez scroller directement à la fin de cet article.

Vous débutez en Data ? Maîtrisez les fondamentaux en quelques heures !
Découvrir notre formation
Formation Data pour débutantFormation Data pour débutant

[Projet réalisé à la suite de notre formation Essentials en Data : 75 heures de formation pour devenir comprendre les problématiques, apprendre Python et la gestion de bases de données avec SQL et réaliser son premier projet Data]

Collection des données

En ce qui concerne les données que nous avons récoltées, celles-ci viennent principalement de bases Kaggle :

  1. Nous avons les rangs FIFA de 1993 à 2018 donnés par Tadhg Fitzgerald
  2. L’historique des matches de football depuis 1872 donné par Mart Jürisoo
  3. Les statistiques de chaque équipe depuis 2018 tirées de Wikipédia
  4. Les statistiques des joueurs tirées de Kaggle
  5. Les futurs matches de la coupe de 2018 donnés par Nuggs

C’est avec ceci que nous allons entamé notre analyse. Importons donc les différents Datasets

 Importons donc les différents Datasets

Nous n’avons pas besoin de toutes les données dans chaque fichier. Certains noms de pays diffèrent en fonction des années (l’Allemagne comptait comme deux pays avant la chute du mur de Berlin en 1989). Nous allons donc commencer une première phase de nettoyage.

 Importons donc les différents Datasets

Vu la quantité de données que l’on possède ainsi que le peu de données manquantes, nous décidons de simplement effacer les lignes où il y a des données manquantes. Finissons d’importer les statistiques des joueurs.

 Importons donc les différents Datasets

La fin de la partie du code sert à calculer la moyenne des statistiques des joueurs dans chaque équipe pour que l’on puisse ensuite les intégrer dans le comparatif entre chaque pays.

Préparation des données

Nos données sont maintenant importées mais nous devrons les fusionner pour que notre algorithme puisse apprendre des différentes statistiques. Il faudra le faire en plusieurs étapes.

D’abord, les rangs et les dates des matches ne correspondent pas exactement. En effet, nous avons les rangs au mois-le-mois alors que nous avons une date au jours près pour les matches. Il faudra donc créer un classement au jour-le-jour pour que l’on puisse fusionner nos colonnes.

Une fois que ceci est fait, nous faisons un premier merge (fusion).

 Importons donc les différents Datasets

En ce qui concerne les statistiques des joueurs et des équipes au général, nous n’avons pas besoin de toucher aux dates. On passera donc directement à l’étape merge.

 Importons donc les différents Datasets

Comment allons nous évaluer les différentes équipes qui s’affrontent ? Un moyen simple est de prendre la différence de chaque statistiques entre les Comment allons nous évaluer les différentes équipes qui s’affrontent ? Un moyen simple est de prendre la différence de chaque statistiques entre les équipes. Par exemple, nous allons prendre la différence de position dans les classements FIFA, la différence d’âge entre les joueurs etc. Ce processus est un peu fastidieux car il faudra tout faire à la main mais en voici un extrait :

Comment préparer ses données?

La gestion de chacune de nos variables qui va s’en suivre va de même être quelque peu longue et il existe très certainement des moyens de gérer cela d’une meilleure façon mais, par contrainte de temps, nous avons préféré procéder ainsi.

Préparation des données

Commençons par séparer nos variables dépendantes de notre variable dépendante (ce que l’on veut prédire).

Comment préparer ses données

Notre variable dépendante y est pour l’instant de type boolean mais pour que notre modèle puisse apprendre, il nous faut des chiffres. On utilisera donc la fonction get_dummies.

Nous pouvons maintenant séparer notre dataset en un training set et un test set. Rien de bien compliqué, nous utiliserons simplement scikitlearn.

Nous pouvons maintenant entrainer notre modèle de Machine Learning. Alors que Dr James Bond utilise une régression logistique (qui fonctionne très bien), nous avons tenté d’utiliser un modèle de Réseau de Neurones qui s’avère être un poil plus précis. C’est donc pour cela que nous avons opté pour ceci.

Comment appliquer son modèles de Machine Learning ?

Nous n’avons pas créé trop d’epochs pour ne pas créer un phénomène d’overfitting (modèle trop entraîné sur le training set). Nous obtenons pour l’instant un score de précision aux alentours de 65%. Ce qui n’est pas trop mal étant donné que le niveau des équipes est difficile à déterminer.

Nous donnerons à la fin de l’article les probabilités exactes, celles-ci sont plutôt proches des 50% c’est pour cela que la modèle a aussi du mal à prédire avec plus de précision qui va gagner chaque match.

Application du modèle

Maintenant que notre modèle est prêt, utilisons le sur les équipes qui vont jouer dans cette coupe du monde.

Pour ce faire, nous devrons reprendre les étapes de notre partie préparation de données et les intégrer dans notre Dataset.

Comment appliquer son modèle ?

Nous devrons ensuite intégrer les différentes combinaisons possibles de matches en considérant les poules qui ont été faites. C’est une grosse loupe avec beaucoup de code assez long à entrer à la main mais voici nos résultats pour les matches de poules ! L’algorithme ne prédit pas encore les matches nuls donc il se peut qu’il y a des erreurs à cause de cela mais nous sommes pour l’instant à 60% de prédictions justes !

Si vous souhaitez acquérir les compétences en Data recherchées des recruteurs, n'hésitez pas à regarder nos formations Data que Jedha Bootcamp propose.

Soirée Portes Ouvertes Jedha BootcampSoirée Portes Ouvertes Jedha Bootcamp
CEO & Fondateur
Antoine Krajnc
CEO & Fondateur
Antoine est le CEO et fondateur de Jedha. Diplômé d’Audencia Business School et de UC Berkeley, Antoine a travaillé pendant plus de 3 ans en tant que Business Analyst à San Francisco et à Paris. Il a ensuite fondé sa première entreprise Evohé qu’il a vendu pour repartir dans la Silicon Valley et fonder le cours de Data Analytics de Product School, le plus grand bootcamp de Product Management des US, qu’il a enseigné pendant 2 ans. De retour en France, il a fondé Jedha Bootcamp.

Articles recommandés

No items found.