2017-10-07 5 views
0

Je suis confronté à un problème très confus lors de l'utilisation du paquet caret dans R. Pour comparaison, je forme plusieurs modèles. Après quelques appels à former, ce message d'erreur commence à montrer pour lequel former jamais appeler/modèle de train, j'utiliser: -Erreur lors de l'apprentissage de plusieurs modèles utilisant le paquet caret

Erreur dans UseMethod (« train »): aucune méthode applicable pour « train » appliqué à un objet de la classe "formule"

Une fois cette erreur affichée, aucun autre modèle n'est formé, mais l'erreur ci-dessus apparaît à la place. Lorsque je redémarre R et charge à nouveau le paquetage, les mêmes modèles pour lesquels cette erreur est apparue, s'entraînent facilement.

Je suis confus quant à ce qui semble être le problème ici?

J'ai fait une fonction pour les 5 modèles de formation je tente de créer: -

test = function(){ 

a = train(demand ~ temp, oldData, 'lm') 
print("Done A") 

b = train(demand ~ temp, oldData, 'rf', ntree = 10) 
print("Done B") 

c = train(demand ~ temp, data = oldData, method = "gbm", 
     trControl = objControl, tuneGrid = gbmGrid, verbose = F) 
print("Done C") 

d = train(demand ~ temp, oldData, 'mlp') 
print("Done D") 

e = train(demand ~ temp, oldData, 'monmlp') 
print("Done E") 
} 

PS: Bien, je me suis entraîné tous ces modèles avec succès, je suis en train de créer une fonction d'ensemble pour que je l'intention de faire tous ces appels ensemble.

+0

Si tous vos modèles sont entraînés avec succès quand, comme vous le dites, vous redémarrez R & load caret, quelle est exactement votre question? Pouvez-vous même reproduire le problème? – desertnaut

+0

Je me suis entraîné avec succès tous les modèles un par un: former un modèle puis redémarrer R puis former le prochain modèle. Je veux entraîner tous les modèles en une seule session R! –

Répondre

0

J'ai trouvé ce que le problème est le suivant: -

Le seul modèle qui faisait mal à le modèle « MLP ». Lorsque nous appelons le train pour utiliser la méthode "mlp", le caret attache 2 paquets qui sont "RSNNS" et "Rcpp". Je suppose que ces paquets dépendent des informations que nous fournissons en utilisant la fonction de train. Une fois qu'elles sont attachées, ces informations sont conservées, ce qui provoque l'erreur mentionnée ci-dessus, après quoi aucun autre modèle ne peut être entraîné. Si nous détachons ces deux paquets avant de faire un autre appel à l'entraînement, les modèles sont entraînés avec succès.

+0

Bien. Vous devriez accepter votre propre réponse - rien de mal à cela: https://stackoverflow.com/help/self-answer – desertnaut