Existe-t-il un moyen de désactiver la fonction de réglage des paramètres (grille) dans CARET?


15

CARET utilisera automatiquement une grille de réglage prédéfinie pour construire divers modèles avant de sélectionner un modèle final, puis d'entraîner le modèle final sur les données d'entraînement complètes. Je peux fournir ma propre grille de réglage avec une seule combinaison de paramètres. Cependant, même dans ce cas, CARET "sélectionne" le meilleur modèle parmi les paramètres de réglage (même s'il n'y en a qu'un dans ce cas), puis ajuste le modèle final à toutes les données d'entraînement. C'est une étape supplémentaire que j'aimerais éviter.

Comment puis-je simplement ignorer l'étape de recherche de modèle parmi les variations de la grille de réglage et forcer CARET à s'appuyer sur toutes les données de formation (autre que d'appeler directement la bibliothèque de modèles sous-jacente)?


1
La question n'est pas assez claire, ce qui explique probablement pourquoi vous avez reçu des réponses répondant à différentes questions, à savoir 1) Comment puis-je dire au curseur de sauter la validation ET le réglage du modèle? et 2) Comment désactiver uniquement le réglage du modèle?
Johan Larsson

Réponses:


17

Vous pouvez spécifier method="none"dans trainControl. Par exemple:

train(Species ~ ., data=iris, method="rf", tuneGrid=data.frame(mtry=3),
  trControl=trainControl(method="none"))

Je ne sais pas quand cela a été mis en œuvre.


9

La meilleure façon serait de fournir explicitement la trame de données tuneGrid. Par exemple, la forêt aléatoire n'a qu'un seul paramètre de réglage, «mtry», qui contrôle le nombre d'entités sélectionnées pour chaque arbre.

Pour définir mtry à une valeur spécifique, vous pouvez choisir la valeur par défaut randomForest (? RandomForest), procédez comme suit:

model <- train(x = X, y = Y, method = 'rf', tuneGrid = data.frame(.mtry = M))

où M est la seule valeur du paramètre de réglage que vous souhaitez utiliser.

pour plusieurs paramètres de réglage, procédez comme suit:

tuneGrid = data.frame(.par1 = P1, .par2 = P2, .par3 = P3)

Bienvenue sur notre site, Brent! Merci d'avoir suivi cette vieille question.
whuber

4
La suggestion ci method="none"- dessous est la meilleure solution.
topepo

1

Je ne pense pas que ce soit possible (du moins ce n'était pas possible il y a quelques versions). On peut réduire l'impact sur les performances en configurant une seule partition de rééchantillonnage dans les données de formation (mais le curseur entraînerait toujours un modèle deux fois)

Cela ressemble à une fonctionnalité utile à avoir, donc je cinglerais l'auteur du paquet.


Désolé, cette réponse est obsolète maintenant
smci
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.