2016-12-26 16 views
2

私は毎日のように成長するデータセットを持っていますが、すぐにメモリに収まらないサイズになることを心配しています。私はアプリケーションでランダムなフォレストクラシファイアと回帰子を使用しています。私は部分的なフィッティングについて聞いたことがありますが、ランダムフォレストがそのようにできるかどうかはわかりません。データセットがメモリサイズを超えて大きくなってもアプリケーションが壊れずに正常に動作し続けるようにするにはどうすればよいですか。また、ランダムなフォレストの代わりにsvmが使用された場合、シナリオは異なるでしょう。機械学習の巨大なデータセットsklearn

+0

データはどのくらいですか?あなたはsklearnの仕事の数を定義しますか?異なる最適化方法があることを覚えておいてください。完全なトレーニングセットをメモリにロードする必要はなく、バッチを使用する方法をいつでも使用できます。確率的勾配降下を取る。 –

+0

ええと、データは最終的には大きすぎてテラバイトになるかもしれません。また、ランダムな森林が依然として有効かどうかを知りたい。 –

+0

http://scikit-learn.org/stable/modules/scaling_strategies.html –

答えて

-1

お試しください。H2O H2Oはオープンソースの機械学習プラットフォームであり、大規模なデータセット(サンプリングは不要)でモデルを構築し、正確な予測を達成できます。これは非常に高速でスケーラブルで、どのレベルでも実装が簡単です。

H2Oには、ツール(RまたはPython)とマシンのCPUを直接接続するクリーンで明確な機能があります。このようにして、より多くのメモリをチャネライズすることができ、より速い計算を行うためのツールの処理能力が向上します。これにより、100%のCPU容量で計算が実行されます。また、計算を行うためにクラウドプラットフォームのクラスタに接続することもできます。

回帰、ランダムフォレスト、ディープ学習でアルゴリズムを提供します。詳細については、

訪問サイト: - 一般的にhttp://www.h2o.ai/

+0

をご覧ください。外部プラットフォームに手を差し伸べるのではなく、自分自身のプラットフォームに固執する方法はありますか? –

+0

H2Oは十分ではないという問題をどのように解決していますか物理的な記憶? BTW - H2Oはオープンソースのソフトウェアであり、AWSのようなプラットフォームではありません。 –

+1

もう1つのこと:H2Oを使用していましたが、私はこの文を理解していません。 "H2Oはツール(RまたはPython)をマシンのCPUと直接接続するきれいで明確な機能を持っています。より速い計算を行うためのツールへの力」を提供します。アセンブリコードに直接変換するようにしても、それは当然のことです。H2OはJVMベースなので、実際には間接的であり、前述のR/Pythonコードをバイトコードに変換するというペナルティがあります。 –

1

、あなたが増分またはオンライントレーニングを提供する方法を探してください。そのような場合には、一度に完全なデータセットをアルゴリズムに提示する必要はなく、むしろ新しいデータが利用可能になるときです。データが日々増え、計算リソースが限られている場合は、これが不可欠です。 Stochastic gradient descentは、あなたの要件を満たす非常に一般的な最適化方法です。

Mondarian Forestと呼ばれるさまざまなランダムフォレストを使用できます。リンクされた論文の要約を引用するには:モンドリアンの森林は、既存のオンラインランダムフォレストや定期的に再訓練されたバッチランダムフォレストに匹敵する競争力のある予測パフォーマンスを達成します。。コードはGitHubにあります。

問題のデータと性質を知らなくても、ランダムフォレストよりも優れたものについて具体的なガイダンスを提供することは不可能です。あなたがscikit学習に固執したい場合は、記事Strategies to scale computationally: bigger dataをチェックしてください。