gbm

GBM (III): Más allá de las pérdidas cuadráticas

Liberados del estrecho ámbito de nuestra original mentira sugerente gracias a la relación que descubrimos entre residuos y gradientes cuando las pérdidas son cuadráticas podemos adentrarnos en ámbitos más extensos. Lo que discutimos del gradiente tiene una interpretación fácilmente inteligible en el caso de pérdidas cuadráticas. Pero ni la pérdida de interpretabilidad nos impide extender el razonamiento de la entrada anterior a funciones de pérdida distintas de la cuadrática siempre que podamos calcular un gradiente.

GBM (II): Minización de funciones, pérdidas cuadráticas, residuos y gradientes

Para minimizar una función $latex \phi(x)$ es habitual utilizar un procedimiento iterativo: a partir de un punto inicial $latex x_0$ se salta a $latex x_1 = x_0 - \lambda \nabla \phi(x_0)$ (donde $latex \lambda$ es un número pequeño predefinido de antemano), y de ahí, sucesivamente, a $$ x_n = x_{n-1} - \lambda \nabla \phi(x_{n-1}).$$ Porque, típicamente, como cuando uno está en el monte y da un paso corto en la dirección opuesta a la de máxima pendiente, sucede que

GBM (I): Una mentira sugerente

Hace un tiempo resumí los GBMs (Gradient Boosting Machines) en una línea. Hoy comienzo una serie de varias entradas para que nadie tenga excusa de no saber de qué va la cosa. Arranco con una mentira sugerente. Porque lo que voy a contar no es del todo cierto, pero motiva lo que vendrá después. Consideremos un conjunto de datos medio famoso: el de los precios de los alquileres en Múchich. Comencemos con un modelo sencillo, una regresión lineal que relacione el precio del alquiler con los metros cuadrados, i.

GBM sintetizado en una línea

Es $$ \sum_i \Phi(y_i, f_1(x_i)) > \sum_i \Phi(y_i, f_1(x_i) - \lambda \nabla \Phi(y_i, f_1(x_i)) \sim$$ $$ \sim \sum_i \Phi(y_i, f_1(x_i) - \lambda f_2(x_i))$$ Por supuesto, el lector se preguntará muchas cosas, entre las que destaco: ¿Qué representa cada uno de los elementos que aparecen en la línea anterior? ¿Qué parte de ella es solo casi siempre cierta? ¿Qué tiene todo eso que ver con GBM?

Experimentos con el paquete gbm

No conocía el paquete gbm. Pero como ahora ando rodeado de data scientists que no son estadísticos… Bueno, la cuestión es que había que ajustar un modelo para el que yo habría hecho algo parecido a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 dat <- read.csv("http://www.ats.ucla.edu/stat/data/poisson_sim.csv") summary(m.glm <- glm(num_awards ~ prog + math, family = "poisson", data = dat)) # Call: # glm(formula = num_awards ~ prog + math, family = "poisson", data = dat) # # Deviance Residuals: # Min 1Q Median 3Q Max # -2.