> c<-naiveBayes(f1,traindata)
这里f1
用于添加权重。
> pred<-predict(c,traindata)
Error: cannot allocate vector of size 98.7 Mb
> c<-naiveBayes(f1,traindata)
这里f1
用于添加权重。
> pred<-predict(c,traindata)
Error: cannot allocate vector of size 98.7 Mb
一般来说,如果您在 R 中遇到内存问题,可以尝试以下几点:
1)垃圾收集。Runninggc()
将运行垃圾收集器,它还会告诉您当前正在使用多少内存:
> a<-double(1e6)
> b<-double(1e9)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 182079 9.8 407500 21.8 350000 18.7
Vcells 1001277242 7639.2 1104245379 8424.8 1001438032 7640.4
2)摆脱大物体。您可以使用以下命令按大小(以 megs 为单位)获取 10 个最大对象的列表:
> sort(sapply(ls(),function(x) object.size(get(x))),T)[1:10]/1e6
b a <NA> <NA> <NA> <NA> <NA>
8000.00004 8.00004 NA NA NA NA NA
<NA> <NA> <NA>
NA NA NA
在这种情况下,我只有两个对象,因为这是一个新的 R 会话。但这让我可以发现罪魁祸首并在我不再需要它时摆脱它,使用rm
:
> rm(b)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 183576 9.9 407500 21.8 350000 18.7
Vcells 1280024 9.8 883396303 6739.8 1001773436 7643.0
3) 如果在清除大对象和垃圾收集之后,您仍然存在内存问题,那么您可能需要研究一个 R 包,它允许您使用内存映射文件处理大型数据集。一些选项是mmap
和bigmemory
。