ПочатиПочніть безкоштовно

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
Редагувати та запускати код