Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 基于Neo4j的数据挖掘_Graph_Neo4j_Graph Databases - Fatal编程技术网

Graph 基于Neo4j的数据挖掘

Graph 基于Neo4j的数据挖掘,graph,neo4j,graph-databases,Graph,Neo4j,Graph Databases,我对图形数据库非常陌生,我正在尝试确定Neo4j是否是用于网络图形数据挖掘的正确工具,或者是否有更合适的工具 我计划使用一个图形数据库对一些大型图形(百万个节点/10到1亿条边)进行分析,但我希望为图形中的每个人应用算法并计算度量。例如: 对于每个人,他们的扩展网络中有多少人具有特定属性 每个人从具有特定属性的人身上走多少步 执行社区检测 运行页面排名 稍微研究一下,neo4j似乎非常适合从某个节点开始运行查询,但它是否也适合对网络中的每个人应用计算?我发现“图形计算引擎”这个术语是两者之间

我对图形数据库非常陌生,我正在尝试确定Neo4j是否是用于网络图形数据挖掘的正确工具,或者是否有更合适的工具

我计划使用一个图形数据库对一些大型图形(百万个节点/10到1亿条边)进行分析,但我希望为图形中的每个人应用算法并计算度量。例如:

  • 对于每个人,他们的扩展网络中有多少人具有特定属性
  • 每个人从具有特定属性的人身上走多少步
  • 执行社区检测
  • 运行页面排名
稍微研究一下,neo4j似乎非常适合从某个节点开始运行查询,但它是否也适合对网络中的每个人应用计算?我发现“图形计算引擎”这个术语是两者之间的区别,但似乎找不到太多


有没有其他工具在这种规模上有用(gephi和类似工具无法处理我需要使用的大量数据)。

看起来neo4j不是您在这里寻找的。在我看来,你真的需要一个图形引擎,而不是一个图形数据库

  • 使用图形数据库,您应该能够执行查询。当处理高度连接的数据时,它将执行得非常快。例如,Neo4j应该快速地选择一个节点,找到它的朋友,然后在社交图中找到起始节点的朋友的朋友。在这种情况下,图形数据库在处理大量节点时的性能优于sql模型。请注意,效率恰恰来自这样一个事实:引擎不必查看整个图形来回答查询

  • 使用图形引擎,您可以对整个图形执行您描述的计算

如果您想缩放和分析大量节点,我建议您看看MapReduce方法;请看(也许还有)


希望这有帮助

因为您需要使用图形数据库分析引擎,所以您可能会感兴趣。以下是他们的描述:

Faunus是一个基于Hadoop的图形分析引擎,用于分析跨多机计算集群表示的图形

我知道这一点是因为我一直在关注他们的图形数据库Titan,它与Tinkerpop很好地集成,但我没有使用它(Faunus)


因此,通过使用Faunus,您还可以拥有一个graph后端,IMO可以与您想要做的事情齐头并进。

另一个非常好的图形分析引擎是GraphLab(它是单机版:GraphChi)。令人印象深刻的性能-请参阅:


镜像其他评论(并防止它成为产品线程,从而锁定它)-Neo4j是一个图形数据库-对于查询/探索/等非常有用。GraphLab和其他给出的示例是更完整的图形分析-如pagerank、图形三角形计数,等等。

我意识到这已经很晚了,但为了未来谷歌的利益

您可能还想尝试基于Spark构建的GraphX项目。到目前为止,它是alpha,但对于大规模图形分析来说,它看起来不错


如果您想要纯Neo4j解决方案,您应该检查project

实现的算法:

1页排名

2三角计数

3社区检测的标签传播

4模块化(用于社区检测)


希望能有所帮助

谢谢,很高兴能弄清楚两者之间的区别。我熟悉Hadoop,并一直在考虑ApacheGiraph,它似乎专门用于graphs(),但建立Hadoop集群将是一个相对较大的任务。在gephi(我认为是相对较小的图形)和hadoop(巨大的图形)之间是否有中间产品。我不知道giraph,我会看一下:)根据我的经验,运行hadoop作业最简单也是最经济的方法是在服务器上使用按需集群。优点是,您可以根据需要处理的数据量来扩展集群。运行相对较小的集群非常便宜,而且您不需要进行任何配置!这篇博文可能有助于介绍。