Árboles de Regresión. Algunos Algoritmos y Extensiones A Métodos de Consenso Autor David Gonzalo Ejea Carbonell
Árboles de Regresión. Algunos Algoritmos y Extensiones A Métodos de Consenso Autor David Gonzalo Ejea Carbonell
Algunos algoritmos
y extensiones a métodos de consenso.
The main object of interest in this work will be the so called Regression Trees. This tool and its
related techniques, emerged as an evolution of other related approaches like the AID by Morgan and
Sonquist [14] (1963) for regression problems, its adaptation, THAID, to classification by Messenger
and Madell [13] (1972) or the recursive partitioning for regression proposed by Kass [10] in 1980.
Nevertheless, the appearance in 1984 of the book Clasification and Regression Trees (CART) by
Breiman et al. [3] supposed a turning point in this kind of techniques developing a well-established
theory. As of today, this book and its corresponding approach based on a recursive partitioning and its
posterior prunning, remains as the cornerstone of the recent tree theory and it will be the basis of what
we will develop in this work.
Unlike the usual linear regression approach, tree-based methods turn out to be non-parametric met-
hods, i.e., they try to fit the available data without a predetermined functional form depending on a set
of parameters. In particular, fitting a regression tree can be seen as an additive model of the form
Averaging methods: Different trees models are fitted independently by resampling. Finally, indi-
vidual predictions are gathered into one single outcome. In this work, we are introducing Bagging
III
IV Capítulo 0. Summary
Boosting methods: Unlike the previous methods, trees are grown sequentially using information
from the preceding ones. These methods do not use bootstrap but a modified version of the data
is used. Boosting, which will be described and used in this work, or AdaBoost are examples of
this methodology.
The boosting approach tries to build a model which learns slowly from data emphasizing on
the worst predicted points to correct the bad performance of the method. At each stage of the
procedure, residuals are fitted with trees and the boosting regressor is updated determined by
different learning parameters to module the learning speed.
In the last chapter, an application of the tree theory over a soccer/football dataset is provided. In
particular we have 38 variables out of 547 football players of the Spanish national competition during
the 2016/2017 season.
First of all, we find that the performance of trees are poor compared to linear regression. While
averaging methods stay very close to linear regression, boosting beats in goodness of fit every other
considered method.
Checking the relative importance of variables, we find that the rating of player is mostly determined
by the minutes that he plays, the number of his appearances in the starting team, his current team, the
average number of good passes and shot, as well as the number of goals that he scores.
Finally, the considered methods are applied over the same dataset but just considering the most
important variables. While results are qualitatively the same, we find that the averaging methods achieve
the same or even a better performance than an equivalent linear regression model, yielding a random
forest model almost with the same predictive power than a boosting model.
Índice general
Summary III
1. Introducción 1
1.1. Estructura de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Contexto histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3. Motivación de la Regresión lineal y Árboles . . . . . . . . . . . . . . . . . . . . . . . 2
2. Árboles de regresión. 5
2.1. Árboles, conceptos generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Construcción de Árboles de regresión. . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3. Poda de arboles de regresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4. Arboles de clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5. Reglas Subrogadas y el tratamiento de Datos Missing . . . . . . . . . . . . . . . . . . 9
3. Métodos de agregación 11
3.1. Bagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Random forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1. Importancia de las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3. Boosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Ejemplo práctico 15
4.1. Depuración de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2. Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Bibliografía 23
Anexo I: Código en R 25
V
Capítulo 1
Introducción
1
2 Capítulo 1. Introducción
impureza) se minimizara, procediendo así hasta que la mejora dividiendo nodos no fuera sustancial en
base a un criterio inicial.
Dicha idea es posteriormente adaptada con éxito a los problemas de clasificación, ver por ejemplo
los trabajos de Light y Margolin [11] (1971) y el de Messenger y Mandell [13] (1972) donde introducen
el método THAID (THeta Automatic Interaction Detection), donde la variable dependiente no posee
una relación de orden, adaptando la medida de impureza con otros criterios basados en la entropía o
el índice Gini en los primeros años. En esta línea, es en 1980 cuando Kass [10] propone un algoritmo
recursivo basado en la regresión paso a paso para la selección de nodos llamado CHAID (Chi Square
Automatic Interaction Detection).
Sobre estas bases, se perfeccionan lentamente los algoritmos de particición de nodos, hasta la apa-
rición de la publicación del trabajo de CART (Classification and Regression Trees) por Leo Breiman
[3] en 1984. El enfoque que propone es similar al antes mencionado del AID, dejando en este caso cre-
cer el árbol sin regla de parada, para posteriormente podarlo minimizando el error estimado mediante
validación cruzada. Además, este procedimiento subsana carencias de los métodos anteriores como el
sub-entrenamiento y el sobre-entrenamiento a expensas de un mayor coste computacional y puede lidiar
con datos faltantes mediante el uso de los llamados nodos "subrogados". Además, permite extensiones
en las que se pueden establecer cortes lineales, es decir, cortes que empleen una combinación lineal de
variables en contraposición a lo que sucedía en el AID.
Después de la salida del libro de Breiman se han propuesto diversas variaciones del método original,
pero la idea principal sigue subyaciendo en el particionamiento recursivo y en la posterior poda. Entre
estos trabajos podemos destacar RETIS de Karalic (1992, [9]) o M5 de Quinlan(1992, [15]) que abogan
por enfoques diferentes de como integrar modelos lineales en las hojas de los árboles de regresión.
De este modo, los métodos basados en la metodología CART han suscitado un gran interés por
parte de la comunidad científica debido a su fácil uso y razonable precisión de predicción, poco coste
computacional, una muy arraigada disponibilidad en los paquetes de software y una gran versatilidad
que permite su aplicación en una amplía tipología de problemas, así como una clara interpretabilidad de
los resultados.
donde X, al igual que en caso anterior, será el vector de variables que tengamos sobre el problema. En
el campo de la inferencia, cabe preguntarse sobre cuales de esas variables X j son realmente útiles a la
hora de predecir o estudiar el comportamiento de la variable objetivo Y , y si lo son, cual es su tipo de
relación. En particular, dentro de los métodos paramétricos esa relación podría ser lineal, entrando de
lleno en una de las ramas de la estadística más estudiadas a lo largo de la historia. Más concretamente,
en una regresión lineal se busca una función f de la forma
donde β0 es el termino constante, βi para i > 0, son los parámetros de cada variable independiente, y
p es el número de parámetros independientes. Así pues, la estimación f pasa a ser el problema de la
estimación de β = (β0 , β1 , . . . , β p )T , y si bien es cierto que existen muchas maneras de estimar el vector
de coeficientes β , por popularidad, conocimiento sobre el mismo, propiedades deseables y facilidad de
manejo, destaca sobre todas ellas el procedimiento de ajuste mediante mínimos cuadrados ordinarios.
En particular, se demuestra que este método bajo ciertas hipótesis básicas, coincide con el de máxima
verosimilitud cuando ε es de tipo gaussiano. En este caso, geometricamente la estimación pasa a ser
la proyección ortogonal sobre el espacio de funciones posibles según las hipótesis para f , y además,
satisface el Teorema de Gauss-Markov por el cual estamos antes el mejor estimador lineal insesgado
desde el punto de vista de minimización de la varianza (ver por ejemplo el libro de Faraway, [6], 2002).
Sin embargo, aún siendo cierto que el suponer una forma paramétrica para f , y más una forma
lineal, simplifica mucho el problema de su estimación, esto puede suponer un gran problema si el me-
canismo real difiere mucho de las formas asumidas para f dando lugar a estimaciones y resultados de
los mismos muy pobres. Este puede ser el caso cuando existen efectos multiplicativos o interacciones
entre las variables del modelo final. Los modelos de árboles solucionan este inconveniente de modo
natural aumentando el número de particiones del espacio cuando sea necesario. Además, los métodos
no-paramétricos, que tratan de aproximarse a los datos disponibles de una manera controlada sin esa
forma funcional, tienen el potencial de adaptarse a un número de escenarios mayor evitando el problema
citado anteriormente, aunque con la desventaja de que normalmente requieren un número mayor de da-
tos disponibles para entrenar estos métodos al tener que buscar en un espacio mayor. Entre los métodos
no-parámetricos podemos contar por ejemplo los splines, KNN o K-vecinos próximos y los árboles que
trataremos en esta memoria.
A la vista de esta introducción, parece claro que los árboles serán una alternativa muy interesante
cuando la linealidad de los datos sea una hipótesis alejada de la realidad, pues este procedimiento nos
ayudará a capturar esa no-linealidad mediante la división en distintos espacios que proponen los árboles
de regresión. Por último, cabe añadir, que el modelo de los árboles de regresión puede verse en cierto
modo como una regresión constante a trozos. Mientras que la regresión lineal suponía para f la forma
dada en la ecuación (1.3), para los modelos de regresión podemos escribir el siguiente modelo aditivo
donde R1 , . . . , RM representan las diferentes particiones del espacio de las variables independientes. Sin
embargo, al ser los R1 , . . . , RM regiones del espacio por determinar, para un número M desconocido,
también a elegir en base a los datos y los criterios utilizados, el problema no puede reducirse al de
regresión lineal y la ecuación (1.3).
Por último, entre las ventajas de los árboles de regresión sobre la regresión lineal podemos encontrar:
Son mucho más fáciles de interpretar, más que una regresión lineal de una sola variable, incluso
para los no expertos. De hecho, el sistema de interpretación de los árboles replica en cierto modo
a la toma de decisiones humana.
Pueden tratar con regresores cualitativos sin crear variables dummy o auxiliares.
4 Capítulo 1. Introducción
No necesitan asumir hipótesis sobre las relaciones entre las variables de estudio.
Entre los inconvenientes, y además del caso ya mencionado en el que existe una linealidad clara,
podemos señalar que existen ciertos métodos que dan normalmente lugar a estimaciones más precisas.
Sin embargo, veremos también en esta memoria como corregir esta desventaja con los métodos de
agregación o ensamblado. Por otro lado, estos métodos son algo más inestables ante perturbaciones de
los datos, perdemos en cierto modo el sentido geométrico de la regresión lineal, y se suele requerir un
mayor número de datos para igualar su fiabilidad.
Capítulo 2
Árboles de regresión.
5
6 Capítulo 2. Árboles de regresión.
Teorema 1. La constante k que minimiza el valor esperado del error cuadrático es el valor medio.
donde
h i Z ∞
φ (k) = E (Y − k)2 = (y − k)2 f (y)dy
Z−∞
∞
= (y2 − 2yk + k2 ) f (y)dy (2.2)
Z−∞
∞ Z ∞
= y2 f (y)dy − 2k y f (y)dy + k2 . (2.3)
−∞ −∞
Z ∞
∂
φ (k) = 0 ⇔ 0 − 2 (y) f (y)dy + 2k = 0
∂ (k) −∞
Z ∞
⇔k= y f (y)dy = E[Y ] (2.4)
−∞
n: número de casos.
T − Tt : Árbol T podado en el nodo t. Por ejemplo, en la figura 2.1, T − Tc sería el árbol compuesto
por los nodos A, B, D y G.
S(T ): Sum of Squared Errors del árbol T o suma total de errores cuadráticos, definida como
S= ∑ ∑(yi − ml )2 . (2.5)
l∈T̃ i∈l
Corte binario o corte: Es una proposición del tipo X j ≤ c para una constante c ∈ R. Al trabajar
con un número de datos finito, el valor de c no da lugar a posibles problemas de identificación
tomando siempre el valor menor (que coincidirá con el valor en esa variable de un dato) a la hora
de determinar c en un corte.
Como vemos, el algoritmo toma una forma de búsqueda ávida o vóraz, pues toma decisiones local-
mente óptimas a cada paso, en este caso el mejor corte posible. Y es descendente, ya que comienza en el
nodo raíz y divide sucesivamente el espacio de predictores. Calcular en un primer momento de manera
exhaustiva todos los posibles particionamientos del espacio sería inalcanzable computacionalmente para
la mayor parte de las aplicaciones.
El criterio de parada suele establecerse como un umbral δ que es la mejora mínima que se exige cada
vez que se realiza un corte, aunque existen otras opciones. En cuanto al criterio de nodos terminales, es
común encontrarse con condiciones como un mínimo número de datos en cada nodo para evitar nodos
con pocos participantes. De hecho, el S(T ) de un árbol con una hoja por cada dato sería cero en este
caso. El problema con este razonamiento es la fiabilidad de nuestras estimaciones, que estarían basadas
en muestras muy pequeñas, lo que nos lleva a modelos con mala precisión predictiva. Este fenómeno se
conoce como overfitting o sobreentrenamiento . Existen dos procedimientos alternativos para minimizar
este problema:
1. Especificar criterios de parada y nodos terminales como se ha explicado. A estos criterios se les
llama criterios pre-poda.
2. Cultivar un árbol muy grande y después podarlo como se verá en la siguiente sección.
solamente el criterio de nodo terminal, pues al ser una búsqueda ávida y no exhaustiva, es posible que
un corte no tan bueno desde el punto de vista el del error, permita otro posterior mucho mejor. De ahí la
importancia de dejar crecer el árbol para su posterior podado, e imponer criterios de parada laxos en la
fase de crecimiento del árbol.
Si bien es cierto que existen muchas maneras de realiza esta poda, en CART se propone el cost
complexity pruning (podado de coste de complejidad) también llamado weakest link pruning, o podado
del eslabón más débil. De nuevo, una estimación de todos los posibles subárboles suele estar fuera del
alcance en problemas reales.
Esto se basa en estimar mediante validación cruzada el error de un determinado subarbol. La vali-
dación cruzada es una técnica de remuestreo que nos permite evaluar la precisión de nuestro modelo.
Surge como una mejora del holdout method o método de retención, en el que dividíamos el conjunto de
datos en dos subconjuntos, uno son los datos de entrenamiento o training set, que se usa para validar el
análisis en el otro subconjunto (datos de prueba o test set), de ahí el nombre de la técnica.
Hay muchas maneras de aplicar esta técnica, pero usaremos la más común, la validación cruzada
de k bloques o K-fold cross-validation, en la que como su nombre indica, aplicaremos k veces el
método holdout sobre una partición aleatoria del training set en k grupos de tamaño igual o similar y
promediaremos sus errores.
Así pues, este tipo de podado se hace mediante la minimización sobre una cantidad formada por una
estimación de la bondad del ajuste más una penalización de la complejidad del modelo. En el caso de los
árboles de regresión trabajaremos con la siguiente cantidad, donde α es una parámetro real a escoger,
Sα (T ) = S(T ) + α | T̃ | . (2.6)
Como vemos en la formula anterior, pretendemos disminuir el error total S, pero sin aumentar de
manera drástica el número de hojas del árbol, de ahí la importancia del término de penalización.
Podemos esquematizar este algoritmo de la siguiente manera, para más detalles ver el libro de
Breiman [3].
y establecer t1 := t, α2
= g1 (t1 ) yT2= T 1 − Tt11 .
Paso i-ésimo: Seleccionar el nodo t ∈ T i que minimice
S(t) − S(Tti )
gi (t) = ,
T˜ i − 1
t
y establecer ti := t, α i+1
= gi (ti ) y T i+1 = T i − Ttii .
Paso Final: Al llegar en el paso n a la raíz (T n =Nodo Raíz) se tienen la secuencias
T 1 ⊇ T 2 ⊇ · · · ⊇ T n.
α 1 ≤ α 2 ≤ · · · ≤ α n.
Elegir α k , mediante validación cruzada minimizando Sα (T k ).
FINAL DEL ALGORITMO
Si bien nosotros optaremos por este modo de poda al ser el más popular y uno de los más estudiados,
cabe añadir que existe métodos más simples para ello, como el ir eliminando corte a corte mediante
validación cruzada mientras mejore la estimación del error de predicción.
TFG de Matematicas - David Ejea 9
donde p̂lk es la proporción de observaciones de la región u hoja l que pertenecen a la clase k. Sin
embargo, pueden emplearse también medidas asociadas a esta cantidad ya que suelen tener un mejor
desempeño si el enfoque no es solamente el de mejorar la tasa de clasificación. Por ejemplo, sumando
en las K clases diferentes de individuos podemos utilizar el índice de Gini G:
K
G= ∑ p̂lk (1 − p̂lk ), (2.8)
k=1
también llamado pureza de los nodos, pues un valor bajo indicaría que un nodo contiene principalmente
observaciones de una única clase. Y de igual modo, es popular utilizar la entropía D del mismo modo:
K
D = − ∑ p̂lk log p̂lk . (2.9)
k=1
En cualquier caso, la nueva regla de asignación de las observaciones, y cualquiera de estos criterios
ponderados por el número de observaciones de la hoja a la que pertenecen, nl , pueden hacer el papel de
la media y de S(·) en el algoritmo de construcción del árbol explicados en la sección 2.2 .
microarray), los datos suelen contener muchos datos faltantes (missing) al haber una gran cantidad de
variables y una probabilidad no despreciable de no medir correctamente dicho campo. No es posible
por tanto desechar simplemente los individuos que no posean sus características completas puesto que
estaríamos perdiendo gran parte de la muestra. Uno de los enfoques más característicos de las técnicas
basadas en árboles para los datos faltantes es el de los cortes o reglas subrogadas.
Los árboles, tanto en clasificación como en regresión, abordan este problema buscando un corte
alternativo cuando la variable que se debería utilizar en determinado nodo no se encuentra disponible
en el dato de test. Para encontrar otro corte basado en otra variable, se buscará una división que lleve a
una partición de los datos similar a la del corte óptimo. Del mismo modo, si dicho corte hiciera uso otra
vez de una variable faltante, se procedería de igual manera hasta encontrar un corte posible para el dato
en cuestión.
Hay que remarcar que en el proceso de búsqueda de una corte subrogado no se busca minimizar
la medida de bondad de ajuste elegida en la construcción del árbol, si no que tratan de aproximar el
resultado del mejor corte en cuanto a la división en dos partes de los datos. Es decir, el objetivo es
replicar el mejor corte de la mejor forma posible en función de los individuos que van hacia una y
otra rama del árbol. El motivo de este procedimiento es el hecho de que lo que se pretende es que
los subsiguientes cortes del árbol original sigan creando unas particiones similares para las que fueron
creados, ya que nada garantiza el hecho de que el segundo mejor corte divida los datos de una manera
similar aunque su medida de bondad de ajuste esté muy cerca del primero.
Capítulo 3
Métodos de agregación
Tanto en clasificación como en regresión, existen estrategias basadas en la mezcla de modelos para
mejorar la precisión. Estos métodos se denominan ensemble methods ya que combinan los resultados
de más de un modelo.
Se puede distinguir dos familias:
Averaging methods: Son métodos en los que se construyen predictores independientes y luego
se combinan las predicciones en una etapa final. Como ejemplo, podemos encontrar el bagging,
random forest...
Boosting methods: A diferencia del anterior las estimaciones se crean secuencialmente, es decir,
se va aprendiendo de las estimaciones anteriores. Entre estas técnicas se encuentran el boosting o
ada boost entre otros.
Si bien un objetivo común de los ensemble methods aplicados sobre los árboles es el mejorar la precisión
de los mismos, sus características dependen principalmente del tipo exacto de técnica que se aplique.
En esta memoria trataremos algunas de ellas.
3.1. Bagging
Bagging es una técnica introducida por Leo Breiman en 1994 [1]. El nombre deriva de bootstap
aggregation y fue uno de los primeros métodos efectivos de tipo ensemble learning. Aunque se diseñó
originalmente para la clasificación y habitualmente se aplica en árboles de decisión, se puede aplicar
tanto en modelos de regresión como de clasificación indistintamente. El primer paso de este algoritmo es
generar B distintos boostrap trainning sets o boostraping. El Bootstrap es un procedimiento propuesto
inicialmente por Efron (1979) [4], basado en crear un número B de muestras con remplazamiento del
mismo tamaño que el conjunto inicial y ajustar un estadístico para cada una de ellas. En nuestro caso,
se ajustará un árbol sin podar para reducir el sesgo todo lo posible, y aún siendo la varianza del mismo
alta, al combinarlos entre sí la misma se reduzca.
En cada iteración bootstrap, se utilizan cada vez aproximadamente 23 de los datos para ajustar el
árbol correspondiente y el tercio restante se consideran observaciones out of bag (OOB). Este resultado
viene de tomar el límite
1 n
lı́m 1 − = e−1 ≈ 0,36 (3.1)
n→∞ n
pues (1 − 1n )n es la probabilidad de que un dato no se seleccione para una muestra boostrap de tamaño
n cuando n → ∞ ya que, a cada elección con remplazamiento la probabilidad de seleccionar un dato
concreto es claramente (1 − n1 ), de donde al repetir de manera independiente n veces se obtiene el
resultado.
Por ultimo se promedian todas las predicciones de los distintos árboles obteniendo una predicción
generalmente mucho más precisa que las de los modelos individuales.
11
12 Capítulo 3. Métodos de agregación
El OOB es un método que nos sirve para estimar errores. En cada iteración boostrap hay datos que
quedan fuera, es decir, que para cada árbol hay un conjunto OOB que no se usa para el entrenamiento.
De este modo, OOB es el error de predicción medio para los datos que quedan fuera del ajuste del árbol
en cada iteración, llamando error OOB al promedio de esta cantidad a lo largo de las M iteraciones que
componen el bagging.
La construcción de bagging se realiza de manera algorítmica del siguiente modo:
ALGORITMO DE BAGGING
Se escogerá entre los m predictores elegidos de forma aleatoria de entre los p predictores consi-
derados.
Con este proceso, random forest nos permite romper con la correlación entre los árboles intermedios
ayudando a tener predicciones más fiables. Y es debido a la ruptura de esta correlación, que un predictor
TFG de Matematicas - David Ejea 13
1 M ∗ 1 M M ∗ ∗ 1 M M
Var( ∑ i g (x)) = ∑∑ Cov(gi (x), g j (x)) = 2 ∑∑
Cov(g∗i (x), g∗j (x)) +Var(g∗i (x)) (3.2)
M i=1 M 2 i=1 j=1 M i=1 j6=i
1 M ∗ 1 M
Var( ∑ gi (x)) = 2 ∑ ((M − 1)ρσ 2 + σ 2 )
M i=1 M i=1
Mρσ 2 (M − 1) + Mσ 2 σ 2 ρ(M − 1) σ 2
= = +
M2 M M
σ 2 (1 − ρ)
= ρσ 2 + . (3.3)
M
3.3. Boosting
Es un método para mejorar la capacidad predictiva de los modelos basados en árboles propuesto
por Schapire [16] . A diferencia del bagging, el boosting es secuencial. Esto quiere decir que se van
ajustando arboles al training data de manera iterativa, de tal manera que a cada paso se va poniendo
más énfasis en las observaciones que no se han ajustado bien por los árboles anteriores. Para hacer esto,
los algoritmos de boosting tratan de optimizar una función de pérdida como la propuesta en (2.5).
A diferencia de los otros modelos ya nombrados, en boosting nos interesa que los árboles no crez-
can mucho y se adapten a los datos, ya que queremos que nuestro procedimiento vaya aprendiendo
lentamente. El algoritmo general para el boosting tiene la siguiente forma:
14 Capítulo 3. Métodos de agregación
Ejemplo práctico
En esta parte se intentara dar un sentido a lo que se ha estudiado en las secciones anteriores mediante
un ejemplo práctico, en el que trataremos con diversos datos de los jugadores de la liga española de
2015/16, toda la información se puede encontrar en https://es.whoscored.com/ .
El principal objetivo en esta parte, además de poner en práctica los métodos explicados anteriormen-
te, será describir qué variables son las más importantes a la hora de formar el rating y entender cómo se
podría calcular con un número reducido de variables y cuánto de buena sería esta aproximación. Elegi-
mos esta variable por encima de la otras, a causa de que provoca más interés, ya que cuando fichas un
jugador en una aplicación te interesa fichar los que más resultados te van a dar, lo cual esta relacionado
con rating.
El conjunto de datos consta de 547 individuos y 38 variables que son:
15
16 Capítulo 4. Ejemplo práctico
Offsides : caer en posición de fuera de juego que resulta en un tiro libre para el equipo contrario.
Una vez expuestas las variables, se debe comenzar siempre con la depuración de la base de datos a
tratar.
La librería rpart nos permite construir modelos tanto de regresión como de clasificación y los mo-
delos resultantes se pueden representar como árboles binarios. Sus principales argumentos son:
Control: Nos permitirá establecer criterios de parada y de nodo terminal, el argumento usado es
cp con el que se controlara la complejidad del árbol, también tenemos minsplit el mínimo de
observaciones que debe existir en un nodo para que se intente una división.
En la primera parte del anexo se puede ver como se ha realizado la depuración en el software R. Con
todo estos cambios la base estará formada por 36 variables y 537 individuos, con la cual trabajaremos.
4.2. Modelado
Como el objetivo principal del trabajo va a ser predecir el rating de un jugador a partir del resto de
variables, el análisis en esta sección estará claramente marcado por este objetivo.
Ya hemos visto que el conjunto de datos con el que vamos a trabajar consta de 36 variables y
537 individuos, pero antes de entrar en materia, dividiremos el conjunto de datos que tenemos en dos
partes. Uno lo usaremos para entrenar, como training set, que constara de 358 jugadores y el otro para
validar nuestro modelo formado por 179 jugadores. De igual manera, para evaluar si el desempeño de
los árboles es relativamente bueno lo compararemos con un modelo de regresión el cual esta formado
con las mismas variables que los árboles que ajustemos.
También comparará el R2ad j de cada modelo, que viene dado por:
(1 − R2 )(n − 1)
R2ad j = 1 − , (4.1)
n−k−1
goals < 18
avgp < 12
7.9
teamnew = A.B,C.V,Dpr,Eb,Es,Gf,L.P,Lv,R.B,R.S,R.V,S.G,Sv
2%
spg < 0.25 avgp < 39
7 7.3
teamnew = A.B,Dpr,Eb,Es,Gr,Ml,R.S avgp < 34 tackles < 1.4
2% 4%
6.2
keyp_x < 0.05 unstch >= 0.75 motm < 0.5 motm < 2.5
3%
6.7 6.9 7
teamnew = Dpr,Gr,Lv,Vll
2% 3% 5%
6.5 6.8
spg < 0.15 keyp_x < 0.65
4% 5%
6.7
teamnew = Dpr,Eb,Gf,Lv,R.B,R.S,Sv teamnew = Eb,Gf,R.V,S.G,Vll
5%
6.2 6.6
teamnew = Dpr,Es,Gr,L.P,Lv,Vll
2% 2%
Se puede decir que es un árbol complejo aunque podemos entenderlo igualmente, pero veamos si
se puede simplificar aún más. Para ello usaremos el método de poda explicado en (2.3). Calculamos
mediante validación cruzada el cp óptimo que para este árbol resulta ser de 0,01038142. Podemos ver
el árbol podado resultante en la figura 4.2.
goals < 18
avgp < 12
7.9
teamnew = A.B,C.V,Dpr,Eb,Es,Gf,L.P,Lv,R.B,R.S,R.V,S.G,Sv
2%
spg < 0.25 avgp < 39
6.3
tackles < 1.9 teamnew = A.B,Bc,C.V,Dpr,Eb,Es,Gf,Gr,L.P,Lv,Ml,R.V,S.G,Sv,Val,Vll
9%
6
tackles < 0.75 teamnew = C.V,Dpr,Eb,Es,Gf,Gr,L.P,Lv,R.V,S.G,Sv,Val,Vll
5%
7 7.3
avgp < 34 tackles < 1.4
2% 4%
keyp_x < 0.05 unstch >= 0.75 motm < 0.5 motm < 2.5
6.7 7
2% 5%
6.8
spg < 0.15
5%
6.5
8%
6.2
2%
El árbol actual es mucho más sencillo, habiendo empleado un número de criterios más reducido.
Como se puede observar en la figura antes del podado las variables como inter, unstch y offsides ya no
están presentes en el árbol podado.
TFG de Matematicas - David Ejea 19
Aunque el árbol podado es más simple está aun muy lejos de ser bueno en comparación con el
modelo de regresión como podemos observar en los siguientes gráficos comparando las predicciones:
Se puede observar que en regresión las predicciones tienen un gran desempeño en comparación con
los árboles, es decir, el rendimiento de los árboles está siendo bastante pobre en comparación.
Veamos si los métodos de agregación explicados nos ayudan a tener una mejora predictiva. Empe-
zaremos aplicando bagging. Para poder aplicar bagging usaremos la librería ipred cuya función bagging
consta de los siguientes argumentos:
Formula: Donde es elegida cual es la variable dependiente y cuales son las predictoras.
Method: Aquí se define el método que queremos usar, standard para bagging y Double para doble
bagging.
Control: Nos permitirá modificar partes importantes del proceso. Solamente citaremos cp con el
que se controla la complejidad del árbol y que mantenemos en su valor por defecto, en este caso
0.001.
Al aplicar bagging se obtiene una mejora sustancial, como se puede ver a continuación en la figura 4.2.
Con este cambio se ha dado una gran mejora predictiva en comparación con los árboles de regresión
observando como los métodos de agregación funcionan, pero en este caso sin alcanzar aún el desempe-
20 Capítulo 4. Ejemplo práctico
ño de la regresión lineal.
Para ajustar un método de Random Forest o Bosques Aleatorios, usaremos la librería randomForests
la cual tiene los siguientes argumentos:
Formula: Donde es elegida cual es la variable dependiente y cuales son las predictoras.
Mtry: Número de variables tomadas al azar como candidatos en cada división. En regresión suele
establecerse 3p .
Con esta propuesta se consigue de nuevo mejora predictiva. Esto, como se ha explicado en la teoría,
puede ser causado por que hay algunas variables cuya importancia es mayor en magnitud que otras
siendo esto la causa de las diferencias con el bagging. Como podemos observar en la figura 4.5, la
variabilidad explicada y la calidad de las predicciones se acercan sustancialmente a la de la regresión
lineal.
En último lugar aplicaremos Boosting mediante la librería gbm, la cual contiene los siguientes pa-
rámetros en su función principal:
Formula: Donde es elegida cual es la variable dependiente y cuales son las predictoras.
Distribution: Aquí se elige que distribución usaremos. En este caso gaussian, pues es la que
establece el error cuadrático como función de pérdida.
Los métodos de agregación, por tanto, han supuesto una amplia mejora respecto a los árboles, sobre
todo el boosting como se puede observar en la figura 4.6 donde el desempeño ya es notablemente mejor
que en la regresión lineal.
TFG de Matematicas - David Ejea 21
Por último y como conclusión pondremos una tabla con las variables más importantes, ya que uno de
nuestros objetivos era ver si se podía imitar o aproximar el modelo rating con menos variables además
de conocer cuales son los factores que más influyen en la puntación de un jugador. En la tabla siguiente
podemos comparar la importancia relativa de las variables más influyentes.
Como podemos ver mins, avgp, motm, teamnew,app_start, goals y spg son de las variables más
importante, con ellas comprobaremos si mejora la capacidad predictiva de los árboles en comparación
con los antiguos. El código de R para esta parte se puede consultar igualmente en el anexo.
4.3. Conclusión
Con todo esto tenemos la siguiente tabla donde podemos comparar los desempeños de las diferentes
técnicas empleadas para los modelos con todas las variables, y también quitando las 25 variables menos
importantes según la sección anterior.
Como podemos ver al quitar 25 variables, aumenta la bondad relativa al número de variables en
el ajuste de los árboles. Al mismo tiempo en bagging, random forest, boosting y regresión se reduce
notablemente, pues estos métodos hacen mejor uso de la información global de la base de datos (hay
que recordar que la mayor parte de las variables no formaban parte de los árboles de regresión).
22 Capítulo 4. Ejemplo práctico
Por otro lado, vemos que boosting supera en ambas ocasiones a la regresión lineal y al resto de
métodos, mientras que en este caso los dos averaging methods quedan ligeramente por debajo.
En cuanto a la comparación de los dos averaging methods, parece que en este caso son superados en
cierto modo por la regresión lineal. Sin embargo, Random Forest se comporta notablemente mejor en
presencia de solo 8 variables, casi al nivel del boosting, y bagging supera por muy poco a la regresión
lineal, pareciendo que esta incorpora algo mejor la información contenida en el resto de las variables.
Finalmente, en la cuestión relativa a la formación del rating de un jugador, hemos comprabado
como las variables con mayor importancia relativa para puntuación de un jugador, tienen que ver con
el número de minutos que disputa el mismo, la media de pases por partido así como la de disparos, los
goles que mete (como parece ser intuitivo), el equipo que juega, y su número de titularidades.
Bibliografía
[3] Breiman, L., Friedman, J.H., Olshen, R.A., Stone, C.J. (1984). Classification And Regression
Trees. Wadsworth, Belmont CA.
[4] Efron, B. (1979): Bootstrap Methods: Another Look at the Jackknife. The Annals of Statistics.,7,
pages 1–26.
[5] Friedman, J.H. (1991). Multivariate Adaptive Regression Splines, The Annals of Statistics.,19,
1–67.
[7] He, Y., (2006). Missing Data Imputation for Tree-Based Models. Los Angeles, University of Cali-
fornia, Tesis de Doctorado.
[8] Hastie, T., Tibsshirani, R., Friedman J.H., (2001).The Elements of Statiscal Learning. Springer.
[9] Karalic, A. (1992). Employing linear regression in regression tree leaves. In Proceedings of ECAI-
92. WileySons.
[10] Kass , G.V. (1980). An Exploratory Technique for Investigating Large Quantities of Categorical
Data, Applied Statistics.,29, 119–127.
[11] Light, R.J., Margolin, B.H. (1971). An analysis of variance for categorical data. J. Amer. Statist.
Assoc.,66, 534–544.
[12] Larsen, D.R., Speckman, P.L. (2004). Multivariate Regression Trees for Analysis of Abundance
Data. Biometrics.,60, 543–549.
[13] Messenger, R., Mandell, L. (1972). A modal search technique for predictive nominal scale multi-
variate analysis. J. Amer. Statist. Assoc.,67, 768–772.
[14] Morgan, J.N., Sonquist, J.A. (1963). Problems in the analysis of survey data, and a proposal. J.
Amer. Statist. Assoc.,58, 415–434.
[15] Quinlan, J.R. (1992). Learning with continuous classes. In Adams Sterling, editor, Proceedings of
AI’92,343–348. World Scientific.
[16] Schapire, R.E. (1990).The strenght of weak learnability. In Machine Learning ,5, 197–227.
[17] Sonquist, J.A., Baker, E.L., Morgan, J.N. (1974). Searching for structure: an approach to analysis
of substantial bodies of micro-data and documentation for a computer program. Survey Research
Center, University of Michigan.
23
Anexo I: Código en R
Librerías
library
1 ( readr )
library
2 ( rpart )
library
3 ( car )
library
4 ( rpart )
library
5 ( rpart . plot )
library
6 ( ISLR )
library
7 ( ipred )
library
8 ( randomForest )
library
9 ( dismo )
library ( gbm )
10
library ( survival )
11
library ( splines )
12
library ( lattice )
13
library ( parallel )
14
laligaplayer
1 <- read _ csv ( " C :\\ Users \\ david \\ Desktop \\ base de datos R \\
laligaplayer . txt " ,
col
2 _ names = FALSE , locale = locale () )
View
3 ( laligaplayer )
4
#5 a~
n adimos el nombre de las variables (38 variables )
names
6 ( laligaplayer ) <-c ( ’ player _ number ’ , ’ flag ’ , ’ name ’ , ’ age ’ , ’
position ’ , ’ tall ’ ,
’7 weight ’ , ’ apps _ start ’ , ’ apps _ sub ’ , ’ mins ’ , ’ goals ’ , ’ assists ’ ,
’8 yel ’ , ’ red ’ , ’ spg ’ , ’ ps _ x ’ , ’ motm ’ , ’ aw ’ , ’ rating ’ , ’ tackles ’ ,
’9 inter ’ , ’ fouls ’ , ’ offsides ’ , ’ clear ’ , ’ drb ’ , ’ blocks ’ , ’ owng ’ ,
’ keyp _ x ’ , ’ fouled ’ , ’ off ’ , ’ disp ’ , ’ unstch ’ , ’ keyp _ y ’ , ’ avgp ’ ,
10
’ ps _ y ’ , ’ crosses ’ , ’ longb ’ , ’ team _ name ’)
11
12
summary ( laligaplayer )
13
14
# # aqui cambiaremos 3 portero ,2 defensa medio ,1 medio delantero
15
unique ( laligaplayer $ position )
16
laligaplayer <- within ( laligaplayer , {
17
18 posinew <- Recode ( laligaplayer $ position , ’" FW "="1"; " M ( CLR ) FW "="1";
" D ( C ) DMC "="2"; " M ( C ) " ="1"; " D ( LR ) M ( CR ) "="2"; " M ( LR ) "="1"; " D ( CL
) "="2"; " D ( L ) "="2"; " D ( CR ) "="2"; " D ( C ) "="2";
19 " D ( L ) M ( L ) "="2"; " AM ( LR ) "="1"; " MF "="1"; " D ( C ) M (
C ) "="2"; " AM ( CL ) "="1"; " GK "="3"; " AM ( L ) "="1";
25
26 Capítulo . Anexo I: Código en R
Modelado
set
1 . seed (1)
filasT
2 <- sample (1: nrow ( laligaplayer ) , floor ( nrow ( laligaplayer ) / 3) )
3
conT
4 <- laligaplayer [ filasT ,]
sinT
5 <- laligaplayer [ - filasT ,]
6
7
#8 # hacemos ahora un árbol
mi
9 . arbol <- rpart ( rating ~ . , data = sinT [ , c (4 ,6:37) ] ,
10 method = " anova " ,
11 control = rpart . control ( cp =0.001) )
TFG de Matematicas - David Ejea 27
12
13
# # cp optimo sale
26
mi . arbol . podado2 <- prune ( mi . arbol , cp = CP . optimo2 )
27
28
prp ( mi . arbol . podado2 , extra =100 , cex = .45 , under =T , yesno = F )
29
30
31
# # Las predicciones del modelo sobre las muestras con que se construyó :
32
par ( mfrow = c (1 ,3) )
33
lmA <- lm ( rating ~ . , data = sinT [ , c (4 ,6:37) ])
34
predsAlm <- predict ( lmA , newdata = conT )
35
36
predsA <- predict ( mi . arbol , newdata = conT )
37
43
modB <- lm ( conT $ rating ~ predsB )
44
plot ( conT $ rating ~ predsB , main = paste ( " Treepodado R2 = " , round ( summary (
45
modB ) $ adj . r . squared ,3) ) )
abline (0 ,1 , lty =2 , col =2)
46
47
48
modAlm <- lm ( conT $ rating ~ predsAlm )
49
plot ( conT $ rating ~ predsAlm , main = paste ( " lmA R2 = " , round ( summary ( modAlm ) $
50
adj . r . squared ,3) ) )
abline (0 ,1 , lty =2 , col =2)
51
52
# # empezaremos ahora utilizar bagging
53
library ( ipred )
54
bag <- bagging ( rating ~ . , data = sinT [ , c (4 ,6:37) ] , nbagg =1000 , method = c ( "
55
standard " ) , control = rpart . control ( cp =0.001) )
56
66
67
68
# # random forest
69
library ( randomForest )
70
Baglaliga <- randomForest ( rating ~ . , data = sinT [ , c (4 ,6:37) ] ,
71 mtry =11 ,
importance = TRUE , ntree =1000)
predBag <- predict ( Baglaliga , newdata = conT , n . trees =1000)
72
moddd <- lm ( conT $ rating ~ predBag )
73
74
# # dibujos
75
plot ( conT $ rating ~ predsAlm , main = paste ( " lmA R2 = " , round ( summary ( modAlm ) $
76
81
# # veamos lass variables importantes
82
importance ( Baglaliga )
83
varImpPlot ( Baglaliga , cex = .45)
84
85
# # boosting
86
# # dibujos
92
plot ( predsboost , conT $ rating , main = paste ( " boosting R2 = " , round ( summary (
93
modboost ) $ adj . r . squared ,3) ) )
94
modAlm <- lm ( conT $ rating ~ predsAlm )
95
plot ( conT $ rating ~ predsAlm , main = paste ( " lmA R2 = " , round ( summary ( modAlm ) $
96
adj . r . squared ,3) ) )
abline (0 ,1 , lty =2 , col =2)
97