LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • 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 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
Code bearbeiten und ausführen