R 无法分配大小为xx.x MB的向量
我有以下代码:R 无法分配大小为xx.x MB的向量,r,regression,linear-regression,lm,R,Regression,Linear Regression,Lm,我有以下代码: library(biglm) library(ff) myData <- read.csv.ffdf(file = "myFile.csv") testData <- read.csv(file = "test.csv") form <- dependent ~ . model <- biglm(form, data=myData) predictedData <- predict(model, newdata=testData) 库(biglm
library(biglm)
library(ff)
myData <- read.csv.ffdf(file = "myFile.csv")
testData <- read.csv(file = "test.csv")
form <- dependent ~ .
model <- biglm(form, data=myData)
predictedData <- predict(model, newdata=testData)
库(biglm)
图书馆(ff)
myData以下是可能的原因和解决方案:
原因:您使用的是32位R
解决方案:使用64位R
原因:你的内存太少了
解决方案:如果可以的话,分配更多RAM(?内存.限制
)。如果你不能考虑使用<代码> FF,在<强>块/<强>中运行,运行<代码> gc-()/<代码>,或者利用云来最坏地放大。分块通常是大数据成功的关键——试着一次做10%的预测,在每次分块后将结果保存到磁盘,并在使用后删除内存中的对象
原因:您的代码中有一个漏洞泄漏内存
解决方案:修复错误——这看起来不像是您的情况,但是请确保您拥有预期大小的数据,并密切关注资源监视器程序,以确保没有发生任何有趣的事情
我以前没有使用过biglm
软件包。根据您所说的,在调用predict
时内存不足,新数据集有近7000000行
要解决内存问题,必须按块进行预测。例如,一次迭代预测20000行。我不确定predict.bigglm
是否可以进行分块预测
为什么不看看mgcv
packagebam
可适用于大型数据集的线性模型/广义线性模型/广义相加模型等。类似于biglm
,它在拟合模型时执行分块矩阵分解。但是,predict.bam
支持分块预测,这对您的案例非常有用。此外,它还进行并行模型拟合和模型预测,由并行包支持[使用bam()
的参数集群;有关并行示例,请参见?bam
和?predict.bam
下的示例]
只需执行library(mgcv)
,并选中?bam
,?predict.bam
备注
不要为并行性使用nthreads
参数。这对于参数回归是没有用的。我试过使用biglm和mgcv,但记忆和因子问题很快就出现了。我在:h2o库方面取得了一些成功。model$rank给了我一个空值,我有6999251 rowsI版本3.3.0(2016-05-03)——“假定教育”平台:x86_64-pc-linux-gnu(64位)。您知道如何使用ff为预测向量保留数据吗?@antonio您的系统报告的RAM总量、尝试执行此操作之前的可用RAM、可用存储磁盘空间,以及它表示向量尝试分配但分配失败的大小?让我先问一下,因为如果它是xx.x MB而不是xxxx.xx MB,并且您是64位的,那么您可能只需要将内存分配增加到R,等等。