Trong caret sự khác biệt thực sự giữa cv và repeatcv là gì?


26

Điều này tương tự với câu hỏi phương pháp lấy mẫu lại của Caret , mặc dù điều đó thực sự không bao giờ trả lời phần này của câu hỏi theo cách đã được thống nhất.

chức năng đào tạo của caret cung cấp cvrepeatedcv. Sự khác biệt trong nói làm là gì:

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

đấu với

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

Tôi hiểu cvchia tập hợp thành k-Folds (tham số number), sau đó bắt đầu lại và chạy nó tham repeatssố số lần.

Điều duy nhất tôi có thể nghĩ là có lẽ thường xuyên cvvới repeatsmục đích sử dụng các chỉ số chính xác tương tự cho các nếp gấp mỗi lần? về cơ bản chạy cvtrên cùng một nếp gấp chính xác mỗi lần, và có lẽ repeatedcvchọn các nếp gấp mới mỗi lần?

Ai đó có thể làm rõ?


Tôi tự hỏi có một số phương pháp nữa .. cần một số mức độ hiểu biết cơ bản về từng phương pháp, có nơi nào tôi có thể tìm thấy không? cảm ơn.
Manoj Kumar

Trong quá trình tạo nhiều lần, mã lặp đi lặp lại nhiều lần (được đưa ra bằng cách lặp lại theo Control()cú pháp tàu trong R) cho mỗi lần gấp k (được đưa ra theo số). Trong nếp gấp, trong khi sử dụng CV, đó là quy trình một lần trên mỗi lần gấp (được đặt bằng cách sử dụng số trong xe lửa control()).
Nitesh Jindal

Câu trả lời:


29

Theo hướng dẫn sử dụng caret, trang 22 , tham số repeatschỉ áp dụng khi methodđược đặt thành repeatedcv, do đó không có sự lặp lại được thực hiện khi methodđược đặt thành cv. Vì vậy, sự khác biệt giữa cả hai phương pháp thực sự là repeatedcvlặp lại và cvkhông.


Ngoài ra: Lặp lại một phép định giá chéo với sự phân tách chính xác sẽ mang lại kết quả chính xác như nhau cho mỗi lần lặp lại (giả sử rằng mô hình được đào tạo theo cách xác định), không chỉ không hiệu quả, mà còn nguy hiểm khi so sánh kết quả xác thực thuật toán mô hình khác nhau một cách thống kê. Vì vậy, hãy lưu ý điều này nếu bạn phải tự lập trình xác nhận.


@BrianFeeny vui mừng giúp đỡ. Nếu câu trả lời là thỏa đáng, vui lòng xem xét nhấp vào dấu kiểm bên dưới nút tăng / giảm phiếu. Xem Câu hỏi thường gặp về đặt câu hỏi để biết chi tiết :)
steffen

liên kết bị hỏng, bây giờ là cran.r-project.org/web/packages/caret/vignettes/caret.pdf cũng vậy , bây giờ nó đã ở trang 4. chỉ cần tìm kiếm '
repeatcv

3

Mã thực tế đằng sau các tham số này có thể được tìm thấy trong các tệp nguồn selectByFilter.RcreateDataPartition.R(trước đây createFolds.R) trong thư mục `caret / R / 'của gói.

Xem các tệp này để biết ví dụ tại đâytại đây (hãy cẩn thận những permalinks này cuối cùng có thể trỏ đến phiên bản mã cũ hơn). Để thuận tiện, các đoạn có liên quan (kể từ phiên bản 6.0-78 c. Tháng 11 năm 2017) được hiển thị bên dưới

Trong selectByFilter.R c. dòng 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))
...

Trong createdDataPartition.R c. dòng 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
}

hãy xem chức năng của chúng .... github.com/tonglu/caret/blob/master/pkg/caret/R/
Kẻ

7
Bạn có thể vui lòng cho thêm ngữ cảnh trong câu trả lời của bạn? Liên kết là tốt, nhưng chúng tôi cố gắng tránh các câu trả lời sẽ không tự đứng vững - liên kết có thể biến mất.
Glen_b -Reinstate Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.