2012-01-31 10 views
0

私はSPAMメッセージを検出するためのバイナリクラシファイアを作成したいとします。私には、数十億のトレーニング例と約20の機能があります。私は訓練されたクラシファイアがメモリに収まるようにしたい(実際にはrpc-callsがと非常に高いとなるクラウドとディスク操作で実行する)。バイナリクラシファイアに必要なメモリ量を見積もる方法は?

私の質問は、どのように私はそれに必要なメモリの量を見積もることができますか?私のクラシファイアはランダムフォレストであり、私はトレーニングセットにSPAMメッセージの配信について何も知らないとします。

数字のみ:2つのクラス、10億の例、20の機能。

このような推定はまったく可能ですか?どのようにそれを行うことができますか?

+0

10億のトレーニングサンプルをメモリに収めたり、訓練されたモデルをメモリに収めようとしていますか? –

+0

@MichaelMcGowan:訓練されたモデルをメモリに収め、リアルタイムで分類を実行します。 – izhak

+0

それは理論的には木のサイズの大きさに左右され、実際には実際の実装に依存します。 –

答えて

2

スパム分類では、ヘッダーとSMTPコンテキストから抽出されたリンク+スタッフで発生する単語の出現機能+ bigrams +ドメイン名またはIPアドレスに線形分類子を実行する必要があります。

この場合、2 ** 18次元(たとえばvowpal wabbitを使用)でフィーチャをハッシュすると、フィーチャごとに8バイト×メモリに2MBのモデルが作成されます。

関連する問題