2014-04-01 121 views
3

我聽說過一個用於分割或分割圖形數據庫的最大流分割方法。有人有一個示例密碼查詢可以對movielens數據集進行說明嗎?基本上我想根據用戶的喜好將用戶劃分爲不同的分片/羣集,所以也許最小的剪輯可以自然地發現周圍類型的用戶羣說恐怖,戲劇,或者它可能會創建非直觀的羣集/片段,如時髦/浪漫和保守/喜劇/恐怖組織。分割neo4j圖形,最小切分

回答

2

我的簡短回答是否,對不起,我不知道你會如何表達這一點。

我的更長的答案是即使這是可能的 - 這很可能是 - 我會建議反對它。這些將具有不同的性能特徵,並且,由於聚類的計算量很大,我想你應該控制所使用的特定算法實現。 密碼是一種說明性語言,指定什麼你要找的,但不如何做到這一點,這將是困難的方式來指定這樣一個複雜的問題,Cypher支架引擎可以計算你要做什麼。這將使Cypher(或任何聲明性語言引擎)難以生成高效的查詢計劃。

我的建議是找到你想要使用的具體算法並使用Neo4j Java API來實現它。如果你在嵌入式模式下運行Neo4j,那麼你已經完成了。如果你運行的是Neo4j服務器,那麼你只需要運行該代碼即可。

AFAIK你在'社區檢測'算法之後。有非重疊(社區不重疊)和重疊變體,其中非重疊通常更容易實現和理解。常見的算法是:

  • 非重疊:Louvain
  • 重疊:標籤傳播算法(LPA)(一般不重疊,但也有擴展,使其重疊)

這裏有對於一些算法C++代碼示例:Louvain, Oslom (overlapping), LPA (non-overlapping), and Infomap)

如果你想前沿,我建議SCD算法