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:
- El libro de los compañeros de departamento de los autores de RuleFit, An Introduction to Statistical Learning, ni lo menciona.
- Las tres, estas más técnicas (o empíricas) que se describen aquí.