Karede, cv ve yinelenen cv arasındaki gerçek fark nedir?


26

Bu, Caret yeniden örnekleme yöntemlerini sorgulamaya benzer , ancak bu sorunun bir kısmını gerçekten kararlaştırılmış bir şekilde yanıtlamadı.

caret'in tren fonksiyonu sunuyor cvve repeatedcv. Söylemedeki fark nedir:

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

vs

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

cvK-folds (parametresi number) kümesini kırar anlıyorum ve daha sonra baştan başlar ve parametreleri repeatsdefalarca çalıştırır.

Aklıma gelen tek şey, belki de her zaman kıvrımlar için aynı endeksleri kullanmakla düzenli cvolması repeatsmı? aslında cvher seferinde aynı katları kullanarak, belki de her seferinde repeatedcvyeni kıvrımları mı seçersiniz?

Birisi netleşebilir mi?


Merak ediyorum da biraz daha fazla yöntem var .. Her birinin biraz temel düzeyde anlaşılması gerekir, bulabileceğim herhangi bir yer var mı? Teşekkürler.
Manoj Kumar

Çoklu katlama oluşturmada, kod Control(), k çapraz katlamanın her biri için (sayı ile verilen) birden çok kez ( R'deki tren sözdiziminde tekrarlar tarafından verilir) tekrar eder . Çapraz katlamada, CV kullanırken, katlamanın her biri için bir seferlik bir işlemdir (trende sayılar kullanarak ayarlanır control()).
Nitesh Jindal

Yanıtlar:


29

Sayfa 22'deki el kitabına göre , parametre repeatsyalnızca methodayarlandığı zaman uygulanır repeatedcv, dolayısıyla methodayarlandığı zaman tekrarlama yapılmaz cv. Bu yüzden, her iki yöntem arasındaki fark, gerçekte repeatedcvtekrarlayan ve olmayandır cv.


Bir kenara: Tam olarak aynı bölünme ile bir çapraz onaylamanın tekrarlanması, her tekrarlama için tam olarak aynı sonucu verecektir (modelin belirleyici bir şekilde eğitildiği varsayılarak), bu sadece verimsiz değil, aynı zamanda doğrulama sonuçlarının karşılaştırılması açısından da tehlikelidir. istatistiksel olarak farklı model algoritmaları. Bu yüzden, kendiniz bir onaylama programlamanız gerektiğinde bunun farkında olun.


@BrianFeeny yardımcı olmaktan memnun. Cevap yeterliyse, lütfen yukarı / aşağı düğmesinin altındaki onay işaretini tıklayın. Ayrıntılar için soru sorma hakkında SSS bölümüne bakın :)
steffen

kopuk bağlantı, şimdi cran.r-project.org/web/packages/caret/vignettes/caret.pdf adresinde , şimdi 4. sayfada. sadece 'yinelenmiş' kelimesini
aratın

3

Bu parametrelerin arkasındaki gerçek kod , paketin `caret / R / 'klasöründeki selectByFilter.Rve createDataPartition.R(daha önce createFolds.R) kaynak dosyalarında bulunabilir.

Örneğin bu dosyalara bakın burada ve burada (sonunda kodunun eski sürümüne işaret edebilir bu kalıcı bağlantıları dikkat). Kolaylık sağlamak için, ilgili pasajlar (6.0-78 c. Kasım 2017 itibariyle) aşağıda gösterilmektedir.

SelectByFilter.R içinde c. 157 numaralı hat

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 içinde c. satır 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
}


7
Lütfen cevabınızda daha fazla içerik verebilir misiniz? Bağlantılar iyi, ancak kendi başlarına durmayacak cevaplardan kaçınmaya çalışıyoruz - bağlantılar kaybolabilir.
Glen_b -Reinstate Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.