Що стосується реальності, яка реальна різниця між резюме та повторенням?


26

Це подібно до методів повторного відбору проб Карета , хоча це дійсно ніколи не відповідало цій частині питання узгоджено.

функція поїздів Карет пропонує cvі repeatedcv. Яка різниця в тому, що говорять:

MyTrainControl=trainControl(
    method = "cv",
    number=5,
    repeats=5
)

проти

MyTrainControl=trainControl(
   method = "repeatedcv",
   number=5,
   repeats=5
)

Я розумію, cvрозбиває набір на k-folds (параметр number), а потім запускається і запускає його параметри repeatsкілька разів.

Єдине, про що я міг придумати, - це те, що, можливо, регулярно cvз repeatsвикористанням однакових точних індексів для складок кожен раз? по суті працює cvкожен раз по одних і тих же точних складках, проти, можливо, repeatedcvвибирає нові складки кожен раз?

Може хтось уточнить?


Мені цікаво, що є ще кілька методів .. потрібне розуміння кожного базового рівня, чи є я десь це можу знайти? Спасибі.
Маной Кумар

При створенні багаторазового коду ітерація повторюється протягом декількох разів (задається повторами в Control()синтаксисі поїзда в R) для кожного з перехресних складок k (заданих числом). У перехресній складці, під час використання CV, це разовий процес на кожному згині (встановлюється за допомогою чисел у поїзді control()).
Нітеш Джиндал

Відповіді:


29

Згідно з посібником з карети, сторінка 22 , параметр repeatsзастосовується лише тоді, коли methodвстановлено значення repeatedcv, тому повторення не виконується, коли methodвстановлено значення cv. Тож різниця між обома методами насправді полягає в тому, що repeatedcvповторюється і cvні.


Убік: Повторення перехресної перевірки з точно однаковим розщепленням дасть абсолютно однаковий результат для кожного повторення (якщо припустити, що модель тренується детерміновано), що не тільки неефективно, але й небезпечно, якщо мова йде про порівняння результатів перевірки для різні модельні алгоритми статистично. Тож пам’ятайте про це, якщо вам коли-небудь доведеться самостійно запрограмувати перевірку.


@BrianFeeny радий допомогти. Якщо відповідь була задовільною, будь ласка, врахуйте, щоб натиснути прапорець під кнопкою голосування вгору / вниз. Дивіться поширені запитання щодо задавання питань для подробиць :)
steffen

зламане посилання, тепер це cran.r-project.org/web/packages/caret/vignettes/caret.pdf також, це на сторінці 4 зараз. просто пошукайте «повторення»
слова для цього

3

Фактичний код за цими параметрами можна знайти у вихідному файлі selectByFilter.Rта createDataPartition.R(раніше createFolds.R) у папці `caret / R / 'пакета.

Ознайомтеся з цими файлами, наприклад, тут і тут (будьте обережні, ці посилання можуть з часом вказувати на старішу версію коду). Для зручності відповідні фрагменти (станом на версію 6.0-78 с. Листопада 2017 р.) Показані нижче

У selectByFilter.R c. рядок 157

sbf <- function (x, ...) UseMethod("sbf")
... 

"sbf.default" <-
  function(x, y,
           sbfControl = sbfControl(), ...)
  {
    ...

    if(is.null(sbfControl$index)) sbfControl$index <- switch(
      tolower(sbfControl$method),
      cv = createFolds(y, sbfControl$number, returnTrain = TRUE),
      repeatedcv = createMultiFolds(y, sbfControl$number, sbfControl$repeats),
      loocv = createFolds(y, length(y), returnTrain = TRUE),
      boot =, boot632 = createResample(y, sbfControl$number),
      test = createDataPartition(y, 1, sbfControl$p),
      lgocv = createDataPartition(y, sbfControl$number, sbfControl$p))
...

У createDataPartition.R c. рядок 227

createMultiFolds <- function(y, k = 10, times = 5) {
  if(class(y)[1] == "Surv") y <- y[,"time"]
  prettyNums <- paste("Rep", gsub(" ", "0", format(1:times)), sep = "")
  for(i in 1:times) {
    tmp <- createFolds(y, k = k, list = TRUE, returnTrain = TRUE)
    names(tmp) <- paste("Fold",
                        gsub(" ", "0", format(seq(along = tmp))),
                        ".",
                        prettyNums[i],
                        sep = "")
    out <- if(i == 1) tmp else c(out, tmp)

  }
  out
}

погляньте на їх функції .... github.com/tonglu/caret/blob/master/pkg/caret/R/…
користувач3466398

7
Не могли б ви дати більше контексту у своїй відповіді? Посилання хороші, але ми намагаємось уникати відповідей, які не стоять самостійно - посилання можуть зникнути.
Glen_b -Встановити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.