Rのメモリ制約とは何ですか?


10

Applied Predictive Modeling」のレビューではレビュー担当者は次のように述べています

統計学習(SL)の教育学について私が批判している点の1つは、さまざまなモデリング手法の評価において計算パフォーマンスを考慮していないことです。SLは、ブートストラップと、モデルの調整/テストのための相互検証に重点を置いているため、非常に計算集約的です。それに加えて、バギングやブースティングなどの手法に組み込まれているリサンプリングには、大規模なデータセットの教師あり学習のための計算の地獄があります。実際、Rのメモリの制約により、ランダムフォレストなどのパフォーマンスの高い方法で適合できるモデルのサイズにかなり厳しい制限が課されます。SLは小さなデータセットに対してモデルのパフォーマンスを調整するのに適していますが、より大きなデータのパフォーマンスと計算コストを理解することは確かです。

Rのメモリの制約とは何ですか。また、ランダムフォレストのようトップパフォーマンスの方法で適合できるモデルのサイズに厳しい制限がありますか?


回答:


10

コンスタンティンが指摘したように、Rはすべての計算をシステムのメモリ、つまりRAMで実行します。したがって、RAM容量はRでの計算集中型の操作にとって非常に重要な制約です。この制約を克服して、データがメモリに読み込まれずにプログラムが実行されるHDFSシステムに最近データが保存され、プログラムがデータに移動し、操作を実行し、メモリの制約を克服します。RHadoop(https://github.com/RevolutionAnalytics/RHadoop/wiki)は、探しているコネクタです。

計算集約型のアルゴリズムへの影響については、ランダムフォレスト/デシジョンツリー/アンサンブルメソッドでかなりの量のデータ(私の経験では最小50,000観測)を使用すると、大量のメモリを消費し、かなり遅くなります。プロセスをスピードアップするために、並列化が進むべき道であり、並列化は本質的にHadoopで利用可能です!そこで、Hadoopは本当に効率的です。

したがって、計算量が多くて遅いアンサンブルメソッドを使用する場合は、パフォーマンスを大幅に向上させるHDFSシステムを試してみることをお勧めします。


1
+1既存の回答を改善するために時間を割いていただきありがとうございます。私の意見では、あなたの回答がより良い回答になりました。回答としてあなたの回答を選択しました。乾杯!
2014年

答えてうれしい!
binga 2014年

8

Rはすべての計算をメモリ内で実行するため、使用可能なRAM容量を超えるデータセットに対して操作を実行することはできません。ただし、Rを使用したビッグデータ処理を可能にするライブラリと、Hadoopなどのビッグデータ処理用の一般的なライブラリの1つがあります。


3

この批判はもはや正当化されない:

ほとんどの標準Rライブラリがメモリ内計算に制限されていたのは事実ですが、メモリに収まらないデータを処理するための専用ライブラリが増えています。
たとえば、大規模なデータセットのランダムフォレストの場合、ライブラリがありますbigrf。詳細はこちら:http : //cran.r-project.org/web/packages/bigrf/

もう1つの成長分野は、Rがhadoopなどのビッグデータ環境に接続できることです。これにより、可能性の別の世界が開かれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.