私は8 GB の RAM を搭載したWindows 8 OS で作業しています。glm を実行する必要がある180 万行 x 270 列の data.frame があります。(ロジット/その他の分類)
データの処理に ff および bigglm パッケージを使用してみました。
しかし、まだエラー " Error: cannot allocate vector of size 81.5 Gb
" の問題に直面しています。そこで、行数を 10 に減らし、クラス ffdf のオブジェクトで bigglm の手順を試しました。ただし、エラーは引き続き発生します。
これらの多くの行と列を持つ分類モデルを構築するというこの問題の解決策を誰かが私に提案できますか?
**EDITS**
:
コードを実行しているときに、他のプログラムを使用していません。コードを実行する前に、システムの RAM は 60% 空いています。これは、R プログラムが原因です。R を終了すると、RAM は 80% 解放されます。
コメンターが再現のために提案したように、私が現在取り組んで いるコラムのいくつかを追加しています。OPEN_FLG は DVで、その他は IDV です
str(x[1:10,])
'data.frame': 10 obs. of 270 variables:
$ OPEN_FLG : Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1
$ new_list_id : Factor w/ 9 levels "0","3","5","6",..: 1 1 1 1 1 1 1 1 1 1
$ new_mailing_id : Factor w/ 85 levels "1398","1407",..: 1 1 1 1 1 1 1 1 1 1
$ NUM_OF_ADULTS_IN_HHLD : num 3 2 6 3 3 3 3 6 4 4
$ NUMBER_OF_CHLDRN_18_OR_LESS: Factor w/ 9 levels "","0","1","2",..: 2 2 4 7 3 5 3 4 2 5
$ OCCUP_DETAIL : Factor w/ 49 levels "","00","01","02",..: 2 2 2 2 2 2 2 21 2 2
$ OCCUP_MIX_PCT : num 0 0 0 0 0 0 0 0 0 0
$ PCT_CHLDRN : int 28 37 32 23 36 18 40 22 45 21
$ PCT_DEROG_TRADES : num 41.9 38 62.8 2.9 16.9 ...
$ PCT_HOUSEHOLDS_BLACK : int 6 71 2 1 0 4 3 61 0 13
$ PCT_OWNER_OCCUPIED : int 91 66 63 38 86 16 79 19 93 22
$ PCT_RENTER_OCCUPIED : int 8 34 36 61 14 83 20 80 7 77
$ PCT_TRADES_NOT_DEROG : num 53.7 55 22.2 92.3 75.9 ...
$ PCT_WHITE : int 69 28 94 84 96 79 91 29 97 79
$ POSTAL_CD : Factor w/ 104568 levels "010011203","010011630",..: 23789 45173 32818 6260 88326 29954 28846 28998 52062 47577
$ PRES_OF_CHLDRN_0_3 : Factor w/ 4 levels "","N","U","Y": 2 2 3 4 2 4 2 4 2 4
$ PRES_OF_CHLDRN_10_12 : Factor w/ 4 levels "","N","U","Y": 2 2 4 3 3 2 3 2 2 3
[list output truncated]
そして、これは私が使用しているコードの例です。
require(biglm)
mymodel <- bigglm(OPEN_FLG ~ new_list_id+NUM_OF_ADULTS_IN_HHLD+OCCUP_MIX_PCT, data = x)
require(ff)
x$id <- ffseq_len(nrow(x))
xex <- expand.ffgrid(x$id, ff(1:100))
colnames(xex) <- c("id","explosion.nr")
xex <- merge(xex, x, by.x="id", by.y="id", all.x=TRUE, all.y=FALSE)
mymodel <- bigglm(OPEN_FLG ~ new_list_id+NUM_OF_ADULTS_IN_HHLD+OCCUP_MIX_PCT, data = xex)
問題は、同じエラー " Error: cannot allocate vector of size 81.5 Gb
" が発生することです。
これで十分か、それとも問題の詳細をこれ以上含める必要があるかをお知らせください。