2011-09-14 81 views
3

我有一組5000萬文本片段,我想從中創建一些集羣。維度可能介於60k到100k之間。平均文本片段長度將是16個字。正如你可以想象的那樣,頻率矩陣相當稀疏。我正在尋找一個軟件包/ libray/sdk,可以讓我找到這些羣集。我曾經嘗試過CLUTO,但這對於CLUTO來說似乎是一項非常繁重的任務。從我的在線研究中,我發現BIRCH是一種可以處理這些問題的算法,但不幸的是,我在網上找不到任何BIRCH實現軟件(我只發現了幾個臨時實現,比如分配項目,缺少任何無論如何)。有什麼建議麼?將數以百萬計的高維數據集羣化爲集羣

+0

我不確定,因爲我想檢查我的空閒時間,但可以映射減少/ hadoop幫助你嗎? – HRgiger

+0

好吧,我將不得不併行化一個聚類算法,這樣才能工作,我很希望有一些現成的解決方案 – Alexandros

+0

看看R,Python,Java中的文本挖掘...這不是特別的N(#行)或P(#dims)都很大,任何體面的文本挖掘/聚類軟件包都會讓你開始。 – Iterator

回答

0

嘗試使用圖分區算法。它可以幫助您在高維數據上進行聚類。

+0

您還必須嘗試檢查微陣列分析的算法。在那裏,它也可以處理高維數據。 – Phill

0

我想你寧可尋找像all-pairs搜索。

這會給你成對的相似記錄達到所需的閾值。你可以使用多個圖論來提取集羣 - 考慮每一對邊緣。然後提取連接的組件會給你類似單連接集羣的東西,派系會給你完整的連接集羣。

我剛剛發現BIRCH in C++的執行情況。

1

我的教授在Java中提出了BIRCH算法的implementation。用一些內嵌評論很容易閱讀。

3

您可能有興趣查看使用TopSig表示法的Streaming EM-tree算法。這兩個都是我的博士學位。有關大規模文檔聚類的話題。

我們最近在一臺16核機器上集成了7.33億個文檔(http://ktree.sf.net)。索引文件需要大約2.5天,而將它們集中起來需要15個小時。

流式EM樹算法可以在https://github.com/cmdevries/LMW-tree找到。它適用於TopSig生成的二進制文檔向量,可在http://topsig.googlecode.com找到。

我之前在http://chris.de-vries.id.au/2013/07/large-scale-document-clustering.html寫了一篇關於類似方法的博客文章。但是,EM-tree可以更好地進行並行執行,並且可以生成質量更好的羣集。

如果您有任何問題,請隨時通過[email protected]與我聯繫。