10-кратна крос-валідація
Як ви бачили у відео, кращий підхід до валідації моделей — використовувати кілька систематичних тестових вибірок, а не один випадковий поділ на train/test. На щастя, пакет caret робить це дуже просто:
model <- train(y ~ ., my_data)
caret підтримує багато типів крос-валідації. Ви можете вказати тип крос-валідації та кількість фолдів (складок) за допомогою функції trainControl(), яку передаєте до аргументу trControl у train():
model <- train(
y ~ .,
my_data,
method = "lm",
trControl = trainControl(
method = "cv",
number = 10,
verboseIter = TRUE
)
)
Важливо: метод моделювання ви передаєте до основної функції train(), а метод крос-валідації — до функції trainControl().
Ця вправа є частиною курсу
Machine Learning з пакетом caret в R
Інструкції до вправи
- Побудуйте лінійну регресію для моделювання
price, використовуючи всі інші змінні в наборі данихdiamondsяк предиктори. Скористайтеся функцієюtrain()і 10-кратною крос-валідацією. (Зверніть увагу, що ми взяли підмножину повного наборуdiamonds, щоб пришвидшити обчислення, але вона все одно називаєтьсяdiamonds.) - Виведіть модель у консоль і перегляньте результати.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console