总邻居数

此功能在 Aura 图分析无服务器中不可用。

总邻居数算法根据节点拥有的唯一邻居数量来计算节点的接近程度。它的原理是,一个节点连接越多,就越有可能获得新的链接。

此功能处于 Alpha 级别。有关功能级别的更多信息,请参阅 API 级别

历史与解释

总邻居数使用以下公式计算

total neighbors

其中 N(x) 是与 x 相邻的节点集合,N(y) 是与 y 相邻的节点集合。

值为 0 表示两个节点不接近,而较高的值表示节点更接近。

该库包含一个计算两个节点之间接近程度的函数。

语法

以下将运行算法并返回结果
RETURN gds.alpha.linkprediction.totalNeighbors(node1:Node, node2:Node, {
    relationshipQuery: null,
    direction: "BOTH"
})
表 1. 参数
名称 类型 默认值 可选 描述

node1

节点

null

一个节点

node2

节点

null

另一个节点

relationshipQuery

字符串

null

用于计算 node1node2 之间相似度的关系类型

direction

字符串

BOTH

用于计算 node1node2 之间相似度的关系方向。可能的值有 OUTGOING(出站)、INCOMING(入站)和 BOTH(双向)。

总邻居数算法示例

以下将创建一个示例图
CREATE (zhen:Person {name: 'Zhen'}),
       (praveena:Person {name: 'Praveena'}),
       (michael:Person {name: 'Michael'}),
       (arya:Person {name: 'Arya'}),
       (karin:Person {name: 'Karin'}),

       (zhen)-[:FRIENDS]->(arya),
       (zhen)-[:FRIENDS]->(praveena),
       (praveena)-[:WORKS_WITH]->(karin),
       (praveena)-[:FRIENDS]->(michael),
       (michael)-[:WORKS_WITH]->(karin),
       (arya)-[:FRIENDS]->(karin)
以下将返回 Michael 和 Karin 的总邻居数得分
MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN gds.alpha.linkprediction.totalNeighbors(p1, p2) AS score
表 2. 结果
得分

4.0

我们还可以根据特定的关系类型,计算一对节点的得分。

以下将仅基于 FRIENDS 关系返回 Michael 和 Karin 的总邻居数得分
MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN gds.alpha.linkprediction.totalNeighbors(p1, p2, {relationshipQuery: "FRIENDS"}) AS score
表 3. 结果
得分

2.0

© . All rights reserved.