RuleFit

El otro día me sentí culpable porque me preguntaron sobre RuleFit y tuve que hacer un Simón (aka, me lo estudio para mañana). Y como mañana fue antier, lo que sigue.

Hay descripciones estándar de RuleFit (p.e., esta o la del artículo original) pero me voy a atrever con una original de mi propio cuño.

Comenzamos con lasso. Lasso está bien, pero tiene una limitación sustancial: se le escapan las iteracciones (vale, admito que lo anterior no es universalmente exacto, pero lo es casi y eso me vale). Entonces, la pregunta es: ¿cómo introducir interacciones en lasso?

Uno podría construir el modelo completo (con todas las interacciones posibles) y dejar a la selección de variables hacer su magia. Vale. Pero hay otra alternativa. Existen algoritmos que son muy sensibles a las interacciones. De hecho, que, esencialmente, solo modelan interacciones: los árboles y sus derivados (random forests, GBM). Se puede por tanto crear un modelo basado en árboles y capturar sus interacciones. Capturar significa aquí convertir los nodos terminales de esos árboles en funciones que son 1 si la observación cae en ellos y 0 en otro caso.

Así que si tu lasso original tenía siete variables y creas un random forest con 500 árboles que suman 10000 nodos terminales, puedes meter todas esas 10007 variables adicionales en el lasso mejorado y ver qué pasa.

A eso se lo llama RuleFit.

Ahora, ¿RuleFit o no RuleFit? RuleFit es sugerente, sin duda. Sus ventajas están cantadas en muchas partes (p.e., aquí). Pero existen dos motivos que me hacen dudar:

  1. El libro de los compañeros de departamento de los autores de RuleFit, An Introduction to Statistical Learning, ni lo menciona.
  2. Las tres, estas más técnicas (o empíricas) que se describen aquí.