Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rm(list=ls())在64GB上,然后出现错误:尝试决策树时无法分配大小为11.6 Gb的向量_R_Memory - Fatal编程技术网

rm(list=ls())在64GB上,然后出现错误:尝试决策树时无法分配大小为11.6 Gb的向量

rm(list=ls())在64GB上,然后出现错误:尝试决策树时无法分配大小为11.6 Gb的向量,r,memory,R,Memory,我正在尝试通过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

我正在尝试通过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")
rm(list=ls())
图书馆(tidyverse)
图书馆(插入符号)
图书馆(xgboost)
#读入数据

培训数据以下是您的错误消息:

尝试决策树时无法分配大小为11.6 Gb的向量

这意味着当R请求另一个11.6 GB内存时发生了特定的故障,并且无法这样做。然而,随机林计算本身可能需要许多这样的分配,并且很可能剩余的空闲RAM已经被使用


我不知道您计算的细节,但我想说,即使在1GB数据集上运行随机林也已经非常大了。我的建议是找到一种方法,对数据集进行统计上精确的子样本,这样就不需要如此大量的RAM。

您好,谢谢您提供的信息。如果我要求我们的管理员提供更多的RAM,有没有办法推断出我还需要多少?传递一个矩阵而不是一个数据帧会有帮助吗?@DougFir你需要弄清楚Caret随机森林计算的内存需求如何与输入数据的大小等相关。但是,正如我的回答所示,我认为你不应该需要这么多内存。你需要所有522功能吗?你需要300万行吗?关于功能,这是文本数据,非常稀疏,大部分是0。我想我确实需要它们,因为一个值为1的单一功能(标记)在分类上可能会有更大的不同。还有一点:如果你使用rf,比如说10%的随机子样本,那么你可以尝试使用不同的样本再次运行,看看情况是否发生了巨大的变化。我猜他们不会,但你会做出判断。
### 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