图数据科学集成

Neo4j 图数据科学算法可以帮助您在数据中找到新的见解,包括节点本身以及它们之间的连接方式。有关图算法的更多信息,请参阅Neo4j 图数据科学库手册

在场景中的元素上运行图数据科学算法**不会**更改底层数据。这些分数仅在 Bloom 中临时存在。

下面简要描述了这些算法,但请参阅Neo4j 图数据科学库手册以获取完整描述。

为了在 Bloom 中使用 GDS 功能,您需要安装支持的 GDS 插件版本。有关更多信息,请参阅版本兼容性Neo4j 图数据科学库手册 → 支持的 Neo4j 版本

Bloom 中可用的 GDS 算法

可用的算法可以分为两类,中心性社区检测。中心性算法用于衡量网络中特定节点的重要性,并发现各个节点所扮演的角色。节点的重要性可能意味着它具有许多连接,或者它与其他重要节点具有传递连接。它还可以意味着可以到达另一个节点只需少量跳数,或者它位于多个节点对的最短路径上。Bloom 中提供了以下中心性算法

  • 介数中心性

  • 度中心性

  • 特征向量中心性

  • PageRank

另一方面,社区检测算法用于查找数据中的子组,并可以洞察网络是否可能断裂。社区检测在各种图中都很有用,从社交媒体网络到机器学习。Bloom 中提供了以下社区检测算法

  • Louvain

  • 标签传播

  • 弱连接组件

度中心性

度中心性算法衡量连接到节点的关系(传入、传出或两者),以查找图中连接最多的节点。

介数中心性

介数中心性算法查找有影响力的节点,即在场景中作为大多数最短路径的通道的节点。具有高介数中心性的节点是连接图的不同子部分的节点。

特征向量中心性

特征向量中心性算法用于衡量节点的传递影响。这意味着,对于一个节点要获得较高的特征向量中心性,它需要连接到其他节点,而这些节点又具有良好的连接性。特征向量与介数中心性的区别在于,特征向量不仅基于节点与其他节点的直接关系,还基于相关节点的关系。

PageRank

PageRank 算法是一种衡量图中每个节点的相关性的方法。节点的相关性基于它有多少来自其他节点的传入关系以及源节点的重要性。

Louvain

Louvain 算法旨在查找更大网络中高度连接的节点的集群。例如,它可以用于产品推荐。如果您知道客户从已识别的集群中购买了一种产品,那么他们很可能对该集群中的另一件产品感兴趣。

标签传播

标签传播算法是另一种查找图中社区的方法。标签传播与 Louvain(这两种都是社区检测算法)之间的区别在于,它允许进行一些监督,即可以设置某些先决条件,从而在一定程度上控制结果。当您已经了解数据的内在结构时,这很有用。

弱连接组件

弱连接组件算法查找无法从图的其他部分访问到的子图。它可以用于确定您的网络是否完全连接,还可以用于查找供应链中的脆弱部分,例如。

在 Bloom 中使用 GDS 算法

先决条件

要在 Bloom 中使用 GDS 算法,在启动 Bloom 之前需要执行两件事

  • 安装图数据科学库插件。最简单的方法是在 Neo4j 桌面版中进行。有关更多信息,请参阅 Neo4j 桌面版手册中的安装插件部分。

  • neo4j.conf文件中允许 GDS。这可以通过手动或通过 Neo4j 桌面版来完成。dbms.security.procedures.unrestricted设置需要包含 Bloom 和 GDS(以及已指定的其他设置),如下所示:dbms.security.procedures.unrestricted=jwt.security.*,bloom.*,gds.*,apoc.*

    dbms.security.procedures.allowlist设置需要取消注释,并且还需要包含 Bloom 和 GDS(以及之前提到的其他设置),如下所示:dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,gds.*,bloom.*,apoc.*

有了这些设置,您可以启动 Bloom 并开始搜索以将一些数据带到您的场景中以运行算法。

louvain

运行算法

可以通过场景左上角的 GDS 按钮访问 GDS 算法。当您选择合适的算法后,可以选择在场景中的所有元素上运行它,或者指定哪些节点类别和/或关系类型。此外,您还可以选择要遍历的关系的方向。可以通过 GDS 抽屉中的“设置”按钮访问这些选项。

应用您选择的算法不会立即更改场景中的任何内容。您可以检查每个节点以查看其得分,但要使结果易于查看,请应用基于规则的样式。这直接在 GDS 抽屉中完成。中心性算法基于一系列值,可以是尺寸缩放或颜色渐变,而社区检测算法使用唯一值并提供唯一颜色来设置节点样式。

degree centrality