R会话使用“caret”包的随机森林中止

时间:2016-11-23 09:16:29

标签: r machine-learning classification random-forest r-caret

该表包含560,304行和10列。我使用caret package random Forest来训练我的模型。在训练之前,我定义了我的列时间和分类类型。其他列不需要直接类型定义。由于数据不平衡分类,我使用rose采样。我没有使用第一列,因为它是标识符。这是我的代码:

require(openxlsx)
library(chron)
library(caret)
library(randomForest)

set.seed(9560)
record<-read.xlsx('_3.xlsx',sheet =1 , colNames = TRUE,
                  rowNames = FALSE, skipEmptyRows = TRUE)

#Define column types
record$TIME <- chron(times=record$TIME)
record$Is.Fraud <- factor(record$Is.Fraud)


MyControl <- trainControl(method = "repeatedCV", repeats=5, 
                          sampling="rose")
#train model 
rfModel <- train(record$Is.Fraud ~.,data=record[,2:10],method='rf',
                 trControl=MyControl)

但是,R session已中止并崩溃。

当我upsample数据并使用两个不同的随机林并组合它们时,即使我使用upsampling而不是rose也没有问题。以下代码工作正常:

upSmp<-upSample(x = record[, 2:9],y=record$Is.Fraud)
upSmp <- upSmp[sample(nrow(upSmp)),]
rdFrst1<-randomForest(Class ~.,data=upSmp[1:(nrow(upSmp)/2),])
rdFrst2<-randomForest(Class ~.,data=upSmp[((nrow(upSmp)/2)+1):nrow(upSmp),])
rf.combined <- combine(rdFrst1,rdFrst2)

我认为使用repeatedcv时我的记忆存在问题。我的问题是什么?我可以在caret列车功能中处理它,结合两个随机森林,就像我使用RandomForest函数和组合模型一样吗?

我附加了它在here停止的步骤。

0 个答案:

没有答案