mboost パッケージの blackboost 関数を使用して、Windows 7 64 ビット、8 GB RAM マシン上の約 500 MB のデータセットでモデルを推定しています。実行中、R は事実上すべての使用可能なメモリを使用します。計算が完了すると、gc() でガベージ コレクションを呼び出したり、ワークスペースを保存して新しい R セッションに再読み込みしたりした後でも、4.5 GB 以上が R に割り当てられたままになります。.ls.objects ( 1358003 ) を使用すると、すべての可視オブジェクトのサイズが約 550 MB であることがわかりました。
gc() の出力は、データの大部分がベクター セルにあることを示していますが、それが何を意味するのかはわかりません。
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 2856967 152.6 4418719 236.0 3933533 210.1
Vcells 526859527 4019.7 610311178 4656.4 558577920 4261.7
これは私がやっていることです:
> memory.size()
[1] 1443.99
> model <- blackboost(formula, data = mydata[mydata$var == 1,c(dv,ivs)],tree_control=ctree_control(maxdepth = 4))
...たくさんのパッケージが読み込まれます...
> memory.size()
[1] 4431.85
> print(object.size(model),units="Mb")
25.7 Mb
> memory.profile()
NULL symbol pairlist closure environment promise language
1 15895 826659 20395 4234 13694 248423
special builtin char logical integer double complex
174 1572 1197774 34286 84631 42071 28
character ... any list expression bytecode externalptr
228592 1 0 79877 1 51276 2182
weakref raw S4
413 417 4385
mydata[mydata$var == 1,c(dv,ivs)] には 139593 行と 75 列があり、ほとんどが因子変数で、いくつかの論理変数または数値変数があります。formulaは、"dv ~ var2 + var3 + .... + var73" 型の式オブジェクトです。dvは変数名文字列で、ivsはすべての独立変数 var2 ... var74 をもつ文字列ベクトルです。
Rに大量のメモリが割り当てられているのはなぜですか? Rに余分なメモリを解放させるにはどうすればよいですか? どんな考えでも大歓迎です!