Ich habe eine ganze Reihe von Beiträgen zum Caret- Paket gelesen und interessiere mich speziell für die Zugfunktion . Ich bin mir jedoch nicht ganz sicher, ob ich richtig verstanden habe, wie die Zugfunktion funktioniert.
Um meine aktuellen Gedanken zu veranschaulichen, habe ich ein kurzes Beispiel zusammengestellt.
Zunächst wird ein Parameterraster angegeben. Angenommen , ich verwende die Methode gbm. Dementsprechend könnte das Parameterraster für mein Modell folgendermaßen aussehen:
grid <- expand.grid( .n.trees=seq(10,50,10), .interaction.depth=seq(1,4,1), .shrinkage=c(0.01,0.001), .n.minobsinnode=seq(5,20,5))
Anschließend werden die Steuerparameter für train (trainControl) definiert. Ich würde gerne wissen, ob meine Gedanken zur Kreuzvalidierung mit dem Zug richtig sind, und daher verwende ich in diesem Beispiel Folgendes:
train_control <- trainControl('cv',10)
Zuletzt wird die Zugfunktion ausgeführt. Zum Beispiel:
fit <- train(x,y,method="gbm",metric="Kappa",trControl=train_control,tuneGrid=grid)
Ich gehe davon aus, dass der Zug funktioniert:
- Im obigen Beispiel gibt es 160 (5 * 4 * 2 * 4) mögliche Parameterkombinationen
- Für jede Parameterkombination führt der Zug eine 10-fache Kreuzvalidierung durch
- Für jede Parameterkombination und für jede Falte (von den 10 Falten) wird die Leistungsmetrik (in meinem Beispiel Kappa) berechnet (in meinem Beispiel bedeutet dies, dass 1600 Kappas berechnet werden).
- Für jede Parameterkombination wird der Mittelwert der Leistungsmetrik über die 10 Falten berechnet
- Die Parameterkombination mit der besten mittleren Leistungsmetrik wird als die besten Parameter für das Modell angesehen
Meine Frage ist einfach, sind meine aktuellen Gedanken richtig ?
quelle