Professional Documents
Culture Documents
Partidos de Ftbol
Contenidos
Introduccin................................................................................................................................. 3
Resolucin del Problema............................................................................................................. 5
1 - Obtencin de Informacin .................................................................................................5
2 Salvado y Estandarizacin en la BD..................................................................................6
3 Atributos a utilizar para la prediccin [Modos]...................................................................8
Face to Face....................................................................................................................... 8
Solo.................................................................................................................................... 9
Solo + Goles de Diferencia...............................................................................................10
4- Construccin del Dataset y Entrenamiento.......................................................................11
Face To Face.................................................................................................................... 12
Solo.................................................................................................................................. 13
Mtricas..................................................................................................................................... 15
Datos Obtenidos........................................................................................................................ 16
Face to Face......................................................................................................................... 16
Solo....................................................................................................................................... 16
Solo +.................................................................................................................................... 18
Anlisis...................................................................................................................................... 18
Face To Face........................................................................................................................ 20
Solo....................................................................................................................................... 21
Solo +.................................................................................................................................... 24
Conclusin Final........................................................................................................................ 24
Extensiones............................................................................................................................... 24
Referencias................................................................................................................................ 25
Apndice.................................................................................................................................... 26
A Obtencin de Informacin..........................................................................................26
Introduccin
El ftbol (del ingls britnico football), tambin conocido por ftbol asociacin y llamado
futbol, balompi o soccer segn el idioma del pas, es un deporte de equipo jugado entre dos
conjuntos de 11 jugadores cada uno y cuatro rbitros que se ocupan de que las normas se
cumplan correctamente. Es ampliamente considerado el deporte ms popular del mundo, pues
participan en l unos 270 millones de personas.
El terreno de juego es rectangular de csped natural o artificial, con una portera a cada lado
del campo. El objetivo del juego es desplazar con cualquier parte del cuerpo que no sea los
brazos o las manos, y mayoritariamente con los pies (de ah su nombre), una pelota a travs
del campo para intentar introducirla dentro de la portera contraria, accin que se denomina
marcar un gol. El equipo que logre ms goles al cabo del partido, de una duracin de 90
minutos, es el que resulta ganador del encuentro.
El juego moderno fue creado en Inglaterra tras la formacin de la Football Association, cuyas
reglas de 1863 son la base del deporte en la actualidad. El organismo rector del ftbol es la
Fdration Internationale de Football Association, ms conocida por su acrnimo FIFA. La
competicin internacional de ftbol ms prestigiosa es la Copa Mundial de Ftbol, organizada
cada cuatro aos por dicho organismo. Este evento es el ms famoso y con mayor cantidad de
espectadores del mundo, doblando la audiencia de los Juegos Olmpicos.
En Argentina es el deporte ms popular: el que tiene ms jugadores federados (540.000 en
2002, equivalente al 1,4% de la poblacin) y el ms practicado por la poblacin masculina en
forma recreativa o no federada.
La Asociacin del Ftbol Argentino(AFA) se cre en1893. Es la octava ms antigua del mundo.
El torneo de liga, jugado desde ese ao, es el tercero ms antiguo del mundo, detrs de las
ligas britnicas y holandesa.
Actualmente el campeonato de Primera Divisin del ftbol argentino, organizado por la AFA,
se desarrolla durante 38 fechas divididas en dos torneos de 19 jornadas cada uno,
denominados Inicial y Final, en el que el ganador del primero se enfrenta al del segundo en un
partido nico en cancha neutral, para definir al campen.
En el certamen participan veinte equipos, los que son presentados por clubes, asociaciones
civiles sin fines de lucro, aunque desde el ao 2000 puede darse la situacin de que el equipo
est gerenciado por una empresa privada, en representacin y con la aprobacin del club
respectivo.
En la actualidad existe muchas pginas de apuestas deportivas en las que las personas
intentan obtener un beneficio monetario con sus predicciones de los resultados de los partidos.
A modo de simplificacin del problema de prediccin consideraremos una prediccin de un
partido entre el equipo A y el equipo B como un elemento del conjunto
{Victoria A , Empate , Derrota A } .
Dos conceptos interesantes, que van a tener una ocurrencia repetida en este documento son
Historia Reciente de un club e Historial entre un par de clubes.
como la
Donde:
Bi Nombres de equipos
Li { Local ,Visitante }
S i Nombres de estadios
G Ai ,G Bi
({ A , Bi }, Li , S i ,(G A , G Bi )) L representa que el partido disputado por el equipo A
hace i fechas de la f fue contra el equipo Bi , se jug en el estadio S i , A se consider
como Li y el resultado final fue G Ai goles para A y G Bi goles para Bi .
La tupla
Li { Local ,Visitante }
S i Nombres de estadios
G Ai ,G Bi
En este trabajo se intentar mostrar que no es posible predecir con una confianza relevante los
resultados de los partidos de ftbol argentino de primera divisin.
Usaremos tcnicas de inteligencia Artificial de clasificacin automtica para, dado un partido
p entre los equipos A y B , una fecha f y un torneo t , usar la informacin del
historial entre clubes y la historia reciente de un club para clasificar el partido p en
alguna de las clases de C={Victoria A , Empate , Derrota A } .
1 - Obtencin de Informacin
Una de los mayores problemas a resolver en este trabajo fue la obtencin de datos para
realizar los experimentos, la mayora de las bases de datos sobre la historia del ftbol
Argentino que se encuentra en la web son pagas, slo contienen informacin de la ltima
dcada, o en el caso de la AFA no se encuentran digitalizadas.
La nica fuente que se consigui con gran parte de la etapa profesional del ftbol Argentino
(1930-2008) fue http://www.rsssf.com/tablesa/argalltime.html.
Para cada ao entre 1930 y 2008 la pgina nos brinda una serie de entradas de la forma:
Torneo X
Ronda 1
Fecha dd/mm/yy
Equipo_1 goles_1 : goles_2 Equipo2 [at Estadio_1]
Ronda 19
Torneo Y
.
Caractersticas:
1. Nombre de Campeonato(s).
2. Fechas.
3. Rondas.
4. Equipos que se enfrentan.
5. Resultado enfrentamiento.
2 Salvado y Estandarizacin en la BD
La entrada de la pgina por cada ao debe ser parseada para extraer la informacin relevante.
La tarea de parsing adquiri dimensiones extremadamente grandes ya que, para nuestro
desagrado, cada una de las 78 entradas por ao estaban dispuestas con encodings y formatos
diferente, por lo que el parseo debi ser especializado para cada una de las entradas.
Algunos fragmentos de entradas:
Entrada 2008
Round 2
[Aug 10]
Tigre
0-3 Independiente
Entrada 1985
Round 1.1.1: 17 Feb
Ramn Santamarina
Entrada 1973
2nd Round
9.3.1973
Argentinos Juniors 3-5 River Plate
at Vlez Sarsfield
Notemos que hay elementos que las personas considerar importantes para el desempeo de
un club de ftbol (como cambio de tcnico, cantidad de refuerzos comprados, tamao de
plantel, etc) y no los podemos tener en cuenta debido a la escasez de informacin de nuestra
fuente.
Para extraer la informacin de la web se programaron dos scripts en python. Uno se encarga
de parsear la web y llenar una OODB, mientras que el otro es el encargado de filtrar ciertos
resultados errneos que el parser no era capaz de discriminar, a dems de estandarizar los
nombres de clubes y nombres de estadios.
Ejemplo de nombres no estandarizados:
indepdente.
ind. avellaneda
independiente
independiente de avellaneda
independiente [A]
Todos estos clubes referencian al mismo Club Atltico Independiente de Avellaneda.
WWW
Parser
Filter
OODB
Face to Face
Esta modalidad usa el historial entre equipos combinado con la historia reciente de los dos
clubes. nicamente se intenta predecir el resultado de los partidos entre un par de clubes.
Una instancia consiste en el resultado de los ltimos n partidos del equipo 1 antes del
derby, el resultado de los ltimos n partidos del equipo 2 antes del derby y el resultado del
enfrentamiento mutuo.
En frmulas:
Sep 18
{S, B}
L
?
Fecha
{Club, ?}
Locala
Resultado
Solo
Esta modalidad usa el concepto de historia reciente. Puede considerarse una generalizacin
del mtodo anterior ya que se siguiendo a un equipo se intenta predecir el resultado de un
partido sin importar contra quien juegue.
Una instancia de este mtodo para un partido p sera los resultados de los ltimos n
partidos sumado al partido que se intenta predecir p .
En frmulas:
Sep 18
{S, ?}
L
?
con
Hasta
12
12
16
16
20
20
26
26
32
32
40
40
50
50
inf
Duplicando las entradas anteriores para todas las diferencias de goles negativas.
Abajo puede apreciarse un ejemplo con San Lorenzo de Almagro
G: [12, 16)
Sep 18
{S, B}
?}
L
?
Solo Arff
OODB
Py Script
Solo+ Arff
Veamos el pseudocdigo necesario para generar las instancias para entrenar a los
clasificadores.
Face To Face
@attribute 1L-1
@attribute 1G-1
@attribute 2L-1
@attribute 2G-1
@attribute L {L,V}
@attribute Class
{L,V}
{W,L,T}
{L,V}
{W,L,T}
{W,L,T}
Solo
{W,L,T}
{W,L,T}
{W,L,T}
{W,L,T}
Face To Face
~170
Solo
~2800
Solo+
~2800
En un primer momento para evaluar el desempeo de los clasificadores para algn modo,
algn equipo (o par de equipos) y algn n se hacia un spliting del training set en 80% para
entrenamiento y 20% para testeo. Como la seleccin que hace weka del 20% para testeo es
aleatorio esto perjudica a los resultados que obtengo ya que puedo tener suerte en la seleccin
del dataset para testear y sobrestimar el valor real de mis mtricas. Tambin puede tener mala
suerte y que el resultado subestime al valor real de las mtricas.
Por esto es que la validacin se realiz con cross validation (y 10 folds). Cross validation
consiste en hacer el test spliting, pero varias veces y promediar luego los resultados, es por eso
que no tiene la misma debilidad que data spliting.
Mtricas
Para comparar la bondad de los resultados de los diferentes clasificadores y diferentes n's, se
tomo la informacin correspondiente a la precisin y el estadstico kappa del clasificador.
Slo comparamos la bondad de los clasificadores en los llamados clubes grandes del ftbol
Argentino ya que son los clubes sobre los que se tienen mas instancias.
Notemos tambin que, nuestros clasificadores podran andar muy bien para algunos equipos y
no tan bien para otros, por lo que se decidi hacer un promedio para cada n de la precisin
y del estadstico kappa de todos los clubes (o pares de clubes) dentro de un modo.
Precisin: Cociente entre la cantidad de instancias clasificadas correctamente y la cantidad
total de instancias.
Kappa Statistic: Es una medida de concordancia entre el clasificador ideal y el clasificador
usado.
Datos Obtenidos
Como se mencion antes, se realizaron experimentos para muchos clubes (o pares de clubes)
y despus se promediaron los resultados.
Por cada club y cada modo, se corrieron los clasificadores para data sets con n variando entre
0 y 19. En general el proceso demor en total unas cuantas horas.
Se escribi un script que automatiza las tareas de generar los arffs, correr weka y realizar los
grficos pertinentes. Se puede leer ms sobre l en el siguiente link.
Toda la informacin que se mostrar a continuacin ser la informacin promediada de los
clubes (o pares de clubes). Para acceder a la informacin individual puede seguirse el siguiente
link.
Para cada clasificador en
corresponden a:
Face to Face
Solo
Solo +
Anlisis
Mirando en general todos los resultados de los clasificadores, podemos afirmar que ninguno de
los tres es capaz de que predecir con consistencia los resultados, ya que como obtenemos un
estadstico kappa menor 0.14 en todos los casos, eso me habla que mis predicciones no son
para nada confiables. Un kappa tan bajo me dice que mis instancias clasificadas correctamente
son pura suerte.
A pesar de esto debemos destacar que la precisin con la que los clasificadores predicen un
resultado est, en promedio, entre un 40 y un 50 % por lo que quedarse con esa prediccin es
mejor que tomar un resultado aleatorio de el conjunto A={Victoria, Empate, Derrota}.
Entre los clasificadores
En general J48 y Navie Bayes tuvieron los kappas y precisin ms altas a dems de los
tiempos de ejecucin mas cortos (al rededor de dos segundos), mientras que SMO tuvo un
tiempo de ejecucin que vari entre los 5 minutos hasta varias horas en el casos de la
modalidad solo.
Face To Face
Este forma de evaluar, si bien fue la primera que se ocurri y pareca razonable, se tuvo un
gran problema de escasez de datos. Notemos que la cantidad de posibles instancias de
problemas son 6^n y slo tenemos en promedio 170 instancias, por lo que a medida que miro
ms y ms enfrentamientos hacia atrs, la porcin de tuplas que efectivamente voy a ver y con
las que voy a aprender son un porcentaje muy reducido del total.
Si miramos los grficos de J48 y Naive Bayes se puede apreciar claramente que los puntos
muestran una recta. Luego de aplicar mnimos cuadrados, obtenemos las siguientes rectas.
Kappa
Parmetro
J48
Naive Bayes
Pendiente
0.001968
0.000039
Ordenada al origen
0.042974
0.061096
Precisin
Parmetro
J48
Naive Bayes
Pendiente
-0.304903
-0.308559
Ordenada al origen
37.687324
38.725847
Podemos rescatar algo muy interesante que es que que a medida que aumenta n , aumenta
kappa tanto en J48 como en Naive Bayes mientras que la precisin disminuye en ambos a
medida que aumenta n .
Es muy interesante ese incremento del estadstico kappa ya que me dice que se esta
aprendiendo algo de los partidos anteriores, esa informacin esta siendo relevante. An as el
valor de kappa sigue siendo muy bajo como para se pueda confiar en las predicciones de los
clasificadores.
Solo
Se observa que la precisin y el estadstico kappa de J48 y Naive Bayes parecen responder a
ecuaciones lineales. Se utiliz mnimos cuadrados para hallar los parmetros de esas rectas.
Kappa
Parmetro
J48
Naive Bayes
Pendiente
-0.002112
-0.000119
Ordenada al origen
0.082941
0.114700
Precisin
Parmetro
J48
Naive Bayes
Pendiente
-0.425745
-0.086308
Ordenada al origen
46.627239
45.252261
Las rectas en este estn mucho mas a la vista que en el caso de Face to Face.
Podemos observar que todas las pendientes son negativas, es decir que a medida que tengo
en cuenta ms y ms partidos hacia atrs el estadstico kappa y la precisin de mis
predicciones bajan. Se obtiene la mejor precisin y el mejor kappa con n = 0, es decir sin tomar
en cuenta ningn partido cercano al que estoy intentando predecir.
Esto claramente me habla que los partidos anteriores a un partido actual no son lo
suficientemente importantes en resultado del nuevo partido, o por lo menos estos clasificadores
no son capaces de encontrarle ese factor determinante a los partidos siguientes.
Podemos comparar a J48 y Naive Bayes por sus pendientes. Naive Bayes tiene, tanto en
precisin como en kappa la pendiente mas cercana a 0 (que es este caso es lo mejor).
Tambin tiene un kappa con una ordenada al origen ~ 1,5 veces ms grande que J48.
En el caso de SVM, los resultados obtenidos no parecen responder a una funcin lineal, sino
ms bien a una funcin cuadrtica. Se aplico nuevamente mnimos cuadrados para intentar
determinar los parmetros de la que cuadrtica que mejor se le ajusta.
aX
bX
Kappa
0.0001728483139667
-0.003485076611984
0.07120521103896
Precisin
0.028142929767598
-0.667314706937760
47.051261639610239
El resultado que nos da SVM es totalmente anti-intuitivo ya que sin mirar los grficos y
suponiendo que los partidos anteriores ayudaran en la prediccin, lo razonable sera que el
pico ms alto se encuentre alrededor de 10 partidos ya que me mantengo dentro de la misma
temporada (o salgo a la anterior, pero me mantengo cerca en el tiempo) y no son partidos muy
viejos, por lo que es probable que el club se siga comportando de forma similar durante esos
ltimos 10 partidos. Mientras que lo que me est mostrando la grfica es un interesante mnimo
alrededor de 10 tanto en kappa como en precisin.
Se realiz una ltima prueba con n=25 para comprobar si la precisin/kappa continuaban
aumentando despus de n=20. (No se pudieron hacer muchas pruebas debido al alto costo en
tiempo que tiene SVM). Respondiendo un poco a la lgica, con n=25 no se obtienen resultados
mejores a los de n=20 (fueron un poco peores)
Solo +
Los resultados que vemos en los grficos son muy similares a los de solo pero un poco ms
dispersos los puntos. Esta dispersin mayor se debe a que, en este modo debido a falta de
tiempo, no se corri la terna de clasificadores para los 5 grandes del ftbol Argentino, sino
que slo se corri para dos de ellos.
Por lo que podemos concluir que los resultados son muy similares, y por lo tanto la informacin
que brinda la diferencia de goles ya est implcita en los resultados de los partidos anteriores.
Conclusin Final
Podemos afirmar que si bien no demostramos que no se pueden predecir los resultados del
ftbol Argentino, encontramos evidencia fuerte mostrando que, por lo menos con el dataset
obtenido de http://www.rsssf.com/tablesa/argalltime.html y los algoritmos de clasificacin
utilizados, no podemos predecir los resultados de los partidos.
Extensiones
Sep 09
{SL, B}
L
?
El santo grial para poder predecir partidos, sera usar toda la informacin que las
personas suponemos que afectan al resultado de un equipo. Una frase tpica del ftbol
argentino es Tcnico que debuta, gana. Sera interesante tener ms informacin sobre
cosas que consideramos relevantes como por ejemplo plantel, cambio de tcnicos,
cantidad de copas en disputa, situacin econmica del club, cambio de dirigentes. Ac
la limitacin est dada por la obtencin de esos datos, que lamentablemente no los
podemos conseguir.
Referencias
Bayesian Learning
http://pln.famaf.unc.edu.ar/sites/ia2012/ia/filminas/aprendizaje_bayesiano.pdf
http://www.cs.colorado.edu/~grudic/teaching/CSCI4202_2004/Bayesian_Book.pdf
Decision Trees
http://www.cs.utexas.edu/~mooney/cs391L/slides/dtrees.pdf
http://en.wikipedia.org/wiki/Decision_tree
Machine Learning
http://www.cs.cmu.edu/~tom/mlbook.html
http://en.wikipedia.org/wiki/Machine_learning
Python
http://www.python.org/
Weka
http://prdownloads.sourceforge.net/weka/weka.ppt,
http://www.cs.waikato.ac.nz/ml/weka/
ZODB
http://www.zodb.org/
Apndice
A Obtencin de Informacin
Los scripts usados para extraer la informacin de la web pueden encontrarse en el siguiente
link.
Se crearon las siguientes estructuras de datos para almacenar la informacion:
Match: Equipos que juegan un partido, resultado, fecha.
Round: Nmero de ronda dentro del torneo, conjunto de partidos de la ronda.
Tournament: Consta de un nombre y de un conjunto de rondas.
FootballYear: Nmero de ao y conjunto de torneos que se jugaron ese ao.
Se utilizaron regex para facilitar el parseo, de la informacin relevante. Pueden encontrarse en
el siguiente archivo.
El parseo de la pgina se dividi en tres partes:
Identificar numero de rondas (11 Regex)
Identificar fechas de partidos (7 regex)
Identificar partidos (14 regex)
Se buscan todas los matches de las expresiones regulares sobre una pagina, y luego se
guarda esa informacin en la base da datos. Es por eso importante mantener las expresiones
regulares disjuntas (ie. un string no pueda satisfacer simultneamente dos regex), para no
agregar un partido (o fecha, o ronda) ms de una vez.
Las regex se fueron agregando progresivamente. Se arm un maquinaria para poder
asegurarnos que al agregar nuevas regex de partidos, fechas o rondas no se corrompieran los
datos obtenidos de otros aos.
Lamentablemente en el caso de los partidos no se pudo mantener las regex disjuntas, fue
imposible mantener el cdigo lo ms general posible y diferenciar el siguiente caso:
Equipo nmero 1
4-3
Los nombres de equipos siempre son una serie de strings no nulos separados por exactamente
un espacio. Sin embargo haba algunos casos en que la informacin sobre el emplazamiento
donde ocurra el partido tambin se encontraba separado por un espacio del nombre de un
equipo.
Otro problema de inconsistencias en la presentacin de la informacin fueron los nombres de
los equipos, por ejemplo
indepdente.
ind. avellaneda
independiente
independiente de avellaneda
independiente [A]
eran algunas de las tantas formas de referirse a Club Atltico Independiente.
Para solucionar los dos problemas arriba mencionados, se implemento un script en python que
normaliz los nombres de los equipos y eliminar entradas repetidas. El mapeo de a nombres
estandarizados tuvo que realizarse a mano.