Dies ähnelt den Caret-Methoden für die erneute Stichprobe , obwohl dieser Teil der Frage dadurch nie auf eine vereinbarte Weise beantwortet wurde.
caret's zug funktion bietet cv
und repeatedcv
. Was ist der Unterschied, wenn man sagt:
MyTrainControl=trainControl(
method = "cv",
number=5,
repeats=5
)
vs
MyTrainControl=trainControl(
method = "repeatedcv",
number=5,
repeats=5
)
Ich verstehe, cv
bricht die Menge in k-Falten (Parameter number
) und startet dann neu und führt es Parameter repeats
Anzahl von Malen aus.
Das einzige, woran ich denken könnte, ist, dass vielleicht regelmäßig cv
mit repeats
jedem Mal die gleichen exakten Indizes für die Falten verwendet werden? Im Grunde genommen läuft das cv
jedes Mal auf den gleichen exakten Falten, vs repeatedcv
wählt vielleicht jedes Mal neue Falten aus?
Kann das jemand klären?
r
machine-learning
caret
Brian Feeny
quelle
quelle
Control()
für jede der k Kreuzfalten (angegeben durch die Zahl) mehrmals durchlaufen (angegeben durch Wiederholungen in der Zugsyntax in R). Bei der Kreuzfaltung mit CV handelt es sich bei jeder Faltung um einen einmaligen Vorgang (der durch die Verwendung von Zahlen in der Reihe festgelegt wirdcontrol()
).Antworten:
Gemäß dem Caret-Handbuch, Seite 22 , gilt der Parameter
repeats
nur, wenn auf eingestelltmethod
ist. Daherrepeatedcv
wird keine Wiederholung durchgeführt, wenn aufmethod
eingestellt istcv
. Der Unterschied zwischen beiden Methoden besteht also in der Tat darin, dass sie sichrepeatedcv
wiederholen undcv
nicht wiederholen .Übrigens: Wenn Sie eine Kreuzvalidierung mit genau derselben Aufteilung wiederholen, erhalten Sie für jede Wiederholung genau dasselbe Ergebnis (vorausgesetzt, das Modell ist deterministisch trainiert), was nicht nur ineffizient ist, sondern auch gefährlich, wenn Sie die Validierungsergebnisse für vergleichen verschiedene Modellalgorithmen auf statistische Weise. Seien Sie sich dessen bewusst, wenn Sie jemals selbst eine Validierung programmieren müssen.
quelle
Der eigentliche Code hinter diesen Parametern befindet sich in den Quelldateien
selectByFilter.R
undcreateDataPartition.R
(frühercreateFolds.R
) im Ordner "caret / R /" des Pakets.Sehen Sie sich diese Dateien zum Beispiel hier und hier an (beachten Sie, dass diese Permalinks möglicherweise auf eine ältere Version des Codes verweisen). Der Einfachheit halber werden nachfolgend die relevanten Snippets (ab Version 6.0-78 ab Nov 2017) angezeigt
In selectByFilter.R c. Linie 157
In createDataPartition.R c. Linie 227
quelle