使用Neo4j图数据科学库(GDS)进行中心度分析

First Post:

Last Update:

Page View: loading...

安装并加载GDS库

​ 确保已安装并启用GDS插件。若未安装,需从Neo4j官网下载对应版本。

创建图投影

在 GDS 中创建内存中的图投影:

1
2
3
4
5
6
7
8
9
CALL gds.graph.project(
'nodeGraph', // 图名称
'Node', // 节点标签
'NEIGHBOR', // 关系类型
{
nodeProperties: ['degree'], // 需要加载的节点属性
relationshipProperties: {} // 关系属性(可选)
}
);

运行度中心性算法并写入属性

使用gds.degree.write方法计算每个节点的度(可指定入度、出度或总度数),并将结果存储为节点属性degree

1
2
3
4
5
6
CALL gds.degree.write('nodeGraph', {
writeProperty: 'degree', // 写入的属性名
orientation: 'UNDIRECTED' // 方向:UNDIRECTED(总度数)、NATURAL(出度)、REVERSE(入度)
})
YIELD nodePropertiesWritten


计算中心性指标

1. PageRank

1
2
3
4
5
CALL gds.pageRank.write('nodeGraph', {
maxIterations: 20,
dampingFactor: 0.85,
writeProperty: 'pagerank'
});

2. 度中心性 (Degree Centrality)

1
2
3
CALL gds.degree.write('nodeGraph', {
writeProperty: 'degree_centrality'
});

3. 亲密中心性 (Closeness Centrality)

1
2
3
CALL gds.closeness.write('nodeGraph', {
writeProperty: 'closeness_centrality'
});

4. 介数中心性 (Betweenness Centrality)

1
2
3
CALL gds.betweenness.write('nodeGraph', {
writeProperty: 'betweenness_centrality'
});

查询结果

1
2
3
4
5
6
7
8
MATCH (n:Node)
RETURN
n.address AS Address,
n.pagerank AS PageRank,
n.degree_centrality AS DegreeCentrality,
n.closeness_centrality AS ClosenessCentrality,
n.betweenness_centrality AS BetweennessCentrality
ORDER BY PageRank DESC;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
╒═════════════╤═══════════════════╤════════════════╤═══════════════════╤═════════════════════╕
AddressPageRankDegreeCentralityClosenessCentralityBetweennessCentrality
╞═════════════╪═══════════════════╪════════════════╪═══════════════════╪═════════════════════╡
"10.104.0.73"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.105.0.71"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.105.0.72"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.101.0.73"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.103.0.71"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.101.0.71"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.107.0.73"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.108.0.73"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.107.0.71"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.103.0.73"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.106.0.71"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.101.0.72"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.104.0.71"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.109.0.72"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.109.0.73"0.171439475853314370.01.00.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.103.0.72"0.166393515040315160.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.102.0.73"0.166393515040315160.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.102.0.71"0.166393515040315160.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.107.0.72"0.166388401731428710.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.106.0.73"0.166388401731428710.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.100.0.72"0.1663884017314287128.01.06.833333333333333
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.104.0.73"0.1662070345952299227.01.04.166666666666666
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.102.0.72"0.166207034595229920.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.109.0.71"0.165329476192969230.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.100.0.72"0.1653294761929692323.01.02.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.105.0.73"0.165329476192969230.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.108.0.71"0.165329476192969230.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.104.0.72"0.165329476192969230.00.80.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.100.0.74"0.1602835153799700227.00.752.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.106.0.72"0.160097034934884840.00.66666666666666660.0
├─────────────┼───────────────────┼────────────────┼───────────────────┼─────────────────────┤
"10.108.0.72"0.160097034934884840.00.66666666666666660.0
└─────────────┴───────────────────┴────────────────┴───────────────────┴─────────────────────┘

```