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
Instrukcje do ćwiczenia
- Dopasuj model regresji liniowej, który przewiduje
pricena podstawie wszystkich pozostałych zmiennych w zbiorze danychdiamonds. Użyj funkcjitrain()i 10-krotnej walidacji krzyżowej. (Zwróć uwagę, że pracujemy na podzbiorze pełnego zbiorudiamonds, 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