Каретка не показывает все значения для данных в настраиваемой сводке - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь выполнить индивидуальный расчет по децилям, чтобы получить среднее значение по децилям на кратность при 10-кратной перекрестной проверке. Данные обучения, которые у меня есть, содержат примерно 10 000 строк, поэтому я ожидаю 1000 строк на одну свертку и, следовательно, ожидаю 100 на дециль в свертке, когда все будет хорошо. Однако в настоящее время я застрял, поскольку по какой-то причине часть данных в summaryFunction возвращает только 10 значений, когда я пытаюсь разделить на децили. Как я могу это исправить?

summaryFunction выглядит следующим образом:

caret_fun <- function(data, lev = NULL, model = NULL){
  data_f <- cbind(data$pred, data$obs)
  print(data$pred)
  
  stop("stop here bc it shows only 10 values")
  data_folds <- createFolds(data_f, k = 10, 
                            list = TRUE, returnTrain = FALSE)
  print(dim(data_f))
  tes <- vector()
  
  for(i in 1:10){
    print(data_f)
    print(data_folds)
    data_f_f <- data_f[data_folds[[i]],]
    data_f_f <- data_f_f[order(data_f[,2], decreasing = TRUE),]
    len <- dim(data_f_f)[1]

    dataobs <- data_f_f[,2]/sum(data_f_f[,2])
    dataprd <- data_f_f[,1]/sum(data_f_f[,1])
    anz <- rep(1/len, len)

    te_v <- (cumsum(dataprd) - cumsum(anz))/(cumsum(dataobs) - cumsum(anz))


    tes[i] <- mean(te_v, na.rm = TRUE)
   }

 mean(tes, na.rm = TRUE)

 c(custom = mean(tes, na.rm = TRUE)
}

И вывод (с предполагаемой ошибкой) выглядит следующим образом:

 [1] 1092.0000  595.6364   52.0000  411.2727  530.4000   52.0000  335.6364
 [8]   52.0000  572.0000  428.0000
Error in ctrl$summaryFunction(testOutput, lev, method) : stop here bc it shows only 10 values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...