2014-01-29 12 views
1

我有1種標籤屬性和784像素的數據集的42000行的屬性,如下面如何使用LM功能大量屬性

label pixel0 pixel1 pixel2 ........... pixel783 
0  1  0   0     16 
. 
. 
1  2  15  1     0 

現在我想對它進行迴歸,所以我使用lm功能

lm(label~pixel0+pixel1+pixel2..........+pixel784,data=df) 

但根據我的愚蠢寫像素0到像素784。
有沒有辦法避免手動編寫上述exp或我必須這樣做?

+2

'標籤〜.'。這是mnist手寫的數字,所以你可能不想使用lm' –

+0

它不工作,因爲它顯示錯誤:不能分配矢量的大小251.5 Mb 此外:警告消息: 1:在lm。 fit(x,y,offset = offset,singular.ok = singular.ok,...): 達到1535Mb的總分配:請參閱help(memory.size) – user2143940

+1

您的計算機有多少內存? 1.5 GB?出現這個錯誤是因爲你的內存不足或內存不足,因爲代碼中有錯誤。 –

回答

1

你可以使用。如formula的幫助頁所述。這個。代表"all columns not otherwise in the formula"

lm(label ~ ., data = df) 

或者,使用粘貼手動構建公式。這個例子是從as.formula()幫助頁面:

xnam <- paste("x", 1:784, sep="") 
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+")))) 

然後,您可以插入這個對象到迴歸函數:

lm(fmla, data = df) 
+0

儘管命令是正確的,但似乎有內存問題,因爲我總是得到錯誤作爲錯誤:不能分配向量的大小251.5 Mb此外:警告消息:1:在lm.fit(x,y,偏移量=偏移量,singular.ok = singular.ok,...): – user2143940

+1

正如傑克提到的你已經沒有足夠的記憶了。爲什麼不嘗試'lm.fit'而不是'lm'來縮小問題的範圍? 'lm.fit'只是通過'QR分解'實現或多或少的「原始」線性模型擬合。如果您還遇到了lm.fit的內存問題,請查看 - http://stackoverflow.com/questions/1358003/tricks -to-管理-的可用內存,在安-R-會議 – RUser