GNN学习笔记

GNN从入门到精通课程笔记

1.2 Graph基础知识代码

使用networkx库

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
import numpy as np
import pandas as pd
import networkx as nx

edges = pd.DataFrame()
edges['sources'] = [0,1,2,3,4,4,6,7,7,9,1,4,4,4,6,7,5,8,9,8]
edges['targets'] = [1,4,4,4,6,7,5,8,9,8,0,1,2,3,4,4,6,7,7,9]
edges.columns = ['sources','targets']

G = nx.from_pandas_edgelist(edges, source='sources',target='targets')
#degree
print(nx.degree(G))
#连通分量
print(list(nx.connected_components(G)))
#图直径
print(nx.diameter(G))
#度中心性
print('度中心性',nx.degree_centrality(G))
#特征向量中心性
print('特征向量中心性',nx.eigenvector_centrality(G))
#betweenness
print('betweenness',nx.betweenness_centrality((G)))
#closeness
print('closeness',nx.closeness_centrality(G))
#pagerank
print('pagerank',nx.pagerank(G))
#HITS
print('HITS',nx.hits(G,tol=0.00001))

运行结果

1
2
3
4
5
6
7
8
9
[(0, 1), (1, 2), (4, 5), (2, 1), (3, 1), (6, 2), (7, 3), (5, 1), (8, 2), (9, 2)]
[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}]
4
度中心性 {0: 0.1111111111111111, 1: 0.2222222222222222, 4: 0.5555555555555556, 2: 0.1111111111111111, 3: 0.1111111111111111, 6: 0.2222222222222222, 7: 0.3333333333333333, 5: 0.1111111111111111, 8: 0.2222222222222222, 9: 0.2222222222222222}
特征向量中心性 {0: 0.10581121486512898, 1: 0.26822822377524, 4: 0.5741403289553503, 2: 0.22648750077754073, 3: 0.22648750077754073, 6: 0.26822822377524, 7: 0.4660017030178054, 5: 0.10581121486512898, 8: 0.3035846941076944, 9: 0.3035846941076944}
betweenness {0: 0.0, 1: 0.2222222222222222, 4: 0.861111111111111, 2: 0.0, 3: 0.0, 6: 0.2222222222222222, 7: 0.38888888888888884, 5: 0.0, 8: 0.0, 9: 0.0}
closeness {0: 0.3333333333333333, 1: 0.47368421052631576, 4: 0.6923076923076923, 2: 0.42857142857142855, 3: 0.42857142857142855, 6: 0.47368421052631576, 7: 0.5294117647058824, 5: 0.3333333333333333, 8: 0.375, 9: 0.375}
pagerank {0: 0.06035578534762892, 1: 0.10672083674530217, 4: 0.23774895855004277, 2: 0.055417825677585866, 3: 0.055417825677585866, 6: 0.10672083674530217, 7: 0.1335118554544986, 5: 0.06035578534762892, 8: 0.09187514522721238, 9: 0.09187514522721238}
HITS ({0: 0.03714744932158016, 1: 0.09416816089252279, 4: 0.20156725889739097, 2: 0.07951423776160028, 3: 0.07951423776160028, 6: 0.09416816089252278, 7: 0.1636048227643626, 5: 0.03714744932158016, 8: 0.10658411119341998, 9: 0.10658411119342}, {0: 0.037147449321580275, 1: 0.09416816089252263, 4: 0.20156725889739135, 2: 0.07951423776160016, 3: 0.07951423776160016, 6: 0.09416816089252263, 7: 0.16360482276436247, 5: 0.03714744932158023, 8: 0.10658411119342008, 9: 0.10658411119342005})