You are on page 1of 28

Prediccin de

Partidos de Ftbol

Andrs Matas Bordese


08/11/12
Fa.M.A.F, Universidad Nacional de Crdoba

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.

A dado una fecha f y un natural n


lista l=[({ A , Bn }, Ln , S n ,(G Ai , G Bn )), ... , ({ A , B1 } , L1 , S 1 ,(G A1 ,G B1 ))]
Definimos Historia Reciente de un club

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

Definimos Historial entre un club A y un club


fecha se enfrenten A y B , y un natural n

dada una fecha


como la lista

f , tal que en esa

l=[( Ln , S n ,(G An , G Bn)) , ... ,( L1 , S 1 ,( G A1 , G B1))]


Donde:

Li { Local ,Visitante }
S i Nombres de estadios
G Ai ,G Bi

( Li , S i , (G Ai , G Bi )) L representa al i-simo partido anterior al de la fecha f


entre el equipo A y el equipo B . Ese partido se jug en el estadio S i , donde se
consider como Li a A y el resultado final fue G Ai goles para A y G Bi para
B .
La tupla

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 } .

Resolucin del Problema


Roadmap de las tareas a realizar para la resolucin:
1. Obtener alguna fuentes de informacin de los resultados de la primera divisin del fbol
Argentino.
2. Procesar la informacin conseguida, y guardarla de manera estandarizada en una base
de datos.
3. Decidir los atributos a utilizar para predecir los resultados [Modos].
4. Construir a partir de la base de datos las instancias para poder entrenar y evaluar los
clasificadores.

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]

Equipo_19 goles_19 : goles_20 Equipo20

Ronda 19
Torneo Y
.

Caractersticas:
1. Nombre de Campeonato(s).
2. Fechas.
3. Rondas.
4. Equipos que se enfrentan.
5. Resultado enfrentamiento.

6. Cancha en que se enfrentan.


7. Acontecimientos extraos (Suspensiones, quita de puntos, etc).
De la lista anterior, se pueden observar en negrita ciertas caractersticas, esas son las que
utilizaremos nosotros utilizaremos, a las otras dos no las utilizaremos por su irrelevancia
(Nombre de Torneo) o por su complejidad (Acontecimientos extraos).

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

[at Vlez Sarsfield]

2-1 Platense (VL)

Entrada 1973
2nd Round
9.3.1973
Argentinos Juniors 3-5 River Plate

Municipal General San Martn

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

Ms informacin sobre estos scripts puede encontrarse en el Apndice.


Finalmente, luego del proceso de parseo y estandarizacin tenemos una base de datos
estructurada con ms de 150 equipos y alrededor de 28667 partidos.

3 Atributos a utilizar para la prediccin [Modos]

Una vez ya dispuesta y normalizada la informacin en la base datos, se puede comenzar a


entrenar los clasificadores, pero primero hay que decidir la forma que van a tener las
instancias. Se atac el problema de tres enfoques diferentes.

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:

FaceToFace(T 1, T 2 , n)={HistoriaReciente (T 1 , p , n)+ HistoriaReciente (T 2 , p , n)+[ p]:


p PartidosEntre (T 1 , T 2 )}
En esta modalidad podemos analiza cuanto influyen los n anteriores enfrentamientos de la
historia reciente en el siguiente. Intuitivamente lo que esperaramos encontrar es una
dependencia mayor de los partidos ms cercanos y a medida que tenemos en cuenta ms y
ms partidos stos dejan de ser significativos.
En palabras ms simples lo que este modo intenta hacer es predecir el resultado de un derby
mediante una evaluacin de como llegan (los resultados de los partidos) los dos equipo al
enfrentamiento mutuo.
En el siguiente grfico puede apreciarse este modo en accin para el par de clubes (San
Lorenzo de Almagro, Boca Juniors).

Aug 10 Aug 17 Aug 24 Aug 28 Sep 5 Sep 11


{SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?}
V
L
V
L
V
L
V
E
E
V
E
V
Aug 10 Aug 17 Aug 24 Aug 28 Sep 5 Sep 11
{B, ?} {B, ?} {B, ?} {B, ?} {B, ?} {B, ?}
V
L
V
L
V
L
V
L
V
V
E
D

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:

Solo ( Equipo , n)={HistoriaReciente ( Equipo , p , n)+[ p ]: p partidos( Equipo)}

Aug 10 Aug 17 Aug 24 Aug 28 Sep 5 Sep 11


{SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?}
V
L
V
L
V
L
V
E
E
V
E
D

Sep 18
{S, ?}
L
?

En palabras ms simples, intentamos predecir el resultado del prximo partido de un equipo en


base a como llega al mismo.
Al igual que en face to face, el n es un parmetro para este modo por lo que podemos ir
aumentando la cantidad de partidos que miramos hacia atrs y ver como esto influye en
nuestra prediccin del resultado.

Solo + Goles de Diferencia


Es una generalizacin de la modalidad solo, por lo tanto muy similar a la anterior. La diferencia
radica en que para un partido p se utilizan a dems de los n partidos anteriores la
diferencia de goles obtenida en los n partidos anteriores.
Donde DiferenciaDeGol ( p1, Equipo)= p 1 . goles(Equipo) p 1 . golesOtroEquipo( Equipo)
n

DiferenciaDeGoles (( p1 ,... , pn), Equipo)= DiferenciaDeGol ( pi , Equipo)


i =1

con

p i Partidos Equipo Nombre de Equipos .

Clasificaremos la diferencia de goles en las siguientes clases:


Desde

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

Aug 10 Aug 17 Aug 24 Aug 28 Sep 5 Sep 11


{SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?}
V
L
V
L
V
L
V
E
E
V
E
D

G: [12, 16)

Sep 18
{S, B}
?}
L
?

4- Construccin del Dataset y Entrenamiento


Para predecir los partidos se utiliz una herramienta de machine learning weka, y se utilizaron
los clasificadores SMO (con el kernel por defecto), J48 y Naive Bayes.
J48: es una versin del algoritmo C4.5 de J. Ross Quinlan. Los rboles de decisin son la
forma clsica de representar la informacin de un algoritmo de machine learning y brindan una
forma poderosa y fcil de mostrar estructuras de datos.
Naive Bayes: es un clasificador probabilstico basado en el teorema de Bayes y algunas
hiptesis simplificadoras adicionales. Es a causa de estas simplificaciones, que se suelen
resumir en la hiptesis de independencia entre las variables predictoras, que recibe el apelativo
de ingenuo.
SMO: Sequential minimal optimization es un algoritmo para resolver de manera eficiente el
problema que se produce durante el training de las support vector machines. Fue inventado por
John Platt en 1998 en Microsoft Research.
Debemos tener en cuenta que para trabajar con weka, se necesita que los datos se encuentren
en un formato especfico, arff.
Para poder llevar a cabo los tres anlisis arriba nombrados se diseo en python un script que
generar a partir de la base de datos de partidos, las salidas en formato arrf necesarias.

Solo Arff

OODB

Py Script

Face to Face Arff

Solo+ Arff

Veamos el pseudocdigo necesario para generar las instancias para entrenar a los
clasificadores.

Face To Face

function generarInstancias(equipo1, equipo2, n, output)


for match in matches(equipo1, equipo2) do
l1 = HistoriaReciente(equipo1 , match, n)
l2 = HistoriaReciente(equipo2, match, n)
if len(l1) == n and len(l2) == n then
l1 = dejarSoloResultadoYLocalia(L1, equipo1)
l2 = dejarSoloResultadoYLocalia(L2, equipo2)
m = dejarSoloResultadoYLocalia([match], equipo1)
output.write(l1+l2+m)
fi
done
end
Ejemplo los atributos usados en un arff para el par (Boca Juniors, Racing Club de Avellaneda) y
n = 1.

