2017-07-19 72 views
0

我正在嘗試基於文本挖掘進行預測模型。我很困惑我應該在模型中設置多少功能。我的分析中有1000個文件(因此語料庫需要大約700個文件)。語料庫中的術語數量約爲20 000個,因此它超過文檔數量(P >> N)。有這麼多的功能有什麼意義?文本挖掘中的功能數

HashingTF方法中的特徵數量應該高於語料庫中的術語總數?或者我應該讓它更小(像512個功能?)

我有點困惑。

回答

0

假設你正在談論只使用unigrams作爲功能,你是對的,我們想要p < n。 (未指明消息來源在這裏,因爲你似乎知道這意味着什麼。)

最後,實現p < N,你既可以

  1. 與計數> = K選擇功能。測量各種k的性能並選擇最佳的k,或者使用除L1正則化之外的所有特徵。

如果你使用散列像你提到,你應該設置的功能數量小於512,甚至因爲 -

  1. N = 700和P = 512仍然過於傾斜。
  2. 通常,有一小部分重要詞彙。你的情況甚至可能低於50。你可以嘗試一些散列桶= {10,20,50,100,500,1000}並挑選最好的一個。

祝你好運!

+0

我會嘗試不同數量的功能,如你所說。我還想過關於bigrams。它會改變這個問題嗎?我可以使用更多的功能(如p = 2048)嗎? –

+0

是否bigrams有所作爲取決於你正試圖解決的問題。通常,我們需要n >> p(維度的詛咒)。你可以在L1-reg上使用一個大的p。如果你的數據集很小,你可以嘗試一下。 – Aayush