GNN从入门到精通--Graph基本介绍(1)

1 连通图,连通分量
  • 对于一个无向图,如果任意节点i能通过一些边到达节点j,则称为连通图。
  • 无向图G的一个极大连通子图称为G的一个连通分量。连通图只有一个连通分量;非连通的无向图有多个连通分量。
2 有向图的连通性
  • 强连通图:有向图中任意一对节点可达
  • 弱连通图:至少有一对节点不满足单向连通,但去掉边的方向后,节点之间可达
3 最短路径,图直径
  • 最短路径:图中两节点之间路径中最短的
  • 图直径:图中任意所有节点最短路径的最大值
4 度中心性
  • (节点的度)/ (n-1) n为图中节点总数
5 特征向量中心性
  • 特征向量中心性分数:对图的邻接矩阵求特征值和特征向量,最大特征值所对应的特征向量,即各个节点的特征向量中心性分数
  • 节点的特征向量中心性:(Vi节点的邻居中心性分数累加)/(特征值)
6 中介中心性

分子表示

  • 分子表示通过此点的最短路径数目,分母表示点对st之间所有最短路径数目。再把所有点对累加求和,为了使结果具有可比性,对上述公式进行归一化,除以最大的中心性分数。
    在这里插入图片描述
7 代码部分
import numpy as np
import pandas as pd
import networkx as nx

edges = pd.DataFrame()
edges['sources'] = [1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5]  # 起始节点
edges['targets'] = [2, 4, 5, 3, 1, 2, 5, 1, 5, 1, 3, 4]  # 起始节点所指向的对应终止节点
edges['weights'] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]  # 边之间的权重

G = nx.from_pandas_edgelist(edges, source='sources', target='targets', edge_attr='weights') #定义一张图
# 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(nx.betweenness_centrality(G))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值