2012-01-31 65 views
0

說我想創建一個用於檢測垃圾郵件消息的二進制分類器。我有十億個訓練實例和約20個特徵。我希望我的訓練有素的分類器適合內存(我將在雲計算和磁盤操作上運行它,實際上rpc-調用將是非常昂貴的)。如何估計二進制分類器所需的內存量?

我的問題是:如何估計我需要的內存量?假設我的分類器是Random Forest,並且我對訓練集中的SPAM消息分發一無所知。

只有數字:兩個類,十個例子,20個特徵。

這樣的估計可能嗎?如何做呢?

+0

您是否試圖將十億訓練樣例擬合到內存中,或者將訓練好的模型擬合到內存中? – 2012-01-31 20:24:47

+0

@MichaelMcGowan:將訓練好的模型擬合到內存中並實時運行分類。 – izhak 2012-01-31 20:46:42

+0

那麼,理論上這取決於樹的大小,實際上取決於實際的實施。 – 2012-01-31 20:53:37

回答

2

對於垃圾郵件分類,您應該對鏈接中出現的單詞出現的特徵+ bigrams +域名或IP地址+從頭文件和SMTP上下文中提取的東西運行線性分類器。

在這種情況下,您可以散列2 ** 18維度上的特徵(例如使用vowpal wabbit)乘以每個特徵8個字節,使您成爲內存中的2MB模型。