LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Passe eine lineare Regression an, um price mit allen anderen Variablen im Datensatz diamonds als Prädiktoren zu modellieren. Verwende die Funktion train() und eine 10-fache Kreuzvalidierung. (Beachte, dass wir zur Beschleunigung einen Teil des vollständigen diamonds-Datensatzes verwendet haben, er heißt aber weiterhin diamonds.)
  • 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
Code bearbeiten und ausführen