【发布时间】:2017-09-03 18:24:05
【问题描述】:
我正在尝试通过 caret 包运行决策树。我通过使用rm(list = ls()) 从内存中删除所有内容来重新开始我的脚本,然后我加载我的训练数据,即 3M 行和 522 个特征。 R studio 没有以 gb 为单位显示大小,但根据错误消息推测它是 11.6。
如果我使用的是 64gb R,那么我会看到这个错误吗?有什么办法可以在不借助较小数据的培训的情况下解决这个问题?
rm(list = ls())
library(tidyverse)
library(caret)
library(xgboost)
# read in data
training_data <- readRDS("/home/myname/training_data.rds")
R studio 环境窗格目前显示一个对象,即带有上述暗淡的训练数据。
### Modelling
# tuning & parameters
set.seed(123)
train_control <- trainControl(
method = "cv",
number = 5,
classProbs = TRUE, # IMPORTANT!
verboseIter = TRUE,
allowParallel = TRUE
)
# Fit a decision tree (minus cad field)
print("begin decision tree regular")
mod_decitiontree <- train(
cluster ~.,
tuneLength = 5,
data = select(training_data, -c(cad, id)), # a data frame
method = "rpart",
trControl = train_control,
na.action = na.pass
)
Loading required package: rpart
Error: cannot allocate vector of size 11.6 Gb
我可以要求我们的管理员增加我的 RAM,但在这样做之前要确保我没有遗漏任何东西。如果我使用 64 GB,难道我没有大量可用的 RAM 吗?
我有什么选择吗?我尝试将我的数据框设为矩阵并将其传递给插入符号,但它引发了错误。传递矩阵是否值得尝试?
【问题讨论】: