Modelos de apilamiento / ensamblaje con caret


21

A menudo me encuentro entrenando varios modelos predictivos diferentes usando careten R. Los entrenaré a todos en los mismos pliegues de validación cruzada, usando caret::: createFolds, luego elegiré el mejor modelo basado en un error de validación cruzada.

Sin embargo, la predicción mediana de varios modelos a menudo supera al mejor modelo individual en un conjunto de pruebas independiente. Estoy pensando en escribir algunas funciones para apilar / armar modelos de caretas que se entrenaron con los mismos pliegues de validación cruzada, por ejemplo, tomando predicciones medianas de cada modelo en cada pliegue, o entrenando un "metamodelo".

Por supuesto, esto podría requerir un bucle externo de validación cruzada. ¿Alguien sabe de algún paquete existente / código fuente abierto para ensamblar modelos de caret (y posiblemente validar de forma cruzada esos conjuntos)?

Respuestas:



8

Lo que está buscando se llama "ensamblaje de modelos". Puede encontrar un tutorial introductorio simple con código R aquí: http://viksalgorithms.blogspot.jp/2012/01/intro-to-ensemble-learning-in-r.html


3
No para ser quisquilloso, pero "ensamblar" está justo en el título de mi publicación. Estoy buscando específicamente un paquete R para ensamblar modelos arbitrarios, que no parece existir. Gracias por publicar el código, sin embargo. ¡Quizás escriba mi propio paquete!
Zach

1

No estoy muy seguro de lo que está buscando, pero esto podría ayudar: http://www.jstatsoft.org/v28/i05/paper

Es cómo usar múltiples modelos en caret. La parte que le puede interesar es la sección 5 en la pág. 13)


Lo que estoy buscando es un paquete que tome como entrada una lista de objetos de intercalación, y luego arroje la media, media o promedio ponderado de sus predicciones. Una funcionalidad más avanzada podría incluir la optimización de los pesos a través de la validación cruzada anidada.
Zach
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.