该表包含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
函数和组合模型一样吗?
我附加了它在停止的步骤。