10-fache Kreuzvalidierung
Wie du im Video gesehen hast, ist es besser, Modelle mit mehreren systematischen Testmengen zu validieren, statt mit einem einzigen zufälligen Train/Test-Split. Zum Glück macht das caret-Paket das sehr einfach:
model <- train(y ~ ., my_data)
caret unterstützt viele Arten von Kreuzvalidierung. Du kannst den Typ der Kreuzvalidierung und die Anzahl der Folds mit der Funktion trainControl() angeben, die du als Argument trControl an train() übergibst:
model <- train(
y ~ .,
my_data,
method = "lm",
trControl = trainControl(
method = "cv",
number = 10,
verboseIter = TRUE
)
)
Wichtig ist: Die Methode für das Modellieren übergibst du an die Hauptfunktion train(), und die Methode für die Kreuzvalidierung an die Funktion trainControl().
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit caret in R
Anleitung zur Übung
- Passe eine lineare Regression an, um
pricemit allen anderen Variablen im Datensatzdiamondsals Prädiktoren zu modellieren. Verwende die Funktiontrain()und eine 10-fache Kreuzvalidierung. (Beachte, dass wir zur Beschleunigung einen Teil des vollständigendiamonds-Datensatzes verwendet haben, er heißt aber weiterhindiamonds.) - Gib das Modell in der Konsole aus und sieh dir die Ergebnisse an.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console