Predecir el ganador del partido de fútbol solo en función del resultado de los partidos anteriores entre los dos equipos

8

Soy un gran fanático del fútbol y también estoy interesado en el aprendizaje automático. Como proyecto para mi curso de ML, estoy tratando de construir un modelo que prediga la posibilidad de ganar para el equipo local, dados los nombres del equipo local y visitante. (Consulto mi conjunto de datos y, en consecuencia, creo puntos de datos basados ​​en coincidencias anteriores entre esos 2 equipos)

Tengo datos de varias temporadas para todos los equipos, sin embargo, tengo los siguientes problemas con los que me gustaría obtener algunos consejos. La EPL (English Premier League) tiene 20 equipos que juegan entre ellos en casa y fuera (380 juegos en total en una temporada). Por lo tanto, cada temporada, dos equipos juegan entre sí solo dos veces.

Tengo datos de los últimos 10 años, lo que resultó en 2 * 10 = 20 puntos de datos para los dos equipos. Sin embargo, no quiero pasar más de 3 años, ya que creo que los equipos cambian considerablemente con el tiempo (ManCity, Liverpool) y esto solo introduciría más errores en el sistema.

Por lo tanto, esto da como resultado alrededor de 6-8 puntos de datos para cada par de equipos. Sin embargo, tengo varias características (hasta 20+) para cada punto de datos, como goles de tiempo completo, goles de medio tiempo, pases, tiros, amarillos, rojos, etc. para ambos equipos, por lo que puedo incluir características como forma reciente, reciente formulario de inicio, formulario de ausencia reciente, etc.

Sin embargo, la idea de tener solo 6-8 puntos de datos para entrenar me parece incorrecta. ¿Alguna idea sobre cómo podría contrarrestar este problema? (si esto es un problema en primer lugar)

keithxm23
fuente
La ventaja de campo local me parece bastante importante según los estudios que he leído (soy ingeniero / economista y fanático de BVB). También puede considerar PKs; no cambian los resultados de los partidos a largo plazo en promedio (lea Soccernomics ), pero pueden influir mucho en un partido individual.
gregmacfarlane
Si realmente solo quieres usar los nombres de los equipos, puedes usar el tipo de sistema de clasificación que se usa para el ajedrez u otros juegos de dos jugadores, por ejemplo [Elo] [1] o [Trueskill] [2]. También hubo un [concurso de Kaggle] [3] sobre esto. Quizás podría comenzar con uno de estos sistemas y luego mejorarlo utilizando las otras covariables. [1]: en.wikipedia.org/wiki/Elo_rating_system [2]: en.wikipedia.org/wiki/TrueSkill [3]: kaggle.com/c/chess
Flounderer
Lo único que debes saber antes de un partido son los resultados anteriores y la clasificación. No tendrá información sobre brotes, esquinas, etc., por lo tanto, debe crear características que sean plausibles y estén disponibles.
Fierce82

Respuestas:

2

¿Qué hay de mejorar su conjunto de datos teniendo en cuenta también algunos datos sobre los partidos contra el mismo oponente?

Ejemplo:

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

Además, en mi opinión, este tipo de fecha es mejor que los datos que propuso, porque los equipos del año pasado son a menudo equipos muy diferentes.

Aslan986
fuente
Excelente sugerencia! Gracias Aslan986 .. Sin embargo, creo que esto contribuiría a la lista de características. No veo cómo podríamos usar estos datos como un 'punto de datos'. Sin embargo, gracias, definitivamente intentaré esto.
keithxm23