使用glmnet

时间:2015-06-10 07:28:00

标签: r logistic-regression glmnet

我想用glmnet包执行并行化的逻辑岭回归。 我的数据是一个很大的稀疏矩阵(1000万个观测值和大约60k列)。

我为一部分数据(观察和列子集)进行了一次小型试验,并且它有效。以下代码与我正在做的相同:

library(Matrix)
library(glmnet)
library(doMC)
#for reproducibility
set.seed(18)
#initialise cores
registerDoMC(cores=2)

sparseMat<-sparseMatrix(i=rep(1:50,4),j=sample(20,200,replace=TRUE),x=rep(1,200))
y<-as.factor(sample(2,50,replace=TRUE))

cvfit<-cv.glmnet(x=sparseMat,y=y,standardize=FALSE,family="binomial",alpha=0,parallel=TRUE)

但是,当我输入整个矩阵时,进程崩溃,提供下一条错误消息:

Error in max(sapply(outlist, function(obj) min(obj$lambda))) : 
invalid 'type' (list) of argument

我不确定导致错误的原因,我不知道错误消息指出了什么。

我在一个8核的RStudio linux服务器上使用r。

sessionInfo()

R version 3.1.2 (2014-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] doMC_1.3.3      iterators_1.0.7 glmnet_2.0-2    foreach_1.4.2   Matrix_1.1-5   

更新I:

由于我无法共享产生错误的数据(机密性问题)和我尝试的复制产生的内存溢出而不是显示的错误,我将重新提出问题:

错误消息是否与内存有关或与其他内容有关?

考虑到数据集的大小,可以选择与内存相关的错误。但是,错误消息指向与lambda值中具有多个最小值相关的内部问题。如果不是内存问题我该如何处理,是否有解决方法?

0 个答案:

没有答案