Я, очевидно, не могу проверить это, используя данные вашей шкалы, но я могу воспроизвести ваши ошибки, используя интерфейс формулы каждой функции:
require(bigmemory)
m <- matrix(sample(0:1,5000,replace = TRUE),1000,5)
colnames(m) <- paste("V",1:5,sep = "")
bm <- as.big.matrix(m,type = "integer")
require(gbm)
require(randomForest)
#Throws error you describe
rs <- randomForest(V1~.,data = bm)
#Runs without error (with a warning about the response only having two values)
rs <- randomForest(x = bm[,-1],y = bm[,1])
#Throws error you describe
rs <- gbm(V1~.,data = bm)
#Runs without error
rs <- gbm.fit(x = bm[,-1],y = bm[,1])
Не использовать интерфейс формулы для randomForest
довольно распространенный совет для больших наборов данных;это может быть довольно неэффективно.Если вы прочитаете ?gbm
, вы увидите аналогичную рекомендацию, направляющую вас к gbm.fit
и для больших данных.