我使用一些big.___()软件包在R中使用大型数据集.这是~10演出(100mmR x 15C),看起来像这样:
Price Var1 Var2
12.45 1 1
33.67 1 2
25.99 3 3
14.89 2 2
23.99 1 1
... ... ...
Run Code Online (Sandbox Code Playgroud)
我试图根据Var1和Var2预测价格.
我提出的问题是Var1和Var2是分类/因子变量.
Var1和Var2各有3个级别(1,2和3),但数据集中只有6个组合
(1,1; 1,2; 1,3; 2,2; 2,3; 3,3)
Run Code Online (Sandbox Code Playgroud)
要使用因子变量,biglm()它们必须存在于每个biglm使用的数据块中(我的理解是biglm将数据集分解为"x"个块,并在分析每个块后更新回归参数,以便绕过处理数据集比RAM大.)
我试图对数据进行分组,但我的计算机无法处理它或我的代码错误:
bm11 <- big.matrix(150000000, 3)
bm11 <- subset(x, x[,2] == 1 & x[,3] == 1)
Run Code Online (Sandbox Code Playgroud)
上面给了我一堆这些:
Error: cannot allocate vector of size 1.1 Gb
Run Code Online (Sandbox Code Playgroud)
有没有人有解决这个问题的建议?
我在Windows 7机器上使用R 64位w/4演出RAM.
我试图对320,000行数据(6个变量)进行逻辑回归.对数据样本(10000)的逐步模型选择给出了具有5个交互项的相当复杂的模型:Y~X1+ X2*X3+ X2*X4+ X2*X5+ X3*X6+ X4*X5.该glm()函数可以使该行模型具有10000行数据,但不适用于整个数据集(320,000).
使用bigglm由块从SQL Server导致错误读取数据块,而我不能让从结果的意义traceback():
fit <- bigglm(Y~X1+ X2*X3+ X2*X4+ X2*X5+ X3*X6+ X4*X5,
data=sqlQuery(myconn,train_dat),family=binomial(link="logit"),
chunksize=1000, maxit=10)
Error in coef.bigqr(object$qr) :
NA/NaN/Inf in foreign function call (arg 3)
> traceback()
11: .Fortran("regcf", as.integer(p), as.integer(p * p/2), bigQR$D,
bigQR$rbar, bigQR$thetab, bigQR$tol, beta = numeric(p), nreq = as.integer(nvar),
ier = integer(1), DUP = FALSE)
10: coef.bigqr(object$qr)
9: coef(object$qr)
8: coef.biglm(iwlm)
7: coef(iwlm)
6: bigglm.function(formula = formula, data = datafun, ...)
5: bigglm(formula …Run Code Online (Sandbox Code Playgroud)