21 votos

Apilar/ensamblar modelos con caret

A menudo me encuentro entrenando varios modelos predictivos diferentes utilizando caret en R. Los entrenaré a todos en los mismos pliegues de validación cruzada, usando caret::: createFolds y, a continuación, elija el mejor modelo basándose en el error de validación cruzada.

Sin embargo, la predicción media de varios modelos suele superar al mejor modelo individual en un conjunto de pruebas independiente. Estoy pensando en escribir algunas funciones para apilar/ensamblar modelos caret que fueron entrenados con los mismos pliegues de validación cruzada, por ejemplo tomando la mediana de las predicciones de cada modelo en cada pliegue, o entrenando un "meta-modelo".

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

20voto

Boris Tsirelson Puntos 191

Parece que Max Kuhn empezó a trabajar en un paquete para modelos ensembleling caret pero aún no ha tenido tiempo de terminarlo. Esto es exactamente lo que estaba buscando. Espero que el proyecto se termine algún día.

edit: Escribí mi propio paquete para hacer esto: caretEnsemble

8voto

Nayuki Minase Puntos 194

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

1voto

Carsten Thiel Puntos 751

No estoy muy seguro de lo que busca, pero esto podría ayudarle: http://www.jstatsoft.org/v28/i05/paper

Se trata de cómo utilizar varios modelos en caret. La parte que te puede interesar es la sección 5 en la pág. 13.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X