Modèles empilables / assemblables avec caret

21

Je me retrouve souvent à former plusieurs modèles prédictifs différents en utilisant caretR. Je vais tous les former sur les mêmes plis de validation croisée, en utilisant caret::: createFolds, puis en choisissant le meilleur modèle basé sur une erreur de validation croisée.

Cependant, la prédiction médiane de plusieurs modèles surpasse souvent le meilleur modèle unique sur un ensemble de test indépendant. Je pense à écrire certaines fonctions pour empiler / assembler des modèles de curseur formés avec les mêmes plis de validation croisée, par exemple en prenant des prédictions médianes de chaque modèle sur chaque pli, ou en formant un «méta-modèle».

Bien sûr, cela pourrait nécessiter une boucle de validation croisée externe. Quelqu'un connaît-il des packages / codes open source existants pour assembler des modèles de curseur (et éventuellement valider ces ensembles)?

Zach
la source

Réponses:

19

Il semble que Max Kuhn ait commencé à travailler sur un package pour assembler les modèles de caret , mais n'a pas encore eu le temps de le terminer. Ceci est exactement ce que je cherchais. J'espère que le projet sera terminé un jour!

edit: j'ai écrit mon propre package pour ce faire: caretEnsemble

Zach
la source
1
Excellent travail sur ce package!
mikeycgto
8

Ce que vous recherchez est appelé "assemblage de modèle". Un didacticiel d'introduction simple avec le code R peut être trouvé ici: http://viksalgorithms.blogspot.jp/2012/01/intro-to-ensemble-learning-in-r.html

thiakx
la source
3
Pas pour être pointilleux, mais "assemblage" est juste dans le titre de mon message. Je recherche très spécifiquement un package R pour assembler des modèles arbitraires, qui ne semble pas exister. Merci d'avoir publié le code, cependant. J'écrirai peut-être mon propre paquet!
Zach
1

Je ne sais pas trop ce que vous cherchez mais cela pourrait aider: http://www.jstatsoft.org/v28/i05/paper

C'est comment utiliser plusieurs modèles dans caret. La partie qui pourrait vous intéresser est la section 5 de la p. 13.

screechOwl
la source
Ce que je recherche, c'est un package qui prendrait en entrée une liste d'objets caret, puis produirait la moyenne, la moyenne ou la moyenne pondérée de leurs prédictions. Des fonctionnalités plus avancées peuvent inclure l'optimisation des pondérations grâce à la validation croisée imbriquée.
Zach