Comment maximiser ses gains sur les sites de paris sportifs ?
Par Aline BENABBOU, Gaspard CANEVET, Rida ENNAMIRI et Amaury TISSEAU, étudiants du parcours Data Science de IMT Atlantique.
Né au milieu du XIXe siècle, le football est aujourd’hui le sport le plus populaire et le plus médiatisé au niveau mondial, étant pratiqué par plus de 270 millions de personnes. Ce sport met en jeu des sommes d’argent colossales avec notamment l’essor des sites de paris sportifs. En 2019, le football concentrait 2,75 milliards d’euros de mises contre 415 millions en 2012 d’après AuStade. L’appât du gain est le premier facteur de motivation pour les parieurs, qui se creusent la tête pour prédire l’issue des matchs. Mais avec toutes ces statistiques et données liées au Football, ne serait-il pas possible d’être meilleur que l’instinct du parieur à l’aide des outils de Data Science ?
Business understanding
Dans un premier temps, nous allons vous expliquer le fonctionnement des paris sportifs de football. La cote est l’élément central du pari. C’est un nombre supérieur à 1.01 qui va caractériser à la fois les gains potentiels du parieur mais aussi la certitude du pari (certitude = (1/cote)*100). En effet, lorsque le parieur va miser sur la victoire de l’équipe B, les gains potentiels du parieur seront cote(Victoire équipe B)*mise. De plus, plus la cote est élevée, plus le pari est dangereux. Prenons un exemple :
Le Vendredi 11/12/2020 à 21h aura lieu le match St-Etienne contre Angers. Ce match comporte trois issues. Soit St-Etienne gagne, soit Angers gagne, soit les deux équipes se quittent sur un match nul.
Nous pouvons donc observer les trois cotes :
- cote de 2.40 pour St-etienne gagnant
- cote de 3.30 pour le match nul
- cote de 2.60 pour Angers gagnant
Ainsi si :
- Vous décidez de parier 10€ sur la victoire de St Etienne, votre gain potentiel s’élève à 24€.
- Vous décidez de parier 10€ sur le nul, votre gain potentiel s’élève à 33€.
- Vous décidez de parier 10€ sur la victoire d’Angers, votre gain potentiel est de 26€.
Enfin, ces trois cotes nous renseignent sur la certitude des paris. Parionssport estime que :
- St Etienne a 42% (100/2,40) de chance de gagner.
- Angers a 38% de chance de gagner.
- il y a 30% de chance que les deux équipes se quittent sur un match nul.
Dans un deuxième temps, laissez nous vous expliquer comment les cotes des paris sportifs sont calculées. Pour ce faire, les entreprises de paris embauchent des bookmakers. C’est eux qui vont définir les cotes, en se basant sur des critères variés (dynamique de l’équipe, joueurs présents sur la feuille de match…) afin de caractériser la certitude du pari. Ces derniers prennent également une marge, en diminuant légèrement la cote annoncée par rapport à celle calculée. C’est ainsi que les sites de paris font leur chiffre. Cependant, les bookmakers ne sont pas les mêmes pour chaque plateforme de paris. C’est pourquoi les cotes diffèrent en fonction du site sur lequel on décide de parier.
Une mise en situation
Paul est un fan de l’équipe de Toulouse, et mise toujours sur cette équipe sur Betclic lorsque celle-ci joue, et quelle que soit sa cote. Il croit en son équipe favorite, et se dit qu’un jour il touchera le gros lot, mais pourtant il continue inlassablement de perdre de l’argent sans savoir quelles sont ses chances de réussite.
Comment peut-il savoir pour quelle équipe parier afin de maximiser ses chances ? Pourquoi ne pas parier sur un autre site que Betclic ?
Proposition de valeur
Nous proposons aux parieurs de maximiser leurs gains sur les matchs de Ligue 1, en faisant des prédictions sur l’issue de matchs à l’aide de modèles de Machine Learning. Nous donnons ainsi au parieur une prédiction sur chaque match, ainsi que des pourcentages de certitudes sur les différentes issues. Enfin, nous comparons et présentons les cotes des différents sites de paris au parieur, afin qu’il choisisse au mieux sur quel site parier.
Comment évaluerons-nous la fiabilité de notre modèle ?
Nous simulerons sur une saison nos gains en suivant à la lettre les prédictions de nos modèles, avec les cotes correspondantes récupérées dans un dataset archivant ces dernières (site de pari Bet365).
Et concrètement ?
a. Nos datasets
Nous utilisons plusieurs datasets.
Les datasets initiaux concernent les caractéristiques des différents matchs de la Ligue 1 entre les saisons 1993/1994 et aujourd’hui : issue du match, issue du match à la mi-temps, nombre de tirs/tirs cadrés, nombre de corners de chaque équipe, nombre de fautes commises par chaque équipe, etc.
Avec ces datasets initiaux, nous décidons de créer une nouvelle feature dynamique d’une équipe, avec un score allant de -3 à +3. Par exemple, une équipe qui a gagné ses 3 derniers matchs à l’extérieur aura une dynamique extérieure de +3.
Également, nous prenons en compte 3 paramètres extérieurs récupérés sur d’autres sites :
- le budget d’une équipe par saison car, une équipe avec un gros budget aura peut-être tendance à gagner plus souvent ses matchs.
- les scores du jeu vidéo Fifa de chaque équipe en fonction des saisons car, les équipes changent entre chaque saison. Ce score, donné par des spécialistes, est souvent une bonne approximation du niveau actuel de l’équipe. Nous utilisons les scores FIFA qui donnent les capacités offensives, défensives et de milieu de terrain des équipes. Une forte attaque contre une défense faible peut être un bon indicateur de victoire. Au contraire, deux fortes défenses avec des attaques moyennes peuvent indiquer une plus forte probabilité de match nul !
- Le public moyen pour chaque équipe car, nous remarquons que les équipes à domicile ont tendance à marquer plus de buts. De même, les équipes extérieures sont plus sujettes à prendre un carton jaune ou rouge. Ces deux observations peuvent être expliquées par un public plus présent à domicile, qui donne son appui pour l’équipe à domicile et fait pression sur l’équipe extérieure.
b. Vers un grand nettoyage
Seuls les datasets de la saison 2007/2008 à aujourd’hui possèdent toutes les informations importantes pour trouver l’issue d’un match (fautes, corners…). Nous éliminons donc les datasets de la saison 1993/1994 à la saison 2006/2007.
De plus, entraîner nos algorithmes sur une saison x pour les tester sur la saison supérieure à x+4 n’est pas pertinent : la composition des équipes change, de nouvelles équipes entrent dans la Ligue 1 tandis que d’autres en sortent.
Nous décidons donc d’entraîner nos algorithmes sur les saisons 2015/2016 et 2016/2017 et de les tester sur la saison 2017/2018.
c. Pour une bonne préparation des datasets
Afin de pouvoir utiliser nos datasets, il faut les préparer. Nous ajoutons aux datasets initiaux les features budget, public et scores Fifa, ainsi que la dynamique d’une équipe.
Ensuite, nous modifions certaines features afin qu’elles puissent être utilisables par les algorithmes. Un exemple concret :
Nous éliminons les features « HomeTeam » et « AwayTeam » donnant le nom des équipes.
d. Sans oublier la récupération des cotes des sites de paris sportifs
Notre but final étant de permettre au parieur de maximiser ses gains, nous récupérons les cotes de plusieurs sites de paris avec du web scrapping afin de les utiliser pour vérifier la fiabilité de notre modèle.
En route vers le machine learning!
a. Un problème de classification
Qu’est ce qu’un problème de classification ? En clair, il s’agit de prédire la valeur d’un attribut (ici le résultat d’un match) à partir des valeurs de ses autres caractéristiques (résultat à la mi-temps, public présent pour l’équipe, etc).
b. Direction les algorithmes
Nous séparons notre dataset en deux : la première partie sert à entraîner nos algorithmes et la deuxième partie sert à les tester. Nous utilisons les datasets des saisons 2015/2016 et 2016/2017 pour entraîner nos modèles, et les testons sur la saison 2017/2018.
En comparant différents algorithmes sur nos datasets initiaux, nous nous rendons compte que le Random Forest est celui qui donne les résultats les plus convenables, en termes de score mais aussi de répartition des prédictions.
Devons-nous utiliser toutes les nouvelles features ?
Nous nous rendons compte que la combinaison des features ‘budget’ et ‘public’ aux datasets initiaux donne la meilleure prédiction, avec un score moyen de 0.54.
c. Fiabilité de notre modèle
Le but est de conseiller au mieux le parieur. Pour cela, nous devons nous assurer de la fiabilité de notre modèle. Nous montrons au parieur le pourcentage de certitude de chacune des issues d’un match, lui permettant d’évaluer le taux de confiance d’une prédiction.
Pour évaluer notre modèle, nous récoltons les cotes de la saison 2017/2018 du site Bet365 et nous simulons nos gains sur cette saison en misant 10 euros sur chaque pari.
Dans 9 cas sur 10, nous récupérons de 2 à 10% de la somme misée au total sur l’année. Mais le seul cas où l’on perd de l’argent nous montre que notre modèle n’est pas encore assez certain.
Si le projet voit le jour…
Si le projet se concrétise, plusieurs points sont à prendre en compte. Tout d’abord il faut penser aux coûts de structure :
- maintenance et gestion de la plateforme et de l’algorithme de prédiction
- contrats pour l’utilisation des données sur les équipes
- salariés permanents
- coûts marketing
Pour contrer ces coûts, il nous faut des sources de revenu, qui peuvent être un abonnement avec un compte pour avoir accès aux prédictions et conseils, la revente des données clients ou encore des publicités sur les sites web.
Enfin, nous devons penser aux aspects juridiques de notre projet, notamment au respect des normes RGPD car nous utilisons les données des sites de paris sportifs qui ne peuvent être utilisées à des fins commerciales.
Références bibliographiques
- Datasets initiaux: https://www.football-data.co.uk
- Scores FIFA: http://fifaindex.com/fr/teams.com/fr/teams
- Public moyen: http://transfermarkt.com
- Budget des clubs: http://sportune.fr
- Chiffres clés sur le football: https://www.parieur-gagnant.com/chiffres-paris-france-infographie/
- Droit de la donnée: https://moodle.imt-atlantique.fr/pluginfile.php/28479/mod_resource/content/1/IMT%20-%20Software%20Ecology%2020171108_BJean.pdf
- Machine Learning Random Forest: https://moodle.imt-atlantique.fr/mod/resource/view.php?id=27571
- Repo github pour les plus curieux : github.com/Amaurytiss/FootballPrediction
- Rapport détaillé :
Qui sommes-nous ?
- Aline Benabbou : www.linkedin.com/in/aline-benabbou-177584196/
- Gaspard Canevet : www.linkedin.com/in/gaspard-canevet/
- Rida Ennamiri : www.linkedin.com/in/rida-ennamiri
- Amaury Tisseau : www.linkedin.com/in/amaury-tisseau-24749a204/