图论基础知识

graph:
图
邻接矩阵(adjacency):

adjacency=[ [0,1,1,0,0,0],
            [1,0,1,1,0,0],
            [1,1,0,1,1,0],
            [0,1,1,0,1,1],
            [0,0,1,1,0,0],
            [0,0,0,1,0,0]
            ]

度 (degree):
无向图的度: A:2;B:3
有向图:分为入度和出度

连通图和非连通图

最短路径

度中心性(Degree Centrality)
在网络分析中刻画节点中心性(Centrality)的最直接度量指标。一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。
度中心性=该点的degree / n-1

特征向量中心性(eigenvector)

中介中心性(betweens)
以经过某个节点的最短路径数目来刻画节点重要性的指标。(类似与社交达人)

接近中心性(Closeness Centrality)
反映在网络中某一节点与其他节点之间的接近程度。将一个节点到所有其他节点的最短路径距离的累加起来的倒数表示接近性中心性。即对于一个节点,它距离其他节点越近,那么它的接近性中心性越大。

连接中心性

HITS
区别好箭头指向即可
请添加图片描述
#使用pandas初始化图包括起始点,末尾点,关系权重

import networkx as nx
import pandas as pd
import numpy as np

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]
print(edges)
    sources  targets  weights
0         1        2        1
1         1        4        1
2         1        5        1
3         2        3        1
4         2        1        1
5         3        2        1
6         3        5        1
7         4        1        1
8         4        5        1
9         5        1        1
10        5        3        1
11        5        4        1

使用networkx包生成图

G=nx.from_pandas_edgelist(edges,source='sources',target='targets',edge_attr='weights')
print(G)

得到:

Graph with 5 nodes and 6 edges
#degree
print(nx.degree(G))
#图直径
print(nx.diameter(G))
#连通分量
print(list(nx.connected_components(G)))
#度中心性
print(nx.degree_centrality((G)))
#特征向量中心性
print(nx.eigenvector_centrality(G))
#betweeness
print(nx.betweenness_centrality(G))
#pagerank
print(nx.pagerank(G))
#HITS
print(nx.hits(G))
[(1, 3), (2, 2), (4, 2), (5, 3), (3, 2)]
2
[{1, 2, 3, 4, 5}]
{1: 0.75, 2: 0.5, 4: 0.5, 5: 0.75, 3: 0.5}
{1: 0.5298988890761731, 2: 0.35775191431708964, 4: 0.4271316779596084, 5: 0.5298988890761731, 3: 0.35775191431708964}
{1: 0.25, 2: 0.08333333333333333, 4: 0.0, 5: 0.25, 3: 0.08333333333333333}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值