Zacznij terazZacznij za darmo

10-krotna walidacja krzyżowa

Jak pokazano w filmie, lepszym podejściem do walidacji modeli jest korzystanie z wielu systematycznych zbiorów testowych zamiast jednego losowego podziału na zbiór treningowy i testowy. Na szczęście pakiet caret bardzo to ułatwia:

model <- train(y ~ ., my_data)

caret obsługuje wiele rodzajów walidacji krzyżowej. Typ walidacji oraz liczbę jej podziałów możesz określić za pomocą funkcji trainControl(), którą przekazujesz do argumentu trControl funkcji train():

model <- train(
  y ~ ., 
  my_data,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = 10,
    verboseIter = TRUE
  )
)

Ważne: metodę modelowania przekazujesz do głównej funkcji train(), natomiast metodę walidacji krzyżowej – do funkcji trainControl().

To ćwiczenie jest częścią kursu

Uczenie maszynowe z caret w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Dopasuj model regresji liniowej, który przewiduje price na podstawie wszystkich pozostałych zmiennych w zbiorze danych diamonds. Użyj funkcji train() i 10-krotnej walidacji krzyżowej. (Zwróć uwagę, że pracujemy na podzbiorze pełnego zbioru diamonds, aby przyspieszyć obliczenia – nadal jednak nosi on nazwę diamonds.)
  • Wyświetl model w konsoli i przeanalizuj wyniki.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Fit lm model using 10-fold CV: model
model <- train(
  ___, 
  ___,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = ___,
    verboseIter = TRUE
  )
)

# Print model to console
Edytuj i uruchom kod