2014-04-01 78 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算法