@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}

# Locala de Boca en el partido anterior al derby


# Resultado de Boca en el partido anterior al derby.
# Locala de Racing en el partido anterior al derby
# Resultado de Racing en el partido anterior al derby
# Locala de Boca en el derby
# Resultado del derby

Donde {L, V} representan al conjunto {Local, Visitante} y {W, L, T} representa al conjunto


{Victoria Boca, Derrota Boca, Empate}.

Solo

function generarInstancias(equipo, n, output)


for match in matches(equipo) do
L = HistoriaReciente(equipo, match, n)
if len(L) == n then
L = dejarSoloResultadoYLocalia(L, equipo)
m = dejarSoloResultadoYLocalia([match], equipo)
output.write(L+m)
fi
done
end
Ejemplo de un de los atributos de un arff para el club San Lorenzo de Almagro y n = 3.
@attribute L-3 {L,V}
@attribute G-3
@attribute L-2 {L,V}
@attribute G-2
@attribute L-1 {L,V}
@attribute G-1
@attribute L-0 {L,V}
@attribute Class

{W,L,T}
{W,L,T}
{W,L,T}
{W,L,T}

# Locala de SL 3 fechas antes del partido p


# Resultado del partido de 3 fechas atrs a p
# Locala de SL 2 fechas antes del partido p
# Resultado del partido de 2 fechas atrs a p
# Locala de SL una fecha antes del partido p
# Resultado del partido anterior a p
# Locala de SL en el partido p
# Resultado partido p

Donde {L, V} representan al conjunto {Local, Visitante} y {W, L, T} representa al conjunto


{Victoria San Lorenzo, Derrota San Lorenzo, Empate San Lorenzo}.
El pseudocdigo para generar las instancias del modo solo+ es muy similar al del modo solo,
nicamente se agrega un atributo ms a las instancias que es la diferencia de goles.
Pueden verse ms ejemplos de instancias en los siguientes links FaceToFace, Solo, Solo+.
Notemos que por el significado de las tres diferentes modalidades, en Face To Face se tienen
muchas menos instancias para entrenar y por ende para evaluar que en las otras dos.
Modalidad

# Instancias Promedio para un club (o par de


clubes)

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:

{ J48 , SMO , Naive Bayes } se mostrarn 6 grficas que

Variacin de precisin en funcin de n (cantidad de partidos hacia atrs que se tiene


en cuenta) para cada clasificador.
Variacin del estadstico kappa en funcin de n para cada clasificador.

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

Conseguir una versin ms eficiente de SMO, o conseguir una mquina ms poderosa


para poder hacer pruebas cambiando kernel, c y epsilon sin quedarnos sin tiempo de
computacin.
Otra de las tareas que quedo pendiente fue la combinacin de clasificadores. La idea
predecir el resultado entre dos equipos usando una combinacin de los clasificadores
estilo solo, es decir aprender a predecir los partidos de un equipo, eg. San Lorenzo,
aprender a predecir los partidos de otro equipo, eg. Boca Junios, y despus combinar el
conocimiento de los dos clasificadores para hacer una prediccin del enfrentamiento
entre ellos.

Aug 10 Aug 17 Aug 24 Aug 28 Sep 02 Sep 09


{SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?} {SL, ?}
V
L
V
L
V
L
W
T
T
W
L
?

Aug 10 Aug 17 Aug 24 Aug 28 Sep 02 Sep 09


{SL,
{B, ?}
?} {SL,
{B, ?}
?} {SL,
{B, ?}
?} {SL,
{B, ?}
?} {SL,
{B, ?}
?} {SL,
{B, ?}
?}
V
L
V
L
V
L
W
T
W
T
T
L
W
T
L
?

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

Equipo nmero 2 at Cancha

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.

You might also like