मैं डेटा के एक बड़े सेट के साथ काम कर रहा हूं जिसमें 2^31 अवलोकन शामिल हैं। अवलोकनों की वास्तविक संख्या 3.5 बिलियन अवलोकनों के करीब है।2^31 अवलोकनों के साथ biglm का उपयोग कैसे करें
मैं लगभग 70 भविष्यवाणियों के साथ एक रिग्रेशन चलाने के लिए आर पैकेज "biglm" का उपयोग कर रहा हूं। मैंने डेटा में एक लाख पंक्तियों को एक समय में पढ़ा और रिग्रेशन परिणामों को अपडेट किया। डेटा को आरएफडीएफ प्रारूप में आर पुस्तकालय "एफएफडीएफ" का उपयोग करके जल्दी से लोड करने और मेरी सभी रैम का उपयोग करने से बचने के लिए सहेजा गया है।
library(ff,ffbase,biglm)
load.ffdf(dir='home')
dim(data) #the ffdf contains about 70 predictors and 3.5 billion rows
chunk_1 <- data[1:1000000,]
rest_of_data <- data[1000000:nrow(data),]
# Running biglm for first chunk
b <- biglm(y~x1+x2+...+x70, chunk_1)
chunks <- ceiling((nrow(rest_of_data)/1000000)
# Updating biglm results by iterating through the rest of the data chunks
for (i in seq(1,chunks)){
start <- 1+((i-1))*1000000
end <- min(i*1000000,nrow(d))
d_chunk <- d[start:end,]
b<-update(b,d_chunk)
}
परिणाम बहुत अच्छी लग रही है और सब कुछ डेटा के प्रत्येक टुकड़ा 2 से अधिक के साथ मॉडल को अद्यतन करने से टिप्पणियों की संचयी संख्या तक सुचारू रूप से चल रहा है:
यहाँ कोड मैं उपयोग कर रहा हूँ की बुनियादी रूपरेखा है^31 अवलोकन। फिर, मुझे एक त्रुटि मिलती है जो
In object$n + NROW(mm) : NAs produced by integer overflow
मैं इस ओवरफ़्लो समस्या को कैसे प्राप्त करूं? आपकी सहायता के लिये पहले से ही धन्यवाद!
@ डेविड एडनबर्ग मैं वर्तमान में 64-बिट सिस्टम का उपयोग कर रहा हूं, और मैं आर 3.4.0 का उपयोग कर रहा था। हालांकि, मैं अभी भी पूर्णांक अतिप्रवाह समस्या में चल रहा था। – Eunice
क्या आपके पास वास्तव में 1.8TB डेटासेट है? –