Ceci est similaire à la question des méthodes de rééchantillonnage de Caret , bien que cela n'ait jamais vraiment répondu à cette partie de la question d'une manière convenue.
la fonction train de caret offre cv
et repeatedcv
. Quelle est la différence de dire faire:
MyTrainControl=trainControl(
method = "cv",
number=5,
repeats=5
)
contre
MyTrainControl=trainControl(
method = "repeatedcv",
number=5,
repeats=5
)
Je comprends cv
divise l'ensemble en k-folds (paramètre number
), puis recommence et exécute les paramètres repeats
plusieurs fois.
La seule chose à laquelle je pouvais penser, c'est que peut-être régulier cv
avec repeats
les mêmes index exacts pour les plis à chaque fois? exécutant essentiellement cv
les mêmes plis exacts à chaque fois, vs repeatedcv
sélectionne peut-être de nouveaux plis à chaque fois?
Quelqu'un peut-il clarifier?
r
machine-learning
caret
Brian Feeny
la source
la source
Control()
syntaxe du train dans R) pour chacun des k plis croisés (donné par un nombre). Dans le pli croisé, lors de l'utilisation de CV, il s'agit d'un processus unique sur chacun des plis (défini en utilisant des nombres dans le traincontrol()
).Réponses:
Selon le manuel du curseur, page 22 , le paramètre
repeats
ne s'applique que lorsque lemethod
est défini surrepeatedcv
, donc aucune répétition n'est effectuée lorsque lemethod
est défini surcv
. Donc, la différence entre les deux méthodes est en effet que cela serepeatedcv
répète etcv
non.En plus: répéter une validation croisée avec exactement le même fractionnement donnera exactement le même résultat pour chaque répétition (en supposant que le modèle est formé de manière déterministe), ce qui est non seulement inefficace, mais aussi dangereux lorsqu'il s'agit de comparer les résultats de validation pour différents algorithmes de modèle de manière statistique. Soyez donc conscient de cela si vous devez programmer une validation vous-même.
la source
Le code réel derrière ces paramètres se trouve dans les fichiers source
selectByFilter.R
etcreateDataPartition.R
(anciennementcreateFolds.R
) du dossier `caret / R / 'du paquet.Voir ces fichiers par exemple ici et ici (attention, ces permaliens peuvent éventuellement pointer vers une version plus ancienne du code). Pour plus de commodité, les extraits pertinents (à partir de la version 6.0-78 c. Novembre 2017) sont présentés ci-dessous
Dans selectByFilter.R c. ligne 157
Dans createDataPartition.R c. ligne 227
la source