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
<Kurs>Maschinelles Lernen mit caret in R</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console