R Caret:在重复CV过程中增加样本量

问题描述

全部

我们有一个不平衡数据集,其中25%是响应者,总样本量为n = 552。 我们训练了模型(RF,GLMNET,XGBTREE),最大ROC约为0.570(即使使用认值,UP,DOWN,SMOTE和ROSE采样)。并不是我们想要的。 我们决定通过使用引导方法增加样本大小来进行一些过采样。我将UpSampling函数修改为(仅添加了多达2000条记录的采样,保留了响应者的原始分布):

Remove-Migration

我的火车代码是(我减少了重复测试的次数):

Add-Migration Initial

输出为:

bootIncrease<-list(name = "bootInc",func = function (x,y) 
                          {
                              if (!is.data.frame(x)) {
                                  x <- as.data.frame(x,stringsAsFactors = TRUE)
                              }
                              props<-round(table(y)*(2000/(table(y)["Y"]+table(y)["N"])))
                              x$.outcome <- y
                              x <- ddply(x,.(y),function(x,top=props) {
                                  if (nrow(x) < top[parent.frame()$i[]]) {
                                      ind <- sample(1:nrow(x),size = top[parent.frame()$i[]] - nrow(x),replace = TRUE)
                                      ind <- c(1:nrow(x),ind)
                                      x <- x[ind,drop = FALSE]
                                  }
                                  x
                              })
                              y <- x$.outcome
                              x <- x[,!(colnames(x) %in% c("y",".outcome")),drop = FALSE]
                                  if (inherits(x,"matrix")) {
                                      x <- as.matrix(x)
                                  }
                             list(x = x,y = y)
                          },first = TRUE )

我的问题:

  1. 为什么样本数量摘要为“ 276”-为什么它们不是 2000或至少超过276吗?

  2. 我期望ROC会更高。我使用增强数据(即n = 2000)进行了一些测试,并将其作为训练数据集输入,它给我的不仅仅是 ROC = 0.57-它大约让我ROC = 0.90

  3. 在哪里可以找到在TRAIN函数中输入重复CV作为训练的代码?我要确保为每个重复的cv循环输入新的引导数据train_controlB <- trainControl(method="repeatedcv",number=3,repeats=2,savePredictions="all",returnResamp="all",classprobs=TRUE,summaryFunction=allSummary,sampling=bootIncrease) boot.rf<- train(vardep~.,data = training,method ='rf',metric='ROC',trControl =train_controlB) 作为训练数据集?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)