Prédire le vainqueur d'un match de football basé uniquement sur le résultat des matchs précédents entre les deux équipes

8

Je suis un grand fan de football et je m'intéresse aussi à l'apprentissage automatique. En tant que projet pour mon cours de ML, j'essaie de construire un modèle qui prédirait les chances de gagner pour l'équipe à domicile, étant donné les noms de l'équipe à domicile et à l'extérieur. (Je recherche mon jeu de données et crée en conséquence des points de données basés sur les matchs précédents entre ces 2 équipes)

J'ai des données pour plusieurs saisons pour toutes les équipes mais j'ai les problèmes suivants avec lesquels je voudrais des conseils. L'EPL (English Premier League) compte 20 équipes qui s'affrontent à domicile et à l'extérieur (380 matchs au total en une saison). Ainsi, chaque saison, deux équipes s'affrontent deux fois.

J'ai des données pour les 10+ dernières années, résultant en 2 * 10 = 20 points de données pour les deux équipes. Cependant, je ne veux pas aller au-delà de 3 ans car je pense que les équipes changent considérablement au fil du temps (ManCity, Liverpool) et cela ne ferait qu'introduire plus d'erreurs dans le système.

Cela se traduit donc par environ 6 à 8 points de données pour chaque paire d'équipe. Cependant, j'ai plusieurs fonctionnalités (jusqu'à 20+) pour chaque point de données, comme les objectifs à temps plein, les objectifs à mi-temps, les passes, les tirs, les jaunes, les rouges, etc. pour les deux équipes afin que je puisse inclure des fonctionnalités telles que la forme récente, récente formulaire domicile, formulaire récent, etc.

Cependant, l'idée de n'avoir que 6-8 points de données pour m'entraîner me semble incorrecte. Avez-vous des idées sur la façon de contrer ce problème? (si c'est un problème en premier lieu)

keithxm23
la source
L'avantage sur le terrain me semble assez important d'après les études que j'ai lues (je suis ingénieur / économiste et fan de BVB). Vous pouvez également considérer les PK; ils ne modifient pas les résultats de match à long terme en moyenne (lire Soccernomics ), mais peuvent fortement influencer un match individuel.
gregmacfarlane
Si vous ne voulez vraiment utiliser que les noms des équipes, vous pouvez utiliser le type de système de notation utilisé pour les échecs ou d'autres jeux à deux joueurs, par exemple [Elo] [1] ou [Trueskill] [2]. Il y avait aussi un [concours Kaggle] [3] à ce sujet. Vous pouvez peut-être commencer par l'un de ces systèmes, puis l'améliorer en utilisant les autres covariables. [1]: en.wikipedia.org/wiki/Elo_rating_system [2]: en.wikipedia.org/wiki/TrueSkill [3]: kaggle.com/c/chess
Flounderer
Les seuls résultats que vous saurez avant un match sont les résultats précédents et le classement. Vous n'aurez pas d'informations sur les pousses, les coins ets, vous devez donc créer des fonctionnalités qui sont plausibles et données.
Fierce82

Réponses:

2

Qu'en est-il de l'amélioration de votre jeu de données en prenant également en compte certaines données sur les matchs contre le même adversaire?

Exemple:

TeamA vs TeamC: 1-0
TeamB vs TeamC: 2-0
=> "infer" the fake outcome: TeamA vs TeamB: 1-2

De plus, à mon avis ce genre de date est meilleur que les données que vous proposez, car les équipes de l'année dernière sont souvent des équipes très différentes.

Aslan986
la source
Excellente suggestion! Merci Aslan986 .. Cependant, je pense que cela contribuerait à la liste des fonctionnalités. Je ne vois pas comment nous pourrions utiliser ces données comme un «point de données». Néanmoins, merci, je vais certainement essayer cela.
keithxm23