2014-02-26 23 views
0

我遇到了rapidminer中的fp-growth操作符的問題。我正在處理大約20個文本文件,所有這些文件都是1MB大小的<。我使用了流程文檔操作符,並在該標記化過程中,過濾停用詞,轉換用例,生成n-gram和過濾令牌。從那裏我用數字來表示二項運算符。直到這一點一切工作正常,但是當我運行fp-growth運算符時,它只是無限期地處理而沒有結果。我試圖調整最小支持參數,但無濟於事。你有什麼建議如何解決這個問題?我真的很感謝任何指導。RapidMiner FP-growth操作符不返回任何結果

回答

0

FP-Growth是一種算法,用於在包含多個項目的多個事務中查找頻繁項目集。在你的場景中,這些項目可能是文本中出現的單詞,而每個文本都是一個事務。

不幸的是,頻繁項目集的問題呈指數形式:假設您有一個包含項目{A,B,C}的頻繁項目集,這意味着有足夠的事務包含所有三個項目。但是這也意味着所有的子集也很頻繁,因爲子集{A,B}至少包含在包含{A,B,C}的所有事務中。因此,如果{A,B,C}頻繁,{A,B},{B,C},{A,C}和{A},{B}和{C}。集合的數量是(2^n) - 1。因此,對於一組四個項目,我們已經有15個子集,對於五個31,依此類推。 所以問題是:什麼使得一個集合頻繁,爲什麼會有這麼多的頻繁集合,RapidMiner需要這麼長時間來計算它們呢?

最重要的因素當然是min_support。這定義了一個集合必須頻繁出現多少個事務的百分比閾值。如果將min_support增加到1,那麼將會有更少的項目集,並且計算速度會更快。 但是,不要被「找到最少數量的項目集」所欺騙。如果選中此項,RapidMiner將嘗試總是找到指定的最小數量的項目集,如果找不到任何項,將自動降低min_support。我的建議:關掉它。

您應該確認的另一件事是,正確的價值被確認爲「積極」,以指示該項目是交易的一部分。如果之前使用了數字到二項運算符,則這是「真」。所以你應該在RapidMiner的positive_value參數中輸入「true」。該參數僅在專家模式下可見。如果您未處於專家模式,則會在參數下方顯示一條線,告訴您「4個隱藏的專家參數」可用。您可以點擊該行切換到專家模式。

在特定情況下,你在哪裏文本文件,讓你的「交易」,你將有特殊的問題:

  1. 您將有成千上萬的屬性,特別是如果你產生的n-gram像你的情況。大量的屬性也會導致大量增加的運行時間。
  2. 如果您不通過在Process Document操作員中應用合理的修剪來刪除頻繁的單詞,那麼頻繁出現的單詞將會爆炸頻繁項目集的數量。假如你沒有過濾停用詞,那麼「a」,「the」,「is」等字就會出現在整個地方,導致其他頻繁的詞與他們共同出現。因此,頻繁集{A,B,C}將總是延伸到{A,B,C,a,the,is},所以我們現在有2^6 -1個子集,而不僅僅是7個...

希望這有助於